PDA

Vollständige Version anzeigen : "Parameterwert eingeben" bei INSERT INTO


Mr. Pelle
04.10.2002, 22:57
Moin moin,

ich möchte gerne einer Tabelle ([Email] text, [PersNr]Zahl, [EmailID]autowert) einen neuen Datensatz anfügen. In einem Formular gebe ich die Emailadresse ein. Bei Klick auf OK wird sie unter der Variablen StrEmail gespeichert und der untenstehende Code wird aufgerufen.
Die PersNr wurde zuvor unter InPersNr und die Tabelle, in die der DS angefügt werden soll, unter StrBezugsTabelle abgespeichert
Mein Code sieht jetzt so aus:


DoCmd.RunSQL ("INSERT INTO " & StrBezugsTabelle & " (Email, PersNr)_
VALUES ( " & StrEmail & ", " & InAktPersNr & " );")


Jedesmal wenn dieser SQL-String aufgerufen wird bekomme ich ein Dialogfeld "Parameterwert eingeben". Über der Eingabezeile steht dann die in mein Formular eingegebene Emailadresse. Wenn ich die Emailadresse dort nochmals eingebe wird der DS korrekt angelegt. Die Emailadresse in meinem neuen DS ist immer der eingegebene Parameterwert.
Ich habe schon Email und PersNr umgedreht und jedesmal passt Access nur die Variable StrEmail nicht. Ich habe diesen String auch schon auf eine Abfrage bezogen, die dann die Tabelle enthielt.
Immer das gleiche.
Ich weiß nicht mehr weiter. Bei anderen Feldern hat es genauso funktioniert nur bei der Emailadresse nicht.
Ich hoffe ihr könnt mir weiterhelfen.
Einen schönen Abend wünscht

Pelle

Scorefun
04.10.2002, 23:29
da scheinen ein paar Hochkomma zu fehlen...


DoCmd.RunSQL ("INSERT INTO " & StrBezugsTabelle & " (Email, PersNr)_ VALUES ( '" & StrEmail & "', " & InAktPersNr & " );")

axlhappy
04.10.2002, 23:32
Versuch mal einen Breakpoint zu setzen und schau dann mal nach, ob eventuell diese Variable einen null wert hat.
CU
Axlhappy

Mr. Pelle
04.10.2002, 23:47
Moin Ralf,

jetzt bekomme ich eine Fehlermeldung die da lautet:

<blockquote><font size="1" face="Arial, Verdana, Helvetica, sans-serif">Zitat:</font><hr> Access kann nicht alle Datensätze anfügen, die von der Anfügeabfrage betroffen sind.
...
Access hat 1 Datensatz wegen Gültigkeitsregelverletzungen nicht an die Tabelle angefügt.
<hr></blockquote>

Hast Du ne Idee?
Die Variablen sollten doch so stimmen?

Pelle

Mr. Pelle
05.10.2002, 00:04
Moin moin,

habt mir echt weitergeholfen. Ohne die Hochkommata hätte ich weiter die Meldung "Parametewert eingeben" bekommen und ohne den breakpoint wäre mir zu so später Stunde nicht mehr aufgefallen, dass nicht stremail sondenr email der Wert zugewiesen wurde.
Danke, habt mir echt geholfen.

Ich verstehe nur nicht, dass der folgende Code ohne Hochkommata funktioniert, denn wenn ich bei meinem Email-SQL-String den direkten Formularbezug herstelle funktioniert es auch nur mit ' '.

DoCmd.RunSQL ("INSERT INTO " & BezugsAbfrage & " (PersNr, Landeskennzahl, Ortsvorwahl, Rufnummer) VALUES _
(" & AktPersNr & ", " & Forms!FrmBearTNr!TfLandeskennzahl.Value & ", " & Forms!FrmBearTNr!TFOrtsvorwahl.Value & _
", " & Forms!FrmBearTNr!TfRufnummer.Value & ");")


Eine schönen Abend noch

Pelle

Juergen_Gast
24.11.2003, 23:37
Hmmm, hab da ein ähnliches Problem, möchte die Werte einer Tabelle in eine andere schreiben. In beiden Tabellen sind die Felder prof_rechn_nr enthalten (als Zahl)



SQLStmt = "INSERT * FROM T_Antrag_Rücklieferung INTO T_Antrag_Rücklieferung_tmp WHERE (prof_rechn_nr = " & prof_rechn_nr & ");"
DoCmd.RunSQL SQLStmt



Bekomme dann als Fehlermeldung einen Syntaxfehler im SQL zurück, komme aber nicht drauf

Arne Dieckmann
25.11.2003, 10:22
Das Statement müsste so lauten:

"INSERT INTO Zieltabelle SELECT QuellTabelle.* FROM Quelltabelle WHERE Quelltabelle.FELD=Kriterium"

Jetzt musst Du uns nur noch mitteilen, was Du wo eintragen willst, dann kann man Dir auch den genauen String nennen.