Datenbankabfrage aus Excel
11.05.2006 09:53:36
Hubert Z.
seit zwei Tagen suche ich nach einer Lösung für mein Problem und google mich noch verrückt. Ich hoffe hier kann mir jemand helfen.
In Access liegt eine Abfrage vor. Die Ausgabe von Datensätzen lässt sich mit einem Parameter einschränken (also z.B. nur Datensätze mit einem Timestamp TS=20060424). Starte ich diese Abfrage in Access fragt ein Dialog nach TS und alle Datensätze werden korrekt angezeigt. Alles bestens.
Ich möchte jetzt diese Abfrage aus Excel starten, den Parameter von Excel aus übergeben und den Recordset in Excel auswerten/weiterbearbeiten. Derzeitiger Code ist:
Public
Sub testabfrage()
Dim rs As ADODB.Recordset, cmd As ADODB.Command, P As ADODB.Parameter
Dim zaehler As Long, wert As Long
Set cmd = New ADODB.Command
With cmd
.CommandText = "BezeichnungderAccessAbfrage"
.CommandType = adCmdStoredProc
.ActiveConnection = db
End With
wert = 20060424
Set P = cmd.CreateParameter("TS", adInteger, adParamInput, 4, wert)
cmd.Parameters.Append P
Set rs = cmd.Execute
Do While Not rs.EOF = True And rs.BOF = True
zaehler = zaehler + 1
rs.MoveNext
Loop
rs.Close
MsgBox zaehler & " Einträge gefunden"
End Sub
Wichtig:
- Die Message-Box zeigt an, dass keine Werte gefunden wurden.
- wert ist hier im Makro wie auch in der Access-Tabelle als long deklariert.
- db (adodb.connection) ist zum Zeitpunkt des Makrolaufs offen.
- Fehlermeldung bekomme ich keine (ich nehme an, dass die Syntax also prinzipiell richtig ist aber ein logischer Fehler vorliegt).
Vielen Dank für Eure Hilfe im voraus.
HZ