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
Annonceindlæg tema
Cloud & AI
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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)
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))
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
12. marts 2011 - 11:19
#4
Genialt! Vil du lave et svar, så jeg kan give dig points? Tusind tak for hjælpen!
12. marts 2011 - 11:21
#5
bare luk selv...
13. marts 2011 - 13:26
#6
løst af claes57 men vil ikke have points
Kurser inden for grundlæggende programmering