Avatar billede svinget Praktikant
10. august 2005 - 07:42 Der er 16 kommentarer og
2 løsninger

Kan ikke gemme tomt dato felt i access

Hej

Jeg har en form hvori jeg indtaster et dato felt. Feltet i databasen er også et dato felt, og der er ingen problmer hvis jeg har en dato i feltet når jeg gemmer, men hvis feltet er tomt får jeg en fejl:
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

Er der en måde man kan jeg undgå denne fejl - feltet i databasen er ikke required.

/Svinget
Avatar billede busschou Praktikant
10. august 2005 - 07:45 #1
Hvis det er tomt skal du indsætte Null i stedet
Altså
Insert into tabel (navn, dato) values ('ib', Null)
Avatar billede svinget Praktikant
10. august 2005 - 08:10 #2
Hvordan kan jeg overføre den værdi fra en form - Der er jo nogle gang en værdi
Avatar billede busschou Praktikant
10. august 2005 - 08:12 #3
du kan have det sådan her
---
dato = "Null"
if request.form("dato") <> "" then
  dato = "#"&request.form("dato")&"#"
end if
sql = "Insert into tabel (navn, dato) values ('ib', "&dato&")"
---
Jeg er 99% sikker på det er null du skal bruge men test det lige :o)
Avatar billede softspot Forsker
10. august 2005 - 08:48 #4
Feltet i databasen skal så naturligvis tillade null-værdier :)
Avatar billede svinget Praktikant
11. august 2005 - 15:34 #5
Det er en update jeg laver, men den godtager ikke: fodselsdato='null'
Avatar billede softspot Forsker
11. august 2005 - 15:37 #6
Nu kender jeg ikke forudsætninger for databasedesignet, men det lyder for mig som om du har et valg du skal gøre - enten tillade null i DB eller finde en standardværdi som du kan indsætte. For mig lyder det mest logisk at tillade null-værdien, men mindre det er en nøgleinformation - i så fald skal brugeren gud hjælpe mig oplyse en fødselsdato!!! :D
Avatar billede svinget Praktikant
11. august 2005 - 20:49 #7
Feltet kan jeg godt efterlade tomt i databasen hvis jeg opretter en entry direkte i database tabellen, men ikke når jeg gør det fra web siden.
Avatar billede softspot Forsker
12. august 2005 - 00:30 #8
Bare lige for at være sikker på at det er blevet vendt, så er du opmærksom på at der er forskel på om et felt kan være tomt og null, ikk'?
Avatar billede busschou Praktikant
12. august 2005 - 01:51 #9
nu har jeg aldrig prøvet at lave tomme datoer, men kan den give fejl på følgende
Insert into tabel (dato) values (##)
Jeg mener, hvis datoen er tom om der så til trods for det er en dato alligevel skal anvendes '' , altså
Insert into tabel (dato) values ('')
Jeg er i tvivl, for har det altid selv så det bliver null
Avatar billede svinget Praktikant
12. august 2005 - 10:18 #10
Hvor kan jeg sætte databasen op til at acceptere Null værdier?
Avatar billede svinget Praktikant
12. august 2005 - 10:25 #11
## og '' virker ikke
Avatar billede busschou Praktikant
12. august 2005 - 10:29 #12
Jeg ved ikke hvordan du gør det direkte fra asp
For det bliver noget med ALTER TABLE et og andet som jeg ikke er ind i
Men i access kan du åbne tabellen i design visning og markere dit dato felt
Dernede hvor du også kan vælge dato formatet kan du også vælge om der skal tillades null værdier
Avatar billede softspot Forsker
12. august 2005 - 10:47 #13
Hvis du ikke har mulighed for at åbne databasen direkte i Access, så kan du givetvis benytte dig af ADOX via ASP for at ændre på databaselayoutet, herunder egenskaber som nullable osv. Jeg viste på et tidligere tidspunkt herinde hvor jeg benyttede ADOX til at finde beskrivelsen... kan bare ikke huske hvor det er (og jeg har endnu ikke set lyset i ekspertens søgemaskine) :|
Avatar billede softspot Forsker
12. august 2005 - 12:17 #14
Prøv at køre denne kode op mod din egen database:

<%@ language="vbscript" %>
<%
set cat = server.CreateObject("ADOX.Catalog")
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databasen.mdb") & ";Persist Security Info=False"
for each tbl in cat.Tables
    Response.Write(tbl.Name & "<br>")
    for each col in tbl.Columns
        Response.Write("&nbsp;&nbsp;&nbsp;" & col.Name & "<br>")
        for each prop in col.Properties
            Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & prop.Name & "=" & prop.value & "<br>")
        next
    next
next
%>


Se i øvrigt på dette link for at finde ud af hvilke "håndtag" der er at rive i ifht. tabeller, kolonner, indeks osv. ifht. databaser:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k/html/adoproperties.asp
Avatar billede svinget Praktikant
12. august 2005 - 15:24 #15
Jeg har adgang til databasen, men jeg kan ikke se nogen steder under "design" i tabellen hvor jeg kan tillade Null værdier. Nå, men Jeg sætter så bare en default dato ind.

Tak for hjælpen alligevel - poster i et svar?
Avatar billede softspot Forsker
12. august 2005 - 15:26 #16
Hmm... feltet hedder "Required" i den engelske version af Access...
Avatar billede busschou Praktikant
12. august 2005 - 15:30 #17
her er et svar fra mig.. håber du får det til at virke :o)
Avatar billede svinget Praktikant
13. august 2005 - 09:36 #18
Reguired er sat til NO. Pyt - tak for hjælpen alligevel.
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