Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Laufzeitfehler 3134 Syntaxfehler in der Insert Into-Anweisung

Begonnen von Ralf_17, Oktober 05, 2010, 15:15:39

⏪ vorheriges - nächstes ⏩

Ralf_17

Hallo,

Code:
Private Sub Kombifeld2_BeforeUpdate(Cancel As Integer)


Dim disseminiert_Stadium_ID As Long, strBezeichnung As String

lngdisseminiert_Stadium_ID = Me!Kombifeld2

strBezeichnung = Me!Kombifeld2.Column(1)


strSQL = "INSERT INTO Tab_Fruehstadium(I)_und_disseminiert_Stadium(II) (Bezeichnung) VALUES ('" & strBezeichnung & "')"

DoCmd.RunSQL strSQL
End Sub

beim Debuggen: Markieren der  CoCmd-Zeile mit im Betreff genannten Fehler

Kennt jemand die Ursache?
(Tab-name zu lang?)

Danke!


database

Hallo,

das Problem liegt an den Klammern im Tabellennamen!
Die SQL-Engine interpretiert dieses Stadium(II) (Bezeichnung)  als 2 aufeinanderfolgende Feldnamen die extra eingeklammert sind und somit wird ein Fehler erzeugt.
Nimm die Klammern aus dem Tabellennamen raus und alles läuft problemlos.

strSQL = "INSERT INTO Tab_FruehstadiumI_und_disseminiert_StadiumII (Bezeichnung) VALUES ('" & strBezeichnung & "')"

Natürlich musst du die Tabelle selbst auch umbenennen!

HTH
Peter

Ralf_17

ok, danke!

jetzt anderer Fehler bei Testen der Anfügeabfrage:

Keine Anfügung, aufgrund Schlüsselverletzung  (Access-Fehlermeldung stark verkürzt wiedergegeben).

(Beziehungen innerhalb den Tabellen bzw. den referrierenden Forms sind im Beziehungsfenster korrekt abgebildet.)




DF6GL

Hallo,


das Feld "Bezeichnung" in der Tabelle besitzt nicht zufällig einen eindeutigen Index, bzw. ist ein Teil von einem zusammengesetzten Schlüssel?


database

Hallo,

als Nachtrag du kannst da Problem auch umgehen in dem du den Tabellennamen in eckige Klammern setzt - so können die runden Klammern im Namen bleiben.

Zum Anderen Problem - naja, Access wird dich kaum belügen!
Mangel Kenntnis deiner Struktur kann ich dazu wenig aussagen - möglicherweise wird die Eingabe eines Fremdschlüssels zusätzlich zur Beschreibung erwartet (das Feld ist als Mussfeld deklariert, darf also nicht leer bleiben) oder du hast - was ich jetzt nicht hoffe - das Feld Beschreibung in der Tabelle zum Primärschlüssel ernannt.


database



Ralf_17

Hallo,
Textfeld als Schlüsselvariable, das passiert nicht mal mir ;-)

Hab Autowert_ID als PS (und kein weiteres Feld!) dazu neben Bezeichnung noch ne Spalte mit Fremd-ID - referrierend
zu übergeordneter Tabelle. Diese als Zahl (Long I) und ohne doppelte Werte. In übergeordneter Tab. ebenso Autowert_ID.

Die Beziehung hab ich mal gelöscht, bei Neuerstellung kann ich nur 1:1 auswählen (vorher 1 [übergeord.Tab] : n [besagte Tab].

DF6GL

Hallo,

"dazu neben Bezeichnung noch ne Spalte mit Fremd-ID "

na, da liegt der Hase im Pfeffer.  Deine Anfügeabfrage setzt dieses Feld nicht (d. h. setzt mit einem NULL-"Wert" ) und der kann kein FS sein...

Ralf_17

Hi,

ok. verstehe.

Aber weglassen kann ich den ja auch nicht einfach.

database

Hi,

ZitatDiese als Zahl (Long I) und ohne doppelte Werte
Dann hast du auf den FS einen eindeutigen Index gelegt und somt ist nur noch 1:1 möglich!
Da liegt wirklich mit der Beziehung was im Argen ...   :o

Ralf_17