Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Aloster am Januar 06, 2012, 11:59:24

Titel: ORDER BY
Beitrag von: Aloster am Januar 06, 2012, 11:59:24
Access 2007

Ich in einem Formular zwei Felder txtPostleitzahl und txtOrt (Liste). Nach Aktualisierung von txtPostleitzahl klappt die Liste txtOrt auf und zeigt die zur eingegebenen Postleitzahl zugehörigen Ort(e) an:

Private Sub txtPostleitzahl_AfterUpdate()
Me!txtOrt.RowSource = "SELECT Ort FROM PLZOrt WHERE Postleitzahl = '" & Me!txtPostleitzahl & "'"
Me!txtOrt.SetFocus
Me!txtOrt.DropDown
End Sub

Wenn mehrere Orte für eine Postleitzahl angezeigt werden, sollen sie in alphabetischer Reihenfolge aufwärts angezeigt werden (ORDER BY). Wie binde ich das im Code ein?
Titel: Re: ORDER BY
Beitrag von: DF6GL am Januar 06, 2012, 12:05:48
Hallo,

ist die Frage ernsthaft gemeint oder ist sie nur, weil Feiertag ist, gestellt  ??


Me!txtOrt.RowSource = "SELECT Ort FROM PLZOrt WHERE Postleitzahl = '" & Me!txtPostleitzahl & "'  order by Ort"
Titel: Re: ORDER BY
Beitrag von: Aloster am Januar 06, 2012, 12:35:32
Sorry, ich bin heute nicht ganz da. Ich meinte einen ganz anderen Fall:

Ich habe in dem Formular Adressfelder u.a. mit dem Feld "Nachname" mit dem Ereignis:
___________
Private Sub Nachname_BeforeUpdate(Cancel As Integer)


    Dim strSQL As String, strMsg As String
    Dim db As DAO.Database, rs As DAO.Recordset
    Dim R As Variant
   
    [Änderungsdatum] = Date
    If Len(Me!Nachname) = 0 Then
    Cancel = True
    Beep
    Exit Sub
    End If


strSQL = "select * from Adressen where Nachname = '" & Me!Nachname & "'"
Set db = CurrentDb()
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
If rs.RecordCount > 0 Then

rs.MoveLast

strMsg = "Soll der Datensatz eingefügt werden, obwohl folgende Datensätze bereits existieren:" & vbCrLf & vbCrLf

rs.MoveFirst

Do Until rs.EOF
    strMsg = strMsg & rs("Nachname") & ", " & rs("Vorname") & ", " & rs("Straße") & " in " & rs("Ort") & vbCrLf

    rs.MoveNext
Loop

Beep
R = MsgBox(strMsg, vbYesNo + vbInformation, "Hinweis:")
If R = vbNo Then Me.Undo


End If
Exit Sub

End Sub
___________

Gebe ich in dem Formular nun einen neuen Datensatz u.a. mit einem Nachnamen ein, dann wird in der zugrunde liegenden Tabelle "Adresse" nachgeschaut, ob der es einen Datensatz schon mit diesen Nachnamen gibt. Wenn ja, kommt die Meldung "Soll der Datensatz eingefügt werden, obwohl folgende Datensätze bereits existieren:" mit der Auflistung Nachname, Vorname, Straße in Ort. Die Meldung mit dieser Auflistung soll nach Vorname sortiert werden. Wie passe ich den Code an? 
Titel: Re: ORDER BY
Beitrag von: DF6GL am Januar 06, 2012, 18:18:06
Hallo,

naja, dasselbe in Grün...:

.
.
strSQL = "select * from Adressen where Nachname = '" & Me!Nachname & "'  Order by Vorname"
.
.
Titel: Re: ORDER BY
Beitrag von: Aloster am Januar 09, 2012, 12:57:51
Vielen Dank!