Access Daten in Excel schreiben

Bild

Betrifft: Access Daten in Excel schreiben
von: Sonja
Geschrieben am: 30.04.2015 10:30:19

Hallo,
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.

Bild

Betrifft: AW: Access Daten in Excel schreiben
von: Luschi
Geschrieben am: 30.04.2015 11:02:44
Hallo Sonja,
ich glaube, Du bist da ein bischen neben der Spur.
Du mußt Dich entscheiden, ob Du das mit:
- Excel.QueryDef (braucht keine DAO-Objekt-Definitionen)
- DAO oder
- ADODB
machen möchtest.
Wahrscheinlich ist es besser, wenn Du eine kleine Access-DB bereitstellst und erklärst, welche Daten Du in der Exceldatei haben willst. Sollte auch noch dazukommen, daß die 'FAGNummer' variabel ist, dann ist DAO oder ADODB/ADOX ist bessere Wahl.
Gruß von Luschi
aus klein-Paris

Bild

Betrifft: AW: Access Daten in Excel schreiben
von: Luschi
Geschrieben am: 06.05.2015 09:46:20
Hallo Sonja,
machst Du Urlaub auf Ballermann 6 oder schläfst Du wie Dornröschen 100 Jahr',
fragt sich Luschi
aus klein-Paris

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Access Daten in Excel schreiben"