Hallo
Wenn ich diese SQL laufen lassen möchte bekommen ich einen error " 3219 ungültige operation".
ich verstehe nicht warum. So wie ihr unten sehen könnt, will ich eine tabelle angelegen wobei die daten aus de tabelle struc kommen und zusätzliche 3 weitere felder. diesen sind nicht in eine tabelle hinterlegt, deshalb im acess2003 frägt ihr nach den wert dieser felder.
In der SLQ anweisung diese 3 spezielle felder haben sind zu einer variable zugeordnet, ( [datum] AS Expr2, [betreff] AS Expr3, [Text] AS Expr1)
Wenn ich aber zu die variablen Expr1,Expr2 und Expr3 einen Wert zuordne müsste jedoch nicht mehr danach fragen.
Ich mache schon lange rum aber ich kommen nicht auf den problem.
kann mir bitte jemand sagen was ich falsch mache? und mir eventuell die korektur vornimmt.
das prog.
---------------------------------------------------------------------
Dim objDB As DAO.Database
Dim objRS As DAO.Recordset
Dim strSQL As String
strSQL = "INSERT INTO Lieferscheine ( [sales unit], GB, [VKL person], [GB person], [mitarbeiter], name, Lieferdatum, Betreff, Text )" & _
"SELECT struc.[sales unit], struc.GB, struc.[VKL person], struc.[GB person], struc.[mitarbeiter], struc.name, [datum] AS Expr2, [betreff] AS Expr3, [Text] AS Expr1 " & _
"FROM struc WHERE (((struc.GB)='25-000'));"
gei_text="hallo"
gei_datum="09/05/2007"
gei_betreff="probe"
Expr1 = gei_text
Expr2 = gei_datum
Expr3 = gei_betreff
Set objDB = CurrentDb
Set objRS = objDB.OpenRecordset(strSQL, , DAO.dbSQLPassThrough)
Call objRS.Close
Set objRS = Nothing
Set objDB = Nothing
---------------------------------------------------------------------
ich danke euch für eure Hilfe
logo3
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Du gehst (aus irgendwelchen Gründen) davon aus, daß VBA (oder VB) den Inhalt einer Zeichenkette als Variablenname interpretiert. Außerdem verdrehst Du Feldname und Feldwert.
Beispiel:
"... [datum] AS Expr2 ..."
gei_datum="09/05/2007"
Expr2 = gei_datum
Das ist jedoch nicht der Fall, der Inhalt einer Zeichenkette und der Name einer Variablen sind für VBA (und alle anderen Sprachen auch) zwei völlig verschiedene Dinge.
Ist-Zustand:
Deine SQL-Abfrage sucht im Moment nach einem Feld namens "datum" in der Tabelle "struc". Wenn dieses Feld nicht gefunden wird, wirst Du gefragt, was Du als Wert einsetzen möchtest. Der eingegebene Wert wird in einem Feld namens "Expr2" abgelegt.
Soll-Zustand:
Statt den Inhalt des Feldes "datum" auszulesen möchtest Du selbst einen Inhalt vorgeben, ohne gefragt zu werden. Der Inhalt soll im Feld "datum" abgelegt werden.
Lösung:
Du mußt die Werte mit in die Zeichenkette einbauen.
... struc.name, " & Format$(CDate(2007, 5, 9), "\#mm\/dd\/yyyy#") & " AS datum ...
Für die anderen Felder geht das analog.