Probleme Zugriff Excel --> AccessDB
14.06.2020 12:10:59
Andreas
ich habe eine Excel Datei, mit der ich via Makros Datensätze nach Access in bestimmte Tabellen schieben will.-
Die Datei liegt da https://www.herber.de/bbs/user/138275.xlsm und der entsprechende Thread dazu ist dieser https://www.herber.de/forum/messages/1765501.html
Kurz beschrieben, passiert aktuell beim ausführen des Makro AnfuegenQuartette
Sub AnfuegenQuartette()
Dim db As DAO.Database
Dim sSQL As String
Set db = OpenDatabase("C:\Users\linus\Familie\Quartette\Datenbank\Access-DB\QuartettDB.accdb" _
)
sSQL = "INSERT INTO tblQuartette (QuartettID, SpielID_F, QuartettKz, QuartettBezeichnung)" & _
_
" SELECT SpalteA, SpalteB, SpalteC, SpalteD FROM" & _
" [excel 12.0 xml;hdr=yes;imex=1;DATABASE=" & ThisWorkbook.FullName & "].[ _
tblQuartette$]"
db.Execute sSQL, dbFailOnError
MsgBox "Es wurden " & db.RecordsAffected & " Datensätze angefügt."
db.Close
Set db = Nothing
End Sub
(steht exemplarisch auch für die 2 anderen Makros AnfuegenQKarten und AnfuegenKartenMerkmale) folgender Fehler:Dabei trat folgender Fehler auf.
Laufzeitfehler '3061':
4 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
Der Debug springt dann in im Makro in diese gelb markierte Zeile
db.Execute sSQL, dbFailOnError
Auch das anpassen der Zeile " SELECT SpalteA, SpalteB, SpalteC, SpalteD FROM" & _ in Spalte1, Spalte2 usw. verursacht den gleichen Fehler. Da es von 4 Parameter spricht, habe ich dann die Zeile
Code: [Auswählen]
" SELECT SpalteA, SpalteB, SpalteC, SpalteD FROM" & _
Für die Spalten habe ich genau den Namen definiert, welche ich auch in den Spaltenüberschriften (aus Zeile1) nutze.
Code: [Auswählen]
" SELECT QuartettID, QuartettKz, SpielID_F, QuartettBezeichnung FROM" & _
Beim erneuten ausführen kommt dann
Laufzeitfehler '3071':
Dieser Ausdruck wurde falsch eingegeben, oder er ist zu komplex, um ausgewertet zu werden. Beispielsweise kann ein numerischer Ausdruck zu viele komplizierte Elemente enthalten. Vereinfachen sie den Ausdruck, indem sie Teile des Ausdrucks Variablen zuweisen.
Der Debug springt dann auch hier im Makro in diese gelb markierte Zeile
db.Execute sSQL, dbFailOnError
Der connect zur DB scheint ja zu klappen, aber ich weiß jetzt noch nicht mal was der eigentliche Fehler ist, die Bezeichnung der Spalten?
Wer hat hier Erfahrung, welchem Fehler ich da unterliege? Ich habe wirklich nur rudimentäres Wissen was VBA angeht und komme da leider nicht weiter. Um den Nutzen bzw. Notwendigkeit dieser Makro zu beziffern. Ich werde damit ca. 95000 Einzelkarten nach Access überführen, welch eich ansosnten in extremer Klickarbeit in Access im Userinterface durchführen müsste.
Danke für eure Hilfe und Gruß
Andreas