Was ist falsch an folgendem Access VBA SQL-Statement: strSQL = "INSERT INTO tbl_Bestände_HZV (Datum, RLEx) IN " & strPfadExtern & "." & ZielTabelle & ...?

Antwort

In deinem SQL-Statement gibt es mehrere Probleme: 1. **Syntaxfehler bei `IN`**: Das `IN`-Schlüsselwort wird in Access-SQL für das Einfügen in eine externe Tabelle verwendet, aber die Syntax ist sehr speziell. Die korrekte Syntax ist: ```sql INSERT INTO [Tabelle] IN 'Pfad\Datei.mdb' (Feld1, Feld2) VALUES (...) ``` **Achtung:** `IN` erwartet einen Dateipfad zu einer Access-Datenbank, nicht zu einer Tabelle. 2. **Zusammenbau des Strings**: Du versuchst, den Tabellennamen und den Pfad zu kombinieren, das ist aber nicht korrekt. Der Tabellenname steht direkt nach `INSERT INTO`, der Pfad nach `IN`. 3. **Fehlende `VALUES`-Klausel**: Dein Statement enthält keine `VALUES`-Klausel, die die einzufügenden Werte angibt. **Korrektes Beispiel:** Angenommen, du hast: - `strPfadExtern = "C:\Daten\Zieldatenbank.mdb"` - `ZielTabelle = "tbl_Bestände_HZV"` Dann sollte dein SQL-String so aussehen: ```vba strSQL = "INSERT INTO " & ZielTabelle & " (Datum, RLEx) " & _ "IN '" & strPfadExtern & "' " & _ "VALUES (#2024-06-01#, 123)" ``` **Hinweise:** - Der Pfad muss in einfache Anführungszeichen gesetzt werden. - Das Tabellenobjekt steht direkt nach `INSERT INTO`. - Die `VALUES`-Klausel ist notwendig. - Datumswerte in Access-SQL werden mit `#` umschlossen. **Zusammengefasst:** Dein Fehler liegt in der falschen Platzierung und Zusammensetzung von `IN`, Pfad und Tabellennamen sowie der fehlenden `VALUES`-Klausel. Weitere Infos: [Microsoft Doku zu INSERT INTO](https://learn.microsoft.com/de-de/office/client-developer/access/desktop-database-reference/insert-into-statement-microsoft-access-sql) **Beispiel für dynamischen SQL-String in VBA:** ```vba strSQL = "INSERT INTO " & ZielTabelle & " (Datum, RLEx) " & _ "IN '" & strPfadExtern & "' " & _ "VALUES (#" & Format(MeinDatum, "yyyy-mm-dd") & "#, " & MeinRLEx & ")" ``` Passe die Werte und Variablen entsprechend an.

Kategorie: Programmierung Tags: Access VBA SQL
KI fragen

Verwandte Fragen

Warum tritt in Access VBA bei der Abfrage 'If AnlageNeu = "Schleifmaschine" And Nachklassifizierung Is Null Then' die Fehlermeldung 'Objekt erforderlich' auf?

Die Fehlermeldung **"Objekt erforderlich"** in VBA tritt meist auf, wenn du versuchst, auf ein Objekt zuzugreifen, das nicht existiert oder falsch deklariert wurde. In deinem Fall liegt das... [mehr]

Wie kann man in Access VBA eine Pause von 10 Sekunden einlegen?

In Access VBA kannst du eine Pause von 10 Sekunden mit der Sleep-Funktion aus der Windows-API einlegen. Hier ein Beispiel, wie das funktioniert: ```vba Declare PtrSafe Sub Sleep Lib "kernel32&qu... [mehr]

Wie kann man eine per Access-VBA automatisch geöffnete Excel-Datei direkt wieder schließen?

Um eine Excel-Datei, die per Access-VBA geöffnet wurde, automatisch wieder zu schließen, solltest du das Excel-Objektmodell in deinem Access-VBA-Code verwenden. Hier ein Beispiel, wie das g... [mehr]

Wie kann man per VBA-Makro beim Öffnen einer Datei das Kontextmenü der rechten Maustaste deaktivieren?

Um beim Öffnen einer Excel-Datei per VBA-Makro die Kontextmenüs der rechten Maustaste zu deaktivieren, kannst du folgenden Code im Modul "DieseArbeitsmappe" (engl. "ThisWorkbo... [mehr]

Ist der Code wert = Range("Ergebnisse[Gab Bauteil lang]").Value in VBA fehlerfrei?

Der Code `wert = Range("Ergebnisse[Gab Bauteil lang]").Value` ist in VBA **nicht fehlerfrei**, wenn du auf eine Excel-Tabelle mit strukturierten Verweisen (Tabellenreferenzen) zugreifen m&ou... [mehr]

Kann man Private Sub Workbook_SheetBeforeRightClick in Private Sub Workbook_Open integrieren?

Nein, das ist nicht möglich. In VBA (Visual Basic for Applications) sind `Workbook_Open` und `Workbook_SheetBeforeRightClick` zwei eigenständige Ereignisprozeduren (Event Handler), die jewei... [mehr]

Gibt es If Not (Bedingung) Then in VBA für Excel?

Ja, in VBA für Excel gibt es die Möglichkeit, eine Bedingung mit **If Not (Bedingung) Then** zu prüfen. Das Schlüsselwort **Not** kehrt die Bedingung um. Hier ein Beispiel: ```vba... [mehr]

Ist 'Range(Cells(a,10):Cells(b,10)).Copy' im VBA-Code korrekt?

Die Syntax `Range(Cells(a,10):Cells(b,10)).Copy` ist in VBA (Visual Basic for Applications) **nicht korrekt**. In VBA muss der Bereich innerhalb der `Range`-Funktion als String oder als zwei separate... [mehr]

Wie kann ich mit einem VBA-Makro die Zeilen 8 bis 10 ausblenden?

Um in Excel mit einem VBA-Makro die Zeilen 8 bis 10 auszublenden, kannst du folgenden Code verwenden: ```vba Rows("8:10").Hidden = True ``` So gehst du vor: 1. Drücke `ALT + F11`, um... [mehr]

Wie kann ich mit VBA den Bereich 'Test' in Blatt 1 kopieren und in Blatt 2 ab Zelle B18 einfügen?

Um in Excel mit VBA einen Bereich namens "test" aus Blatt 1 zu kopieren und in Blatt 2 ab Zelle B18 einzufügen, kannst du folgenden VBA-Code verwenden: ```vba Sub BereichKopieren()... [mehr]