Commander_COM Geschrieben 30. Juli 2002 Geschrieben 30. Juli 2002 Hallo, kann mir mal bitte jemand verraten, was daran falsch sein soll? Ich bin am verzweifeln. Dim prio_nr, stoer_nr, ben_nr, datum, zeit, komp_nr, ok_nr, Anzahl As Variant Dim sql_str As String datum = Date zeit = Time ###die obigen anderen Variablen erhalten alle völlig korrekte Werte#### sql_str = "INSERT INTO text(stichwort, text, prio_nr, stoer_nr, ok_nr, ben_nr, komp_nr, datum, zeit) values ('&stichwort_feld&', '&text_feld&', '&prio_nr&', '&stoer_nr&', '&ok_nr&' , '&ben_nr&', '&komp_nr&', '&datum&', '&zeit&')" DoCmd.RunSQL sql_str Er meint nur noch: "Fehler in SQL-Anweisung" :confused: Ich weiß echt nicht mehr weiter. Hab schon vieles rumprobiert mit den einfach anführungszeichen und den "&" weglassen, hat auch nicht geklappt. :confused::confused::confused: In meiner Tabelle text gibt es noch ein auto_increment Feld am Anfang und noch 3 andere Felder in die nichts reingeschrieben werden soll. Muß doch auch nicht, oder????? :confused: Wenn jemand Rat weiß, bin ich ihm/ihr sehr dankbar. MfG Zitieren
Commander_COM Geschrieben 30. Juli 2002 Autor Geschrieben 30. Juli 2002 Oder kennt jemand vielleicht noch eine andere Möglichkeit, als mit dem DoCmd.RunSQL - Befehl Daten in eine Tabelle einzufügen? Ich kenne mich mit VBA noch nicht so gut aus und hab leider auch kein Buch oder so was dazu... Zitieren
hades Geschrieben 30. Juli 2002 Geschrieben 30. Juli 2002 Fuege in die Werte, in denen nichts eingefuegt werden muss, den Wert NULL ein. Zitieren
Commander_COM Geschrieben 30. Juli 2002 Autor Geschrieben 30. Juli 2002 dachte ich zuerst auch, aber das geht nicht. er meint immer noch "Syntaxfehler in der SQLAnweisung....." :confused::confused::confused: Noch Ideen? Zitieren
hades Geschrieben 30. Juli 2002 Geschrieben 30. Juli 2002 Poste mal die Abfrage mit den Null-Werten. Das & gibt es in SQL nicht, das ist als Verknuepfungsoperator nur in VB/VBA/VBS und in anderen Programmiersprachen verfuegbar. Zitieren
Commander_COM Geschrieben 30. Juli 2002 Autor Geschrieben 30. Juli 2002 Dim wart_nr, info_nr,ok_text As Variant wart_nr=NULL info_nr=NULL ok_text=NULL sql_str = "INSERT INTO text(stichwort, text, prio_nr, stoer_nr, ok_nr, ben_nr, komp_nr, datum, zeit, wart_nr, info_nr, ok_text) values ('&stichwort_feld&', '&text_feld&', '&prio_nr&', '&stoer_nr&', '&ok_nr&', '&ben_nr&', '&komp_nr&', '&datum&', '&zeit&','&wart_nr&', '&info_nr&', '&ok_text&')" DoCmd.RunSQL sql_str wart_nr, info_nr,ok_text sind die neuen Variablen. Dann gibt es noch die text_nr als autoincrement in der Tabelle für den Primary Key. Die muss ich doch glaube ich gar nicht mit da oben reinschreiben oder? Machts ja automatisch(wie der name schon sagt , oder sollte es zumindest. Und die & und einfachen Hochkommata werden doch von Access richtig erkannt, an diesen Stellen soll ja das VBA die vorher von mir festgelegten Werte einsetzen. In früheren DB's von mir geht das auch wunderbar, aber ich finde irgendwie keinen Unterschied zu der jetzigen :confused: Keine Ahnung. Wie gesagt, das funktioniert normalerweise, aber vielleicht gibts auch noch einen anderen Weg um Daten in eine Tabelle zu schreiben ausser über die Hintertür RunSQL???? *sich nach DB-Freaks mal umschaut hier...* Wäre für Hilfe echt dankbar, das ist so ziemlich das letzte Problem vor dem ich stehe, bis meine Grundlogik dieser DB fertig ist. thx EDIT: das "&" wird doch durch die Hochkommata wieder in normale VBA-Umgebung gesetzt. Dort wird es ja auch gekannt. Wäre es normales SQL hätte ich kein Problem mit der Erstellung des korrekten Befehls aber hier.... Zitieren
g_nikolai Geschrieben 30. Juli 2002 Geschrieben 30. Juli 2002 sql_str = "INSERT INTO text(stichwort, text, prio_nr, stoer_nr, ok_nr, ben_nr, komp_nr, datum, zeit, wart_nr, info_nr, ok_text) values ('" & stichwort_feld & "', '" & text_feld & "', '" & prio_nr & "', '" & stoer_nr & "', '" & ok_nr & "', '" & ben_nr & "', '" & komp_nr & "', '" & datum & "', '" & zeit & "','" & wart_nr & "', '" & info_nr & "', '" & ok_text & "')" versuch es mal so. die ' braucht man aber nur wenn der Inhlat der variablen wirklich ein STRING Wert ist Gruß Guido Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 Das ging so nicht. Ich denke doch, dass ich die Hochkommata brauche, da sonst das "&" mit in der SQL-Anweisung steht und dann gehts doch nicht, oder seh ich da was falsch? Hat noch jemand ne Idee? *verzweifelt umgugg* :confused: Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 ok, es scheint was essentielles falsch zu sein. ich habe noch mal eine Testtabelle angelegt und eine ganz einfache struktur erstellt. autowert, stichwort, nummer, text. bei eintragen in diese tabelle kommt die selbe fehlermeldung. Code: Dim sql_str As String sql_str = "insert into testtabelle (stichwort, nummer, text) values (stichwort_feld, nummer_feld, text_feld)" DoCmd.RunSQL sql_str stichwort_feld, nummer_feld, text_feld sind bei mir ungebundene Textfelder im Formular. Zitieren
g_nikolai Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 willst Du per Code die Textfeldinhalte in die Tabelle einfügen in der Access DB oder aus einem anderen Programm oder Code? wenn ja, nimm auf jedenfall Textfeld.Text als Wert und dann kannst du auch mit CurrentDB.Execute arbeiten Dann sollte ein INSERT so aussehen: sql_str = "INSERT INTO testtabelle (stichwort, nummer, text)" & _ VALUES ('" & stichwort_feld.text "','" & nummer_feld.text & "','" & text_feld.text & "')" Currentdb.execute sql_str Versuch es mal. Guido Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 Langsam drehe ich hier durch! ****** Hitze und ****** Access. Gruß an die Moderatoren, auch wenns vielleicht gesperrt wird aber langsam bekomm ich hier nen Knall! "Laufzeitfehler '3134'. Syntaxfehler in der Insert Into-Anweisung" "Laufzeitfehler '3134'. Syntaxfehler in der Insert Into-Anweisung" "Laufzeitfehler '3134'. Syntaxfehler in der Insert Into-Anweisung" "Laufzeitfehler '3134'. Syntaxfehler in der Insert Into-Anweisung" AAAARRRGGHHH!!!!!! Mein Code sieht jetzt so aus: Private Sub Eintragen_button_Click() Dim sql_str As String sql_str = "INSERT INTO testtabelle (stichwort, nummer, text) VALUES ('&stichwort_feld.text&','&nummer_feld.text&','&text_feld.text&')" CurrentDb.Execute sql_str End Sub Geht trotzdem nicht!!! Tabelle: Testtabelle (prim_key[autowert], stichwort[text], nummer[zahl], text[text]) Ich hab echt keine Ahnung mehr. Ich hab ne alte DB von mir geöffnet, da gehts wunderbar. Warum denn nur hier nicht??? Kann mich Access nicht mehr leiden, weil ich immer dagegen schimpfe? Warum bestraft mich Bill G. nur so hart???? Ich glaube ich brauch nen Schirmchendrink und dringend Abkühlung.... @g_nikolai: sobald ich "Gänsefüßchen" in die Anweisung reinmache, so wird sie von access als beendet erachtet. das isses also bestimmt nicht..... Zitieren
JayN Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Immer mit der Ruhe... bin ja schon da... Nehme mich Deines Problems an... mal schauen, ob ich durchsteige... JayN Zitieren
tauron Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Moin ! "Text" ist ein reserviertes Wort unter Access, daher die Fehlermeldung. Entweder Du änderst den Feldnamen in "Kurzext" oder so, oder sprichst ihn mit [Text] an. Und die Gänsefüschen müssen auch rein: Dim sql_str As String sql_str = "INSERT INTO testtabelle (stichwort, nummer, [text]) VALUES ('" & stichwort_feld & "' , '" & nummer_feld & "', '" & text_feld & "')" CurrentDb.Execute sql_str Mit dem ersten Hochkomma ' sagst du Sql ja das jetzt ein String kommt. Dann kommt " & Stichwort_feld & " , dadurch wird die Zeichenfolge für Access unterbrochen, der Inhalt des Feldes angehängt und dann geht der String weiter. hoffe das hilft Dir ! Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 so, hab erstmal eine geraucht und ne cola geschlürft, jetzt gings weiter. Das mit dem reservierten Wort hatte ich gerade eben selber rausgefunden (trotzdem danke tauron). Was die Gänsefüßchen betrifft, bin ich mir da nicht so sicher, sobald ich die reinmache, wird die Zeile in VBA rot dargestellt und nicht mehr ausgeführt... das kann noch nicht alles sein??, oder? ok. jetzt klitzekleines neues Problem. also das anfügen geht in grobzügen bis auf die neue Fehlermeldung, dass er mir bei der ersten Ziffer (prio_nr z.B.) einen "Typumwandlungsfehler" bringt und ab da nichts mehr einträgt. habe den code erstmal vereinfacht und es nochmal versucht, selber fehler. sieht inzwischen so aus: dim prio_nr As Integer sql_str = "INSERT INTO text_tabelle(stichwort, text_eintrag, prio_nr) values (stichwort_feld, text_feld, '&prio_nr&')" DoCmd.RunSQL sql_str (man beachte "text_tabelle" ) in der Tabelle ist prio_nr auch als zahl definiert. warum meint er nur bloß, dass es ein Typumwandlungsfehler gibt???? :confused: schade, ich war so kurz vorm Durchbruch... das erste prio_nr ist ein spaltenname in der tabelle "text_tabelle" und das zweite prio_nr ist eine variable unter VBA wie oben definiert.... Zitieren
JayN Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Sind stichwort_feld und text_feld Felder in einem Formular oder Variablen? Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 ja, stichwort_feld und text_feld sind ungebundene öhm, ganz normale texteingabefelder in meinem eingabeformular. Zitieren
JayN Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Muß nicht noch ein Semikolon ans Ende der SQL-Anweisung? JayN Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 nein, das wird von access auch gleich wieder automatisch entfernt. die anwqeisung funktioniert ja einwandfrei, wenn ich prio_nr weglasse. nur wenn ichs reinschreibe, dann findet er irgendeine dumme typeninkompatibilität zwischen der variable und dem feld in der tabelle. das verstehe ich nicht, da die variable eine integer ist und das feld auch auf zahl gesetzt ist. :confused: Zitieren
JayN Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Original geschrieben von Commander_COM sql_str = "INSERT INTO text_tabelle(stichwort, text_eintrag, prio_nr) values (stichwort_feld, text_feld, '&prio_nr&')" sql_str = "INSERT INTO text_tabelle(stichwort, text_eintrag, prio_nr) values ('" & stichwort_feld & "','" & text_feld & "'," & prio_nr & ")" Muß das nicht so aussehen? ('" = ' + " oder " + ') JayN Zitieren
JayN Geschrieben 31. Juli 2002 Geschrieben 31. Juli 2002 Die Zahl darf nicht in Gänsefüßchen oder Hochkommata stehen, die Strings müssen in Anführungszeichen sein, glaub ich.... JayN P.S. Hab gerade eine Abfrage gebastelt, da hat es geklappt. Zitieren
Commander_COM Geschrieben 31. Juli 2002 Autor Geschrieben 31. Juli 2002 Jup, endlich!!! *abfeier* Es geht! auch mit den """"""" *wunder* naja, was solls. Ich danke euch allen.... :D :D :D Zitieren
g_nikolai Geschrieben 6. August 2002 Geschrieben 6. August 2002 also doch so wie ich gesagt hatte. nur das bei meinem Beispiel ein & gefehlt hat und deshalb der Fahler kam bzw. Acces das als ende genommen hat Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.