RunSQL problemen met WHERE clause.

Status
Niet open voor verdere reacties.

muufley

Gebruiker
Lid geworden
23 sep 2010
Berichten
47
Voor een stockbeheer database waarbij items in een warehouse een locatie toegewezen krijgen. Bij het ingaveformulier voor het toevoegen van een nieuwe record wordt in de afterupdate event van de control, die dient om de locatie in te geven, gecontroleerd of deze locatie al in de tabel bestaat.
Indien deze lokatie bestaat dan moet deze desbetreffende record verandert worden via RunSQL.
Ik heb echter problemen om in de WHERE clause specifiek aan te duiden welke record dient verandert te worden (de record waarvan de locatie gelijk is aan hetgeen ingevuld werd in de control op het ingaveformulier).

Hier de code voor de afterupdate event:

Code:
If Not IsNull(DLookup("[Positie]", "tblspecialiteitensub", _
"[Positie] = '" & Me.positie & "'")) Then

Dim LResponse As Integer
Dim mySQL As String

    LResponse = MsgBox("Positie bezet", vbYesNo + vbQuestion, "Haal item uit stock?")

    If LResponse = vbYes Then
mySQL = "Update tblspecialiteitensub"
mySQL = mySQL & " SET tblspcialiteitensub.[Stock Y/N] = No; tblspecialiteitensub.Positie = Null,"
mySQL = mySQL & " tblspecialiteitensub.[Date Modified] = Now()"
mysQL = mySQL & " WHERE Positie = '" & Me.positie & "'"
Docmd.Setwarnings False
Docmd.RunSQL mySQL
Docmd.Setwarnings True
txtpos.setfocus

    Else
    Cancel=True
    txtpos.setfocus
    End If


"Positie" is een string waarde

Bij deze code krijg ik een runtime error 3142

"Characters found after end of SQL statement.
 
Als dit je volledige code is, dan geloof ik wel dat hij het niet doet. Er ontbreekt namelijk een End If.... Als je je code netjes in zou laten springen, dan zie je het in één oogopslag...

Code:
If Not IsNull(DLookup("[Positie]", "tblspecialiteitensub", "[Positie] = '" & Me.positie & "'")) Then
    Dim LResponse As Integer
    Dim mySQL As String
    LResponse = MsgBox("Positie bezet", vbYesNo + vbQuestion, "Haal item uit stock?")
    If LResponse = vbYes Then
        mySQL = "Update tblspecialiteitensub "
        mySQL = mySQL & "SET [Stock Y/N] = 0; Positie = Null, [Date Modified] = Now()"
        mySQL = mySQL & " WHERE Positie = '" & Me.positie & "'"
        DoCmd.SetWarnings False
        DoCmd.RunSQL mySQL
        DoCmd.SetWarnings True
        txtpos.SetFocus
    Else
        Cancel = True
        txtpos.SetFocus
    End If
[B][COLOR="red"]End If[/COLOR][/B]
 
Blijkbaar was dit een onvolledige copy-paste, de laatste "end if" heb ik wel op de werkelijke event dus daar ligt het probleem niet.
 
Ik kan mij nog voorstellen dat de puntkomma een komma moet zijn. Dat kan je ook nog eens proberen. En kijk eens wat er gebeurt als je de SQL afvangt, en rechtstreeks in een nieuwe query plakt.
 
Het zit hem iedere keer in de kleinste details, het werkt nu. Het lag aan die puntkomma. Bedankt om mij erop te wijzen. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan