Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Syntaxisfout in de UPDATE instructie met asp

Annie
10 antwoorden
  • Hallo allemaal,

    Kan iemand mij help met het volgende:

    Ik heb een website waar ik een soort online agenda heb waar ik enmijn zangeres de optredens in kunnen zetten en ook weer wijzigen wanneer dat nodig is.

    Nu krijg het wel voor elkaar dat ik een nieuw optreden erin kan zetten, deze wordt dan in een Access database geschreven middels een asp-script.

    Ik wil ook record onlinen kunnen wijzigen. Dit gaat goed tot dat ik de wijzigingen op wil slaan.

    Ik de melding: De instructie UPDATE bevat een syntaxisfout.
    Ik gebruik hiervoor de volgende code:
    —————————————————————————–
    Dim strSQL

    iAfsprID = Request.Form("Afspr_ID")
    iAfsprID = Replace(iAfsprID, "'", "''")


    strSQL = "UPDATE Agenda SET " _
    & "UserID = '" & CStr(Replace(Request.Form("UserID"), "'", "''")) & "', " _
    & "Naamkl = '" & CStr(Replace(Request.Form("Naamkl"), "'", "''")) & "', " _
    & "Adreskl = '" & CStr(Replace(Request.Form("Adreskl"), "'", "''")) & "', " _
    & "Telkl = '" & CStr(Replace(Request.Form("Telkl"), "'", "''")) & "', " _
    & "DatumF = '" & CStr(Replace(Request.Form("DatumF"), "'", "''")) & "', " _
    & "Beg_tijd = '" & CStr(Replace(Request.Form("Beg_tijd"), "'", "''")) & "', " _
    & "Eindtijd = '" & CStr(Replace(Request.Form("Eindtijd"), "'", "''")) & "', " _
    & "Lok_zaal = '" & CStr(Replace(Request.Form("Lok_zaal"), "'", "''")) & "', " _
    & "SrtFeest = '" & CStr(Replace(Request.Form("SrtFeest"), "'", "''")) & "', " _
    & "Opmerking = '" & CStr(Replace(Request.Form("Opmerking"), "'", "''")) & "', " _
    & "WHERE (Afspr_ID = " & iAfsprID & ")"

    Set cnnDBEdit = Server.CreateObject("ADODB.Connection")
    cnnDBEdit.Open "DBQ=" & Server.MapPath("database/Agenda.mdb") & ";" & "Driver={Microsoft Access Driver (*.mdb)};", "", ""

    cnnDBEdit.Execute strSQL, adAffectAll, adCmdText Or dExecuteNoRecords

    rstDBEdit.Update

    cnnDBEdit.Close
    Set cnnDBEdit = Nothing

    Response.Write("<p>Record Id #" & iAfSprID & " updated!</p>")

    ——————————————————————————-

    Heeft iemand enig idee wat er met deze code niet goed is????

    Bijvoorbaat hartelijk dank.

    Groetjes Eric.
  • Haal de komma weg aan het eind van de regel:
    [code:1:28020efd33]
    & "Opmerking = '" & CStr(Replace(Request.Form("Opmerking"), "'", "''")) & "', " _ [/code:1:28020efd33]
    Tip: schrijf samengestelde queries bij het debuggen naar het scherm. Zo zie je wat er werkelijk wordt uitgevoerd op de database en je kan eventueel de query even copy&pasten; in je database om 'm daar zelf uit te voeren.

    Overigens zien deze regels er ook niet helemaal goed uit:
    [code:1:28020efd33]
    cnnDBEdit.Execute strSQL, adAffectAll, adCmdText Or dExecuteNoRecords

    rstDBEdit.Update
    [/code:1:28020efd33]
    Ik neem aan dat de laatste weg kan en in de eerste regel staat een tikfout bij de execute options. Bovendien moeten bij mijn weten de options bij elkaar opgeteld worden (maar ik ben niet zo heel erg thuis in de ADO specs dus kijk dat nog maar eens na in een reference).
  • Hoi Annie,

    Ik heb mezelf rot zitten zoeken naar de fout in de code, en inderdaad, die ene komma zorgde ervoor dat het niet werkte.

    Hartstikke bedankt voor je hulp. ( ik heb er een hele avond op zitten zoeken).

    De type fout heb ik niet kunnen ondekken, wel heb ik cnnDBEdit.Update verwijderd. Deze hoorde daar niet.

    Alles werkt nu goed.

    Nogmaals ontzettend bedankt.

    Groetjes,

    Eric.
  • Het SET enz.. gedeelte eindig je dus nooit met een komma! Volgens mij vergeet je dat nooit meer ;)
    De komma is puur een scheidingsteken dus die hoort ergens [b:5f8efe1664]tussen[/b:5f8efe1664] en dus niet aan het einde :)
  • [quote:cf1729de2d="InZane"]De komma is puur een scheidingsteken dus die hoort ergens [b:cf1729de2d]tussen[/b:cf1729de2d] en dus niet aan het einde :)[/quote:cf1729de2d]
    En dan hoort deze weer niet [b:cf1729de2d]tussen[/b:cf1729de2d] het SET gedeelte en het WHERE gedeelte?
    En als ik meerdere WHERE clauses wil scheiden moet ik dan wel een komma gebruiken?

    Ik snap er niets meer van… ;)
  • Inderdaad, nu snap ik er ook niks meer van.

    Ik wist al niet veel van sql/asp, maar hierdoor wordt het er niet duidelijker op. Maar toch bedankt.

    Eric.
  • [quote:fc50e20199="Annie"][quote:fc50e20199="InZane"]De komma is puur een scheidingsteken dus die hoort ergens [b:fc50e20199]tussen[/b:fc50e20199] en dus niet aan het einde :)[/quote:fc50e20199]
    En dan hoort deze weer niet [b:fc50e20199]tussen[/b:fc50e20199] het SET gedeelte en het WHERE gedeelte?
    En als ik meerdere WHERE clauses wil scheiden moet ik dan wel een komma gebruiken?

    Ik snap er niets meer van… ;)[/quote:fc50e20199]

    UPDATE blaat
    SET
    bla = 1[b:fc50e20199],[/b:fc50e20199]
    blabla = 2[b:fc50e20199],[/b:fc50e20199]
    blablabla = 3
    WHERE (dinges = 'blaat')
    AND (nogeendinges = 'koe')
    OR (enogiets = 'schaap')

    Dat bedoelde ik dus ;)
  • [quote:d72785d6ab="InZane"]Dat bedoelde ik dus ;)[/quote:d72785d6ab]
    I know, i know.. Probeerde alleen een ironische opmerking te maken.

    note-to-self: Humor laat je maar aan clowns over.
  • [quote:523720cd27="Annie"][quote:523720cd27="InZane"]Dat bedoelde ik dus ;)[/quote:523720cd27]
    I know, i know.. Probeerde alleen een ironische opmerking te maken.

    note-to-self: Humor laat je maar aan clowns over.[/quote:523720cd27]

    ik dacht laat ik je ff helpen met een mooie query :wink:
  • Jullie kibbelen maar lekker door, maar ik ben in ieder geval goed geholpen.

    Ik vindt het geweldig.

    Ik mag jullie wel.

    Eric.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.