Avatar billede gundaris Nybegynder
23. april 2004 - 14:56 Der er 2 kommentarer og
1 løsning

Tom dato til access db

Hej

Jeg har en form, hvor der udfyldes nogle tekst felter, samt 3 dato felter.
Alt fungere fint hvis dato felterne er udfyldt. Hvis dato felterne ikke er udfyldt virker det ikke. Dato felterne i DB er ikke obligatoriske. DB er access2000. Jeg sletter IE cache for hver ændring jeg laver.

Nedenfor er den kode, der validere, min form og skal lave Insert i db.

Venligst
Gunnar


<% response.buffer = true
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../Amtspatient.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN

'Dato formatering:
Function FormatDato(theDate)
    FormatDato = month(thedate) & "-" & day(thedate) & "-" & year(thedate)
End Function

DIM afvistdato, hdato, tilbdato

IF request.form("henvisdato") = "" THEN
    hdato = Null
Else
    hdato = request.form("henvisdato")
    hdato = FormatDato(hdato)   
End if

IF request.form("afvist") = "" THEN
    afvistdato = Null
Else
    afvistdato = request.form("afvist")
    afvistdato = FormatDato(afvistdato)
End if

IF request.form("tilbagetrukket") = "" THEN
    tilbdato = Null
Else
    tilbdato = request.form("tilbagetrukket")
    tilbdato = FormatDato(tilbdato)
END IF


sql = "Insert Into patient(CPR, Fornavn, Efternavn, AMT, Andet, Speciale, Diagnose, Henvisdato, Afvist, Tilbagetrukket) Values ('"
sql = Sql & request.form("CPR") & "','"
sql = sql & request.form("Fornavn") & "','"
sql = sql & request.form("Efternavn") & "','"
sql = sql & request.form("AMT") & "','"
sql = sql & request.form("Andet") & "','"
sql = sql & request.form("Speciale") & "','"
sql = sql & request.form("Diagnose") & "','"
sql = sql & hdato & "','"
sql = sql & afvistdato & "','"
sql = sql & tilbdato & "')"
Set rs = Conn.Execute (sql)
Conn.Close
response.redirect ("admin.asp")

%>
Avatar billede keysersoze Guru
23. april 2004 - 15:09 #1
kommer der evt en fejlmeddelelse? Hvis ikke så gør følgende;

Funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"

Grunden til fejl kan være - alt afhængig af feltype - , at der foruden at være afkrydset som ikke obligatoriske måske også skal være "tilladnullænge" = ja
Avatar billede gundaris Nybegynder
23. april 2004 - 17:02 #2
Den kommer med:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

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

/Amtspatient/admin/opret2.asp, line 48

Linie 48: Set rs = Conn.Execute (sql)

sql strengen:

Insert Into patient(CPR, Fornavn, Efternavn, AMT, Andet, Speciale, Diagnose, Henvisdato, Afvist, Tilbagetrukket) Values ('112233-4455','_AAAA','BBCCDDEE','Bornholms Amt','Andet','Speciale','Diagnose','4-1-2004','4-2-2004','Null')

Jeg har sat '' rundt om NULL

Jeg kan ikke sætte "tilladnullænge" = ja i dato feltet.
Avatar billede eagleeye Praktikant
23. april 2004 - 17:34 #3
Når du ligger Null i skal der ikke ' omkring. Eller ligger den strengen/teksten "Null" i kolonnen og det vil fejl.
Så undgår ' omkring Null

Det kan undgåes et par steder i din kode enten ved if sætningen den tilføjer ' omrking datoen eller tilføje en ny if sætning som tjekker på om datoen er null.


eks:

IF request.form("henvisdato") = "" THEN
    hdato = Null
Else
    hdato = request.form("henvisdato")
    hdato = "'" & FormatDato(hdato) & "'"
End if

Så skal SQL sætningen så rettes, til ikke at havde ' omkring:
sql = "Insert Into patient(CPR, Fornavn, Efternavn, AMT, Andet, Speciale, Diagnose, Henvisdato, Afvist, Tilbagetrukket) Values ('"
sql = Sql & request.form("CPR") & "','"
sql = sql & request.form("Fornavn") & "','"
sql = sql & request.form("Efternavn") & "','"
sql = sql & request.form("AMT") & "','"
sql = sql & request.form("Andet") & "','"
sql = sql & request.form("Speciale") & "','"
sql = sql & request.form("Diagnose") & "', "
sql = sql & hdato & ","
sql = sql & afvistdato & ","
sql = sql & tilbdato & ")"
Set rs = Conn.Execute (sql)
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