Office: (Office 2007) Syntaxproblem DLookup mit Insert Into

Helfe beim Thema Syntaxproblem DLookup mit Insert Into in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, bin Anfänger, darum seid bitte gnädig ich komme einfach nicht dahinter. Der Erste DoCmd läuft prima, Der If Teil erzeugt SYNTAX FEHLER... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von User, 20. März 2011.

  1. Syntaxproblem DLookup mit Insert Into


    Hallo Forum, bin Anfänger, darum seid bitte gnädig

    ich komme einfach nicht dahinter.
    Der Erste DoCmd läuft prima,

    Der If Teil erzeugt SYNTAX FEHLER
    Die gesuchte ID ist ein Autowert.
    Ich krieg die Syntax einfach nicht hin

    Private Sub ORDER_CLICK_Click()
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER (FK_REF_ORDER_TYPE,FK_TBL_CONTACT,FK_TBL_PAYMENT_CONDITION,USER_ID,ORDER_DATE,BI LL_TO)" & _

    "VALUES(1,Forms.EWA_Hauptformular!ID,250,Forms.EWA_Hauptformular!USER_ID,Forms.EW A_Hauptformular!Datum,(Forms.EWA_Hauptformular!COMPANY)&' '& (Forms.EWA_Hauptformular!GENDER)&' '& (Forms.EWA_Hauptformular!FIRSTNAME)&' '& (Forms.EWA_Hauptformular!LASTNAME) )"

    If Me!Mit_Bento = True Then
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM (FK_TBL_ORDER)" & _
    "VALUES(varX = DLookup("[ID]", "[TBL_ORDER]", ""[ID]" = max") )"

    End If
    End Sub

    :)
     
  2. Setz mal den Ausdruck "varX = Dlookup(...."
    vor das DoCmd.RunSQL und dann VALUES(varX).
     
    fraeser, 22. März 2011
    #2
  3. Hallo
    evtl. brauchst Du auch die [] nicht im dlookup
    so:
    DLookup("ID", "TBL_ORDER", ""ID" = "max")
    oder
    DLookup("ID", "TBL_ORDER", "ID = " & max)
     
    Lanz Rudolf, 22. März 2011
    #3
  4. Syntaxproblem DLookup mit Insert Into

    Danke für Euer Interesse,
    habe beide Vorschläge umgesetzt


    If Me!Mit_Bentonit = True Then
    varX = DLookup("ID", "TBL_ORDER", "[ID] = max")
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM (FK_TBL_ORDER)" & _
    "VALUES(varX)"
    End If

    Jetz hängt der Compiler in der varX Zeile,
    hab gerade alle möglichen Kombinationen ausprobiert.

    Habt Ihr vielleicht noch eine Idee ?
     
  5. Das ist es doch fast. Du vermischt hier nur etwas: Du willst nicht den Text varx in deinem String stehen haben, sondern den Wert der Variablen varx Code:
     
    Toast78, 22. März 2011
    #5
  6. Ich glaube wir sind ganz nahe dran,
    Compiler läuft durch,jetzt meldet er im Formular
    Der Ausdruck den Sie als Abfrageparameter eingegeben haben hat folgenden Fehler verursacht : 'max'
    Ich kapier das nicht.
    Hab den DLookup in einem Textfeld getestet, er funktioniert einwandfrei
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  7. Hallo
    noch eine Frage:
    Wie ist VarX den Definiert ?
    ich Denke nach dem Namen Var is Varx als Variant Definier?
    muss es auch da Dlookup NULL zurück geben kann und z.B String nicht NULL aufnimt *wink.gif*

    Wo und Wie ist max Definiert und welchen Wert hat es ?
     
    Lanz Rudolf, 22. März 2011
    #7
  8. Syntaxproblem DLookup mit Insert Into

    Bingo, DMax ist der Winner.

    Scheinbar funktioniert DLookup nicht immer

    If Me!Mit_Bentonit = True Then
    varX = DMax("ID", "TBL_ORDER")
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM (FK_TBL_ORDER)" & _
    "VALUES(" & varX & ")"
    End If

    Danke Euch allen. In ein paar Jahren werde ich mich mit mehr Wissen revanchieren
     
  9. DLookUp funktioniert schon, nur hast du es für den falschen Fall benutzen wollen. Dabei hast du nochmal im Prinzip den selben Fehler beim Kriterium gemacht, wie ich beim RunSQL hingebogen habe: Du hast (möglicherweise) eine Variable benutzen wollen und hast einen String draus gemacht.
     
    Toast78, 22. März 2011
    #9
  10. Hallo Toast, bist ja schon früh auf den Beinen.
    Ich hab das nicht so ganz kapiert

    Vielleicht funktionert die zweite Variable in VALUES deshalb nicht.
    Die Syntax ist doch gleich der von VAR_ORDER_ID, nur das Kriterium ist zusätzlich.USER ID 01EWAS01 ist TEXT, Hat es damit zu tun ?
    Hab Sie als Ereignisprozedur in einem ungeb.Textfeld erfolgreich ausprobiert.

    VAR_ORDER_ID = DMax("ID", "TBL_ORDER")
    VAR_PRICE = DMax("PRICE", "TBL_PRODUCT", "USER_ID = ""01EWAS01""")
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM (FK_TBL_ORDER,ITEM_NUMBER,PRODUCT_ID,PRODUCT_PRICE)" & _
    "VALUES(" & VAR_ORDER_ID & ",1,'01EWAS01'," & VAR_PRICE & ")"

    Im Formulaar bekomme ich die Meldung :
    "Anzahl der Abfragewerte und Zielfelder stimmt nicht überein".
    Obwohl das offensichtlich nicht stimmt. 4 zu 4
    Die PRICE-Felder sind in beiden Tabellen DOUBLE und nicht indiziert.

    Hab schon alles Mögliche ausprobiert.

    Weiß da noch jemand Rat ?
     
  11. Hallo
    1.
    versuche zum testen hier danach Debug.print einzu setzen so:
    VAR_ORDER_ID = DMax("ID", "TBL_ORDER")
    VAR_PRICE = DMax("PRICE", "TBL_PRODUCT", "USER_ID = ""01EWAS01""")
    Debug.print "VAR_ORDER_ID->";VAR_ORDER_ID
    Debug.print "VAR_PRICE ->";VAR_PRICE

    dann siest Du was du drin hast im Direkt Fenster
    Direkt Fenster ist Klar ?
    2.
    definiere einmal eine String variable
    Dim Str3 as String
    Str3 ="01EWAS01"
    einmal Hier "USER_ID = "& chr(34) & Str3 & chr(34)) wenn USER_ID ein String ist
    "USER_ID = "& Str3) wenn USER_ID eine Zahl ist
    und Hier ",1,Str3," & VAR_PRICE & ")"
     
    Lanz Rudolf, 23. März 2011
    #11
  12. Hallo Ruedi, Danke, tolle Sache mit dem Fenster.

    VAR_ORDER_ID-> 159
    VAR_PRICE -> 2,15
    Teil 1 ist OK, Werte stimmen. Kann doch nur an meiner verfl...Syntax liegen

    "VALUES(" & VAR_ORDER_ID & ",1,'01EWAS01'," & VAR_PRICE & " )"

    Zu Teil 2 muss ich mir erst noch was anlesen. Krieg ich so noch nicht hin.

    User_ID ist Frei wählbarer text für Artikelnummer.
    Danke nochmal
     
  13. Syntaxproblem DLookup mit Insert Into

    OK, habs verstanden, bringt aber leider nichts.
    Im Formular kommt: "VAR_PRICE, Parameterwert angeben"

    Code:
    Dim StrPOS1 As String
    StrPOS1 = "01EWAS01"

    VAR_ORDER_ID = DMax("ID", "TBL_ORDER")
    VAR_PRICE = DMax("PRICE", "TBL_PRODUCT", "USER_ID = " & Chr(34) & StrPOS1 & Chr(34))
    Debug.Print "VAR_ORDER_ID->"; VAR_ORDER_ID
    Debug.Print "VAR_PRICE ->"; VAR_PRICE

    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM(FK_TBL_ORDER,ITEM_NUMBER,PRODUCT_ID,PRODUCT_PRICE)" & _
    "VALUES(" & VAR_ORDER_ID & ",1,'01EWAS01',VAR_PRICE)"

    IM Direktfenster weiterhin:
    VAR_ORDER_ID-> 159
    VAR_PRICE -> 2,15
    Der Var_PRICE ist doch eindeutig da ? Puh, nicht so einfach.
     
  14. Probier's mal so, da sind noch Variablen (VAR_Price) im String drin, die ausserhalb stehen müssen ... über debug.print sieh dir den resultierenden String erstmal an, da ist oft schon der Fehler zu erkennen. Ungetestet:
    Code:
    maike
     
  15. Hallo
    wie so jezt nicht
    1.
    "VALUES(" & VAR_ORDER_ID & ",1,StrPOS1,VAR_PRICE)"

    um mehr zu sagen wie ist VAR_ORDER_ID in der Tabelle Definiert Zahl oder Text ?

    was heist weiterhin:
    VAR_ORDER_ID-> 159
    ist den 159 nicht richtig ?

    wie ist in der tabelle VAR_PRICE Definiert Double ?

    2.Gennerel da stimmt was nicht
    DoCmd.RunSQL _
    "INSERT INTO TBL_ORDER_ITEM(FK_TBL_ORDER,ITEM_NUMBER,PRODUCT_ID,PRODUCT_PRICE)" & _
    "VALUES(" & VAR_ORDER_ID & ",1,StrPOS1,VAR_PRICE)"

    mach
    noch eine String Variable so:
    Dim StrSQL As String
    Dim StrPOS1 As String
    StrPOS1 = "01EWAS01"
    StrSQL = "INSERT INTO TBL_ORDER_ITEM(FK_TBL_ORDER,ITEM_NUMBER,PRODUCT_ID,PRODUCT_PRICE)" & _
    "Select " & VAR_ORDER_ID & "," & 1 & ", " & StrPOS1 & "," & VAR_PRICE & ";"

    Debug.Print StrSQL
    DoCmd.RunSQL StrSQL

    hir sollte dann im DirektFenster so was Stehen:
    INSERT INTO TBL_ORDER_ITEM(FK_TBL_ORDER,ITEM_NUMBER,PRODUCT_ID,PRODUCT_PRICE)Select 159,1, 01EWAS01,1.25;

    wen nach werte der Felder!
    1.25 für die Schweiz für deutschland 1,25
     
    Lanz Rudolf, 23. März 2011
    #15
Thema:

Syntaxproblem DLookup mit Insert Into

Die Seite wird geladen...
  1. Syntaxproblem DLookup mit Insert Into - Similar Threads - Syntaxproblem DLookup Insert

  2. DLookup (Datum) bei Datum-Zeit

    in Microsoft Access Hilfe
    DLookup (Datum) bei Datum-Zeit: Moin, wenn ich Datensätze mit Datum im Datumsformat per DLookup auslese, funktioniert alles. Wenn die Datensätze auch noch eine Uhrzeit beinhalten, werden sie ignoriert. Muss man in die Kriterien...
  3. Mit DLookUp einen Wert aus einer Abfrage auslesen

    in Microsoft Access Hilfe
    Mit DLookUp einen Wert aus einer Abfrage auslesen: Hallo Forum, ich möchte mit Hilfe der DLookUp-Funktion einen Wert aus einer Abfrage in meinem Formular in einem Textfeld angezeigt bekommen. Die Kriterien sollen sich hierbei dynamisch an der...
  4. Dlookup- Probleme

    in Microsoft Access Hilfe
    Dlookup- Probleme: Hallo zusammen, ich habe Probleme mit der Dlookup-Methode. Beim Start der DB wird die Personalnummer ausgelesen und im Startformular in das Feld [Benutzer] eingetragen. Nun möchte ich das div....
  5. Problem bei der DLookup Funktion

    in Microsoft Access Hilfe
    Problem bei der DLookup Funktion: Hallo, ich habe ein Problem mit der DLooup Funktion und ich komme einfach nicht auf die Lösung. Ich habe eine Form mit einem Edit-Feld und einem Button. Nun soll ich beim Klicken den Inhalt in...
  6. DLookup-Funktion

    in Microsoft Access Tutorials
    DLookup-Funktion: DLookup-Funktion Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  7. VBA Einzeiler Syntaxproblem

    in Microsoft Excel Hilfe
    VBA Einzeiler Syntaxproblem: Hallo zusammen, mein heutiges problem ist verleichsweise einfach hat mich aber unzählige nerven gekostet. Ich schaffe es einfach nicht die Syntax richtig hinzubekommen. Nichtmal mit dem Internet...
  8. Syntaxproblem

    in Microsoft Excel Hilfe
    Syntaxproblem: Hallo, ich programmiere normalerweise in Java und komme mit dem Syntax von Excel nicht ganz zurecht. Ich möchte die SUMMEWENN-Funktion nutzen und als Krietrium überprüfen, ob der Inhalt des...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden