Avatar billede kalaharikid Nybegynder
21. juli 2003 - 11:47 Der er 3 kommentarer og
2 løsninger

update og insert virker ikke når checkboks er unchecked ?

Hej, jeg er ved at lægge sidste hånd på et arrangementsopdateringsmodul med access og asp, og har lavet det sådan at brugerne skal "godkende" deres arrangement med en checkboks - Det bliver først vist når der er flueben i - Feltet er et ja/nej felt i access og er ikke sat til at være obligatorisk !

Det er altsammen meget fint og jeg har lavet en if sætning der sætter checkboksen til checked hvis værdien er -1 (access checkboksværdi) - Problemet kommer når jeg prøver at unchecke (deaktivere) en post : så får jeg fejlmeddelelsen :

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.

Jeg har prøvet alt fra at indsætte en standardværdi i access til at bruge et javascript :

<SCRIPT LANGUAGE=javascript>
            function checkMe()
            { if (Form1.godkendt.checked) {
            Form1.godkendt.value = "-1"
            }
            else {
            Form1.godkendt.value = "0" }
            }
            </script>
Men fejlen bliver hængende - er der nogen der har været her før og har svaret så ville det hjælpe mig gevaldigt !

MVH Kalaharikid
Avatar billede medions Nybegynder
21. juli 2003 - 11:53 #1
Prøv at lad mig se din SQL statement!

Fejlen sker højst sandsynlig fordi du prøver at sætte en String værdi ind i et Integerfelt!

//>Rune
Avatar billede kalaharikid Nybegynder
21. juli 2003 - 12:30 #2
Ok, det er en større smøre - Men jeg troede egentlig problemet var nulværdien (ikke checked) som access ikke kan forstå ?

dim intDocumentID, strTitle, strContent, strDocBgColor, strStartD, strSlutD, strStartM, strSlutM, strStartY, strSlutY, strSted, strBem, strArr, strTid, strOpr, strGodkendt, strEmail
intDocumentID = Request.Form("txtDocumentID")
strTitle = Replace(Request.Form("txtTitle"),"'","''")
    strContent = Replace(Request.Form("txtContent"),"'","''")
    strStartD = Request.Form("begdated")
    strSlutD = Request.Form("enddated")
    strStartM = Request.Form("begdatem")
    strSlutM = Request.Form("enddatem")
    strStartY = Request.Form("begdatey")
    strSlutY = Request.Form("enddatey")
    strSted = Replace(Request.Form("sted"),"'","''")
    strBem = Replace(Request.Form("bem"),"'","''")
    strArr = Replace(Request.Form("arr"),"'","''")
    strTid = Request.Form("time") & ":" & Request.Form("minut")
    strOpr = Now ()
    strDocBgColor = Request.Form("txtDocBgColor")
    strGodkendt = Request.Form("godkendt")
    'if Request.Form("email") <> "" then
    strEmail = Replace(Request.Form("email"),"'","''")
    'else
    'strEmail = 0
    'end if
dim adoCn
dim strSQL
set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open MM_connKal_STRING

if Request.QueryString("action") = "save" then
      strSQL = "Update t_arr SET titel='" & strTitle & "',"
      strSQL = strSQL & "beskrivelse='" & strContent & "',"
      strSQL = strSQL & "startdato='" & strStartD & "',"
      strSQL = strSQL & "slutdato='" & strSlutD & "',"
      strSQL = strSQL & "startmaaned='" & strStartM  & "',"
      strSQL = strSQL & "slutmaaned='" & strSlutM & "',"
      strSQL = strSQL & "startaar='" & strStartY & "',"
      strSQL = strSQL & "slutaar='" & strSlutY & "',"
      strSQL = strSQL & "sted='" & strSted & "',"
      strSQL = strSQL & "bemaerkninger='" & strBem & "',"
      strSQL = strSQL & "arrangoer='" & strArr & "',"
      strSQL = strSQL & "tid='" & strTid & "',"
      strSQL = strSQL & "oprettet='" & strOpr & "',"
      strSQL = strSQL & "BgColor='" & strDocBgColor  &  "',"
      strSQL = strSQL & "godkendt='" & strGodkendt &  "',"
      strSQL = strSQL & "email='" & strEmail &  "'" 
      strSQL = strSQL  & " Where Id=" & intDocumentID
adoCn.Execute (strSQL)
'Response.write (strSQL)
Avatar billede medions Nybegynder
21. juli 2003 - 13:50 #3
Prøv lgie sådan her:

if Request.QueryString("action") = "save" then
      strSQL = "Update t_arr SET titel='" & strTitle & "',"
      strSQL = strSQL & "beskrivelse='" & strContent & "',"
      strSQL = strSQL & "startdato='" & strStartD & "',"
      strSQL = strSQL & "slutdato='" & strSlutD & "',"
      strSQL = strSQL & "startmaaned='" & strStartM  & "',"
      strSQL = strSQL & "slutmaaned='" & strSlutM & "',"
      strSQL = strSQL & "startaar='" & strStartY & "',"
      strSQL = strSQL & "slutaar='" & strSlutY & "',"
      strSQL = strSQL & "sted='" & strSted & "',"
      strSQL = strSQL & "bemaerkninger='" & strBem & "',"
      strSQL = strSQL & "arrangoer='" & strArr & "',"
      strSQL = strSQL & "tid='" & strTid & "',"
      strSQL = strSQL & "oprettet='" & strOpr & "',"
      strSQL = strSQL & "BgColor='" & strDocBgColor  &  "',"
      strSQL = strSQL & "godkendt=" & strGodkendt &  ","
      strSQL = strSQL & "email='" & strEmail &  "'" 
      strSQL = strSQL  & " Where Id=" & intDocumentID
adoCn.Execute (strSQL)
'Response.write (strSQL)

//>Rune
Avatar billede zembla Nybegynder
21. juli 2003 - 14:36 #4
Runes ændring af strSQL vil hjælpe dig. Du bør også ændre det sted, hvor du tildeler strGodkendt en værdi. Jeg ville foretrække:

if Request.Form("godkendt") = "-1" then
  strGodkendt = "true"
else
  strGodkendt = "false"
end if

Drop din javascript-funktion :-)

/Zembla
Avatar billede kalaharikid Nybegynder
21. juli 2003 - 20:31 #5
Tak folkens, - Jeg deler pointene mellem jer da begge løsninger (true/false og fjernelse af string '') hjalp !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester