Avatar billede hinkesten Praktikant
11. marts 2011 - 15:31 Der er 5 kommentarer og
1 løsning

ASP: tillade tomme felter i access ved tilføjelse af data

Hej

Jeg er ved at lave et medlemskartotek i ASP/Access og får flg. fejl når f.eks. e-mail feltet ikke udfyldes.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/login/sites/opret_medarbejder.asp, line 37

Fejlen fremkommer altså ikke når alle felter udfyldes.

Data indhentes vha request.form og tilføjes vha flg. stump kode:

    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
    Conn.Open DSN
   
    strSQL = "Insert into medlemmer ("
   
    strSQL = strSQL & "navn, "
    strSQL = strSQL & "stilling, "
    strSQL = strSQL & "titel, "
    strSQL = strSQL & "uddannet, "
    strSQL = strSQL & "arbejdsopgaver, "
    strSQL = strSQL & "billede, "
    strSQL = strSQL & "mail) "
   
    strSQL = strSQL & "values( "
   
    strSQL = strSQL & "'" & Request.Form("navn") & "',"
    strSQL = strSQL & "'" & Request.Form("stilling") & "',"
    strSQL = strSQL & "'" & Request.Form("titel") & "',"
    strSQL = strSQL & "'" & Request.Form("uddannet") & "',"
    strSQL = strSQL & "'" & Request.Form("arbejdsopgaver") & "',"
    strSQL = strSQL & "'" & Request.Form("billede") & "',"
    strSQL = strSQL & "'" & Request.Form("mail") & "' )"
   
    Conn.Execute(strSQL)
   
    Conn.Close
    Set Conn = Nothing

Hvordan får jeg gjort sådan at det tomme felter tillades?

På forhånd tak
Avatar billede claes57 Ekspert
11. marts 2011 - 15:43 #1
strSQL = "Insert into medlemmer ("
strfelt = ""
if Request.Form("navn") <> "" then strfelt = strfelt & "navn, "
if Request.Form("stilling") <> "" then strfelt = strfelt & "stilling, "
if Request.Form("titel") <> "" then strfelt = strfelt & "titel, "
if Request.Form("uddannet") <> "" then strfelt = strfelt & "uddannet, "
if Request.Form("arbejdsopgaver") <> "" then strfelt = strfelt & "arbejdsopgaver, "
if Request.Form("billede") <> "" then strfelt = strfelt & "billede, "
if Request.Form("mail") <> "" then strfelt = strfelt & "mail, "
' fjern sidste " ,"
strfelt = trim(strfelt)
strfelt = left(strfelt,len(strfelt-1))
strSQL = strSQL & strfelt
strSQL = strSQL & ") values("
strfelt = ""
if Request.Form("navn") <> "" then strfelt = strfelt & "'" & Request.Form("navn") & "',"
if Request.Form("stilling") <> "" then strfelt = strfelt & "'" & Request.Form("stilling") & "',"
if Request.Form("titel") <> "" then strfelt = strfelt & "'" & Request.Form("titel") & "',"
if Request.Form("uddannet") <> "" then strfelt = strfelt & "'" & Request.Form("uddannet") & "',"
if Request.Form("arbejdsopgaver") <> "" then strfelt = strfelt & "'" & Request.Form("arbejdsopgaver") & "',"
if Request.Form("billede") <> "" then strfelt = strfelt & "'" & Request.Form("billede") & "',"
if Request.Form("mail") <> "" then strfelt = strfelt & "'" & Request.Form("mail") & "',"
' fjern sidste ,
strfelt = left(strfelt,len(strfelt-1))
strSQL = strSQL & strfelt & ")"
Conn.Execute(strSQL)
Avatar billede hinkesten Praktikant
12. marts 2011 - 00:30 #2
Jeg får fejl ved ovenstående kode :(

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'strfelt'

/login/sites/opret_medarbejder.asp, line 26

linie 26:

strfelt = left(strfelt,len(strfelt-1))
Avatar billede claes57 Ekspert
12. marts 2011 - 09:29 #3
det er en parentes, der er på den forkerte side af -1
Det skal være
strfelt = left(strfelt,len(strfelt)-1)
linjen er der 2 gange - ret begge
Avatar billede hinkesten Praktikant
12. marts 2011 - 11:19 #4
Genialt! Vil du lave et svar, så jeg kan give dig points? Tusind tak for hjælpen!
Avatar billede claes57 Ekspert
12. marts 2011 - 11:21 #5
bare luk selv...
Avatar billede hinkesten Praktikant
13. marts 2011 - 13:26 #6
løst af claes57 men vil ikke have points
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