ich habe in Access eine Tabelle erstellt und lasse sie mir über VB6 in DAO ausgeben
Ich lasse mir in Listbox1 Albumtitel ausgeben und bei Klick auf einen Eintrag lasse ich mir in einen MSFlexGrid Titel , Laufzeit und Interpret dazu ausgeben.Mein Problem ist das er die Titel nach Alphabet und nicht in der Reihenfolge wie Sie in der Access Tabelle stehen. Wie erreiche ich es das die Titel nach der Reihenfolge wie sie in der Access Tabelle stehen ? hier mein Code
<pre> Private Sub Form_Load()
Set db = DBEngine.OpenDatabase(App.Path & "\Musik.mdb")
Set Rs = db.OpenRecordset("Album")
Set Rs = db.OpenRecordset("SELECT DISTINCT Albumtitel FROM Album WHERE Musikart Like 'Sampler' ORDER BY Albumtitel", dbOpenDynaset)
List1.Clear
Do While Not Rs.EOF
List1.AddItem Rs.Fields("Albumtitel").Value
Rs.MoveNext
Loop
End Sub
Private Sub List1_Click()
Set db = DBEngine.OpenDatabase(App.Path & "\Musik.mdb")
Set Rs = db.OpenRecordset("Titel")
Set Rs = db.OpenRecordset("SELECT Distinct Titel,Länge,Interpret FROM Titel WHERE Albumtitel= '" & List1.List(List1.ListIndex) & "'")
' Wurden Daten zurückgegeben?
If Not (Rs.EOF) Then
' Ja, Anzahl ermitteln
Rs.MoveLast: Rs.MoveFirst
' FlexGrid bearbeiten
With Me.MSFlexGrid1
' Zeilenzahl setzen
.FixedCols = 1
.Cols = .FixedCols + Rs.Fields.Count
' Zeilenzahl setzen
.FixedRows = 1
.Rows = .FixedRows + Rs.RecordCount
' Alle Datensätze durchlaufen
For lngRow = .FixedRows To Rs.RecordCount + .FixedCols - 1
' Alle Spalten durchlaufen
For lngCol = 0 To Rs.Fields.Count - 1
' Ist der Wert Null?
If (IsNull(Rs.Fields(lngCol).Value)) Then
' Ja, nix eintragen
.TextMatrix(lngRow, .FixedCols + lngCol) = vbNullString
Else
' Nein, Wert eintragen
.TextMatrix(lngRow, .FixedCols + lngCol) = Rs.Fields(lngCol).Value
End If
Next lngCol
' Datensatz-Nummer eintragen
.TextMatrix(lngRow, .FixedCols - 1) = lngRow
' Nächster Datensatz
Rs.MoveNext
Next lngRow
' Alle Spaltennamen setzen
For lngCol = 0 To Rs.Fields.Count - 1
.TextMatrix(.FixedRows - 1, .FixedCols + lngCol) = Rs.Fields(lngCol).Name
Next lngCol
End With
End If
' Abfrage schließen
Rs.Close
' Datenbank schließen
End Sub
</pre>
Cu Big Boy
Ich lasse mir in Listbox1 Albumtitel ausgeben und bei Klick auf einen Eintrag lasse ich mir in einen MSFlexGrid Titel , Laufzeit und Interpret dazu ausgeben.Mein Problem ist das er die Titel nach Alphabet und nicht in der Reihenfolge wie Sie in der Access Tabelle stehen. Wie erreiche ich es das die Titel nach der Reihenfolge wie sie in der Access Tabelle stehen ? hier mein Code
<pre> Private Sub Form_Load()
Set db = DBEngine.OpenDatabase(App.Path & "\Musik.mdb")
Set Rs = db.OpenRecordset("Album")
Set Rs = db.OpenRecordset("SELECT DISTINCT Albumtitel FROM Album WHERE Musikart Like 'Sampler' ORDER BY Albumtitel", dbOpenDynaset)
List1.Clear
Do While Not Rs.EOF
List1.AddItem Rs.Fields("Albumtitel").Value
Rs.MoveNext
Loop
End Sub
Private Sub List1_Click()
Set db = DBEngine.OpenDatabase(App.Path & "\Musik.mdb")
Set Rs = db.OpenRecordset("Titel")
Set Rs = db.OpenRecordset("SELECT Distinct Titel,Länge,Interpret FROM Titel WHERE Albumtitel= '" & List1.List(List1.ListIndex) & "'")
' Wurden Daten zurückgegeben?
If Not (Rs.EOF) Then
' Ja, Anzahl ermitteln
Rs.MoveLast: Rs.MoveFirst
' FlexGrid bearbeiten
With Me.MSFlexGrid1
' Zeilenzahl setzen
.FixedCols = 1
.Cols = .FixedCols + Rs.Fields.Count
' Zeilenzahl setzen
.FixedRows = 1
.Rows = .FixedRows + Rs.RecordCount
' Alle Datensätze durchlaufen
For lngRow = .FixedRows To Rs.RecordCount + .FixedCols - 1
' Alle Spalten durchlaufen
For lngCol = 0 To Rs.Fields.Count - 1
' Ist der Wert Null?
If (IsNull(Rs.Fields(lngCol).Value)) Then
' Ja, nix eintragen
.TextMatrix(lngRow, .FixedCols + lngCol) = vbNullString
Else
' Nein, Wert eintragen
.TextMatrix(lngRow, .FixedCols + lngCol) = Rs.Fields(lngCol).Value
End If
Next lngCol
' Datensatz-Nummer eintragen
.TextMatrix(lngRow, .FixedCols - 1) = lngRow
' Nächster Datensatz
Rs.MoveNext
Next lngRow
' Alle Spaltennamen setzen
For lngCol = 0 To Rs.Fields.Count - 1
.TextMatrix(.FixedRows - 1, .FixedCols + lngCol) = Rs.Fields(lngCol).Name
Next lngCol
End With
End If
' Abfrage schließen
Rs.Close
' Datenbank schließen
End Sub
</pre>
Cu Big Boy