Avatar billede want2learn Nybegynder
09. april 2006 - 00:07 Der er 10 kommentarer og
1 løsning

opret fejl til database

Jeg får denne fejl:
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/opret.asp, line 99

Linje 99 = objConn.Execute(strSQL)

kode er:
strSQL = "INSERT INTO funktion (BIFfunktion, BIFnavn, BIFtype, BIFnummer, BIFtelefon, BIFmobil, BIFemail1, BIFemail2, BIFimage) VALUES ('" & TheFunk & "', '" & TheName & "', '" & TheStatus & "', '" & TheNumber & "', '" & ThePhone & "', '" & TheMobile & "', '" & TheFirstMail & "', '" & TheSecondMail & "', '" & TheNewImage & "')"
objConn.Execute(strSQL)


hvad kan fejlen skyldes !?
Avatar billede eagleeye Praktikant
09. april 2006 - 00:14 #1
Er der nolge af dem som er tal kolonner skal der ikke ' omkring i value delen.

Eksempel, hvis kolonnen BIFnummer er defineret som tal skal der ikke ' omkring: '" & TheNumber & "',

Så skal det være:  " & TheNumber & ",
Avatar billede want2learn Nybegynder
09. april 2006 - 10:12 #2
hvis jeg gør det og så har dette:

strSQL = "INSERT INTO funktion (BIFfunktion, BIFnavn, BIFtype, BIFnummer, BIFtelefon, BIFmobil, BIFemail1, BIFemail2, BIFimage) VALUES ('" & TheFunk & "', '" & TheName & "', '" & TheStatus & "', " & TheNumber & ", '" & ThePhone & "', '" & TheMobile & "', '" & TheFirstMail & "', '" & TheSecondMail & "', '" & TheNewImage & "')"
objConn.Execute(strSQL)


så får jeg denne fejl:
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/update.asp, line 99
Avatar billede eagleeye Praktikant
09. april 2006 - 10:18 #3
Det kan være pga. der mangler kommamen det ser ikke sådan ud. det kan også være et problem med '. Kan teksten der indsættes indeholde ' ?
Kan TjheNumber være tom?


Men ved syntax fejl er det tit lettere at se hvis man prøve at udskrive strSQL for at se hvad den prøver at udføre:

strSQL = "INSERT INTO funktion (BIFfunktion, BIFnavn, BIFtype, BIFnummer, BIFtelefon, BIFmobil, BIFemail1, BIFemail2, BIFimage) VALUES ('" & TheFunk & "', '" & TheName & "', '" & TheStatus & "', " & TheNumber & ", '" & ThePhone & "', '" & TheMobile & "', '" & TheFirstMail & "', '" & TheSecondMail & "', '" & TheNewImage & "')"

response.write strSQL
response.end 'stopper koden her for ta undgå fejlen,fjernes igen
objConn.Execute(strSQL)
Avatar billede eagleeye Praktikant
09. april 2006 - 10:44 #4
Du kan evt. prøve at kopier det den udskriver ind her?
Avatar billede want2learn Nybegynder
09. april 2006 - 10:47 #5
INSERT INTO funktion (BIFfunktion, BIFnavn, BIFtype, BIFnummer, BIFtelefon, BIFmobil, BIFemail1, BIFemail2, BIFimage) VALUES ('tester', 'hans jørgen', 'BES', , '75757575', '22222222', 'test@tester.dk', '', 'nopicture.gif')
Avatar billede eagleeye Praktikant
09. april 2006 - 10:51 #6
Ok så vidt jeg kan se så er TheNumber tom da der ikke stå et tal hvor TheNumber bliver indsat der er to kommaer efter hinanden:

'BES', , '75757575'


Skal det være nuligt at TheNuber er tom?
For så skal man sætte den til Null:    TheNumber = Null

Hvis den altid skal være tom fra start kan du sætte kolonnen til default at få værdien og at kolonnen ikke er obligatorisk i Access og så ude lade kolonne BIFnummer fra SQL sætningen.
Avatar billede want2learn Nybegynder
09. april 2006 - 11:20 #7
TheNumber vil af og til være tomt men men for det meste vil der komme til at stå et nr. i den men kan evt bare lave værdien til 50 da der ikke er andre tal som komme op i den str.
Avatar billede eagleeye Praktikant
09. april 2006 - 11:23 #8
ok, du kan tilføje en if sætning som sikre TheNumber får en værdi hvis den er tom, den skal naturligvis ind før du bygger strSQL :)


if TheNumber = "" then TheNumber = Null  'eller 50 kan også bruges



Så kan du prøve at fjerne de to linier som udskriver strSQL og prøve at udføre SQL sætningen igen.
Avatar billede eagleeye Praktikant
09. april 2006 - 11:38 #9
hmm der skal nok lige " omkring ordet Null i den if sætning da det er ordet Null som skal ind i SQL sætningen :)


if TheNumber = "" then TheNumber = "Null"  'eller 50 kan også bruges
Avatar billede want2learn Nybegynder
09. april 2006 - 12:09 #10
vil du lægge et svar.
Avatar billede eagleeye Praktikant
09. april 2006 - 12:11 #11
Ja det vil jeg da gerne :)
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