Avatar billede troelsm Nybegynder
12. juli 2002 - 19:57 Der er 4 kommentarer og
1 løsning

Null værdi indsættes i dato felt i access database - hvordan

Hejsa
hvordan indsættes en Null værdi i et Dato/Tid felt i access i en sql insert into

SQLstmt = "INSERT INTO Hovedtabel (DatoTom,) VALUES ('" & tom_dato & "')"
Conn.Execute (SQLstmt)

hvor variabel tom_dato faktisk er tom :-)
Avatar billede eagleeye Praktikant
12. juli 2002 - 20:09 #1
Du udelader bare dato feltet fra din SQL, så bliver dato feltet tomt i database.
Avatar billede troelsm Nybegynder
12. juli 2002 - 20:51 #2
Ja men nu har jeg 5 dato felter som enten kan være tomme eller ikke !
Så jeg skal lave 5x4x3x2x1 forskellige SQL sætninger.

Nej det må da kunne lade sig gøre som fx. med tal felter hvor man kan indsætte Null så er feltet tomt
Avatar billede eagleeye Praktikant
13. juli 2002 - 10:28 #3
Man kan ikke bruge NULL eller "" til et datofelt så kommd der en fejl, man er nød til at udelade Dato feltet fra SQL-sætningen.

Du kan lave det med 5 if sætninger som så bygger SQL-sætningen op i nogle strenge:

kolDato = ""
dataDato = ""

dato1 = request.form("dato1")
dato2 = request.form("dato2")
dato3 = request.form("dato3")
dato4 = request.form("dato4")
dato5 = request.form("dato5")

if dato1 <> "" then
  kolDato = kolDato & ", datoFelt1"
  dataDato = dataDato & ", #" & dato1 & "#"
end if
if dato2 <> "" then
  kolDato = kolDato & ", datoFelt2"
  dataDato = dataDato & ", #" & dato2 & "#"
end if
..
..
if dato5 <> "" then
  kolDato = kolDato & ", datoFelt5"
  dataDato = dataDato & ", #" & dato5 & "#"
end if

'Lav SQL sætning her:
SQLstmt = "INSERT INTO tabel (kolonne" & kolDato & ") VALUES ('data til kolonne'" & dataDato & ")"

Conn.execute (SQLstmt)
Avatar billede troelsm Nybegynder
13. juli 2002 - 12:02 #4
(Jeg regnede det selv ud - men lave et svar så for du point for din løsning som givetvis vil virke med jeg har lavet det således.
Jo det kan man faktisk godt - se her

Først samles det som man indtaster (jeg har valgt at man indtaster dato i 3 felter - chkstgring søger for at 1 bliver til 01 osv)

' Henter og formatere indtastning
ny_ddborn  = ChkString(Request("ddborn"),"dato")
ny_mmborn  = ChkString(Request("mmborn"),"dato")
ny_aaborn  = ChkString(Request("aaborn"),"dato")
' samler indtastning
ny_born    = ny_ddborn & "-" & ny_mmborn & "-" & ny_aaborn
' Checker for om indtastning er valid
if IsDate(ny_born) then
  ny_born = "'" & ny_born & "'"
else
ny_born = "Null"           
end if

Læg mærker til at hvis det er en valid dato sætter jeg '' om variabel ellers sættes den til Null

Nu kan man
SQLstmt = "INSERT INTO Hovedtabel (DatoTom,) VALUES (" & ny_born & ")"
Conn.Execute (SQLstmt)

uden at få en fejl for Null skal indsættes uden '' mens dato skal indsættes med ''.
Avatar billede eagleeye Praktikant
13. juli 2002 - 12:07 #5
Ok så lærte jeg også noget :)
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