in meinem Job habe ich ein kleines Problem mit VBA (ich bin neu in VBA, so ist es vielleicht nur ein kleiner Fehler, aber ich habe keine Lösung im Internet gefunden)Syntax von Vars in VBA mit SQL
For i = 0 To Me!Liste_Eingangsdiagnostik.ListCount - 1
diagName = Me!Liste_Eingangsdiagnostik.column(0, i) & "_" & Me!Liste_Eingangsdiagnostik.column(1, i) & "_" & 1
If Me!Liste_Eingangsdiagnostik.Selected(i) Then
buildFilter_EingangsDiag i
tableName = Me!Liste_Eingangsdiagnostik.column(0, i)
Debug.Print tableName
newColumn = "ALTER TABLE " & tempTable & " ADD COLUMN " & tableName & " " & "Long"
Set rs = CurrentDb.OpenRecordset("abf_Export_Diagnostik") 'Erstelle die Antworten
'updateExport = "INSERT INTO Export_Hilfstabelle " & " (IDTAB_EP, ID_Antwortbogen, tableName) " & " (rs.Fields(1).Value,rs.Fields(1).Value,.Fields(1).Value)"
db.Execute newColumn
Do While Not rs.EOF
a = rs.Fields("IDTAB_EP").value
Debug.Print a
b = rs.Fields("ID_Antwortbogen").value
Debug.Print b
c = rs.Fields("strAntworten_Text").value
Debug.Print c
db.Execute "INSERT INTO [Export_Hilfstabelle] " & " ([IDTAB_EP], [ID_Antwortbogen], [ID_Frage], ['" & tableName & "']) VALUES " & " ('" & a & "', '" & b & "',0,'" & c & "')"
rs.MoveNext
Loop
End If
Next i
Die Benutzer dieser Datenbank möchten alle ihre Diagnosen, die sie wählen, in einer Tabelle. Also versuche ich für jede Diagnose eine neue Spalte (tableName) hinzuzufügen, aber ich habe den ErrorLog bekommen: das Feld Name ist nicht korrekt. (Ich komme aus Deutschland, also einige Vars sind auf Deutsch.) Vielen Dank für Ihre Hilfe!
Welche Zeile sehen Sie auf diesen Fehler erhalten werden? der 'ALTER TABLE' oder der' INSERT INTO'? – Dave
Das INSERT INTO löst den Fehler aus. –
In der INSERT-Anweisung sind die Apostrophe in '['" & tableName & "']' falsch, entfernen Sie sie. Aber das ist wahrscheinlich nicht das einzige Problem. - Siehe auch: [Wie man dynamischen SQL in VBA debuggt] (http://stackoverflow.com/questions/418960/managing-and-debugging-sql-queries-in-ms-access/1099570#1099570) – Andre