29. marts 2005 - 12:16Der er
28 kommentarer og 1 løsning
Data type mismatch in criteria expression
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression
er fejlen og jeg får den rimelig tit når jeg enten anvender min update sql sætning eller insert into.
Jeg ved godt det betyder noget med at den data jeg prøver at sætte ind ikke passer. men det forstår jeg ikke for nogen gang behøver jeg bare forsøge mig et par gange så virker det.
Det eneste som ikke er af typen text i databasen er
beskrivelse - Den er af typen Memo placering - Den er number (tænker allerede DOH! der er "" rundt om den) kommentare - er af typen Memo storrelse - er af typen number (DOH)
datoet datoto betalingsdato
er alle date/time ... skal man gøre noget specielt med dem?
kan en af jer lave sql sætningen? så dato og nummer formatterne passer? det ikke fordi jeg ikke gider men så ved jeg det virker og så kan jeg selv rette mine andre scripts
cvr nummer skal være tekst (også i databasen) mobil/tlf kan tal eller tekst (jeg bruger altid tekst da man så kan bruge mellemrum samt +45 ) postnr skal være tal, medmindre du skal bruge udenlanske postnumre også, så skal den være tekst.
prøver lige rettelserne. Kan man under alleomstændigheder ikke får den til at skrive hvad den forventer i de pågælgende felt istedet for den der grimme fejl? Det er lidt uprofessionelt
Du kan ikke få den til at sige hvilke felter der er forkerte.... Husk at det ikke er hvad der indtastes, der afgører om der skal ' # eller intet omkring. Det bestemmes KUN af den datatype du har valgt til feltet i databasen.
Det er desuden god programering at tjekke alle data inden man indsætter, også give bruger besked hvis der mangler info eller formater er forkert, men det skal du selv gøre...
jeg tror det er dato'erne der brokker sig. Har haft en del problemer med dem i andre spørgsmål. Hvordan skal de sættes ind korrekt? felterne er af typen date/time lige nu sættes det ind som tekst for har "" rundt om.
Jeg bruger altid # omkring datoer når det er Access. Samtidig skal formatet være mm-dd-yyyy som jeg også har skrevet tidligere. Du kan måske bruge denne funktion til at omformatere dine datoer:
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear End Function
sql = "insert into tabel(enDato) values(#"& ConvertToSqlDate(request.form("dato")) &"#)"
det vil ikke skade? for er bange for den begynder at kludre mellem dansk/engelsk dato har haft lidt problemer med dato formattet så er blevet lidt træt af det
Funktionen kræver at brugeren indtaster i det format (LCID) som ASP bruger. Så hvis indtastningen skal være dd-mm-yyyy (DK format), skal du have sat den rigtige LCID som er 1030. Kan godt være standart værdi på serveren, men ellers kan du override det med:
Det ser ud til at virke ellers vender jeg bare tilbage:)
Synes godt om
Ny brugerNybegynder
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.