AW: Daten aus lesen und wieder geben
17.06.2005 05:18:38
Stefan
Hallo Manu,
Versuchs mal hiermit (aus der Excel Hilfe):
Connect- und ReturnsRecords-Eigenschaften (Beispiel) (Client/Server)
Dieses Beispiel verwendet die Eigenschaften Connect und ReturnsRecords, um die Titel der fünf meistverkauften Bücher, basierend auf den diesjährigen Verkaufszahlen aus einer Microsoft SQL Server-Datenbank auszuwählen. Wenn die Verkaufszahlen gleich sein sollten, wird im Beispiel die Liste vergrößert, die die Ergebnisse der Abfrage anzeigt und eine Meldung wird ausgegeben, in der dies begründet wird.
Sub ClientServerX1()
Dim dbsCurrent As Database
Dim qdfPassThrough As QueryDef
Dim qdfLocal As QueryDef
Dim rstTopFive As Recordset
Dim strMessage As String
' Eine Datenbank öffnen, aus der QueryDef-Objekte
' erstellt werden können.
Set dbsCurrent = OpenDatabase("DB1.mdb")
' Eine Pass-Through-Abfrage erstellen, um Daten von
' einer Microsoft SQL Server-Datenbank abzurufen.
Set qdfPassThrough = _
dbsCurrent.CreateQueryDef("AlleTitel")
qdfPassThrough.Connect = _
"ODBC;DATABASE=Verleger;UID=sa;PWD=;DSN=Verleger"
qdfPassThrough.SQL = "SELECT * FROM Titel " & _
"ORDER BY Verkäufe DESC"
qdfPassThrough.ReturnsRecords = True
' Ein temporäres QueryDef-Objekt erstellen, um
' Daten aus der Pass-Through-Abfrage abzurufen.
Set qdfLocal = dbsCurrent.CreateQueryDef("")
qdfLocal.SQL = "SELECT TOP 5 Titel FROM AlleTitel"
Set rstTopFive = qdfLocal.OpenRecordset()
' Abfrageergebnisse anzeigen.
With rstTopFive
strMessage = _
"Die fünf meistverkauften Bücher:" & vbCr
Do While Not .EOF
strMessage = strMessage & " " & !Titel & _
vbCr
.MoveNext
Loop
If .RecordCount > 5 Then
strMessage = strMessage & _
"(Es gab identische Zahlen, daher " & _
"gibt es " & _
vbCr & .RecordCount & _
" Bücher in der Liste.)"
End If
MsgBox strMessage
.Close
End With
' Neue Pass-Through-Abfrage löschen, da dies ein
' Beispiel ist.
dbsCurrent.QueryDefs.Delete "AlleTitel"
dbsCurrent.Close
End Sub
Musst Du natuerlich auf Deine Beduerfnisse anpassen, aber sollte dann den gewuenschten Erfolg bringen.
Schoene Gruesse
Stefan B.