nachdem mir hier schon super geholfen wurde, zwecks Verweise um eine Verbindung von Excel und Access zu bekommen, hoffe ich weiterhin gute Tipps zu bekommen.
Ich versuche Daten aus einer Access Datenbank in meine Excel Datei zu bekommen.
Jetzt habe ich das Problem, das mein SQL in der Datenbank funktioniert wenn ich abfrage, aber wenn ich versuche die Daten in mein Excel zu bekommen, kommt der Fehler: Laufzeitfehler 3061, 1 parameter wurden erwartet, aber es wurden zu wenige Parameter übergeben.
Hier mein Code in der Excel Datei:
Option Explicit
' benötigt im VBA einen Verweis auf M$ DAO x.y Object Library !!!
Const dbfile As String = "T:\vertrieb_zae\FRG_ARTIKEL.mdb"
Private Sub cmdRead_Click()
Dim dbs As Database ' Datenbank
Dim qdf As QueryDef ' Datenbankabfrage
Dim rec As Recordset ' Ergebnis der Datenbankabfrage
Dim mysql As String ' ein SQL-Befehl
Dim mynum As Long ' die aktuelle Artikelnummer
Dim i As Long ' Zeilennummer
Set dbs = OpenDatabase(dbfile)
With dbs
'for schleife um alle fag nummern zu durchlaufen
For i = 2 To Cells(2, 1).End(xlDown).Row
'hier wird die nummer gespeichert
mynum = CLng(Val(Cells(i, 1).Value))
'sql mit dem auf die db abgefragt wird
mysql = "SELECT ARTBEZ FROM sql_Tab_ges_FEK WHERE FAGNummer=" & mynum & ";"
'daten abfragen
Set qdf = .CreateQueryDef("", mysql)
' Ergebnis der Abfrage holen
Set rec = qdf.OpenRecordset(dbOpenSnapshot)
If Not rec.EOF Then
'zurückgegebene felder in die zellen speichern
Cells(i, 4).Value = rec.Fields(0).Value
Cells(i, 3).Value = rec.Fields(1).Value
Cells(i, 2).Value = rec.Fields(2).Value
End If
Next
End With
dbs.Close
End Sub
Mein SQL-Code dazu funktioniert in Access:
SELECT ARTBEZ, FLD900, FLD050
FROM sql_Tab_ges_FEK
WHERE FAGNummer=108386;
Jetzt verzweifel ich ein bisschen dabei, das auch in Excel laufen zu bekommen.
Komischerweiße hatte ich es heute schonmal so weit, das er mir in Excel nur die Artikelbezeichnung geschrieben hat. Aber noch nicht mal das bekomme ich wieder hin.
Übrigens funktioniert genau der selbe Sql code, also ohne die Variable auch nicht in Excel:
mysql = "SELECT ARTBEZ FROM sql_Tab_ges_FEK WHERE FAGNummer=108386;"
Schonmal vielen Dank im Vorraus demjenigen, der Lust hat sich das anzuschauen ;)Mit freundlichen Grüßen
Sonja E.