---
title: "Får man inte skicka en tom sträng till ett datumfält i access 2002?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/86776-får-man-inte-skicka-en-tom-sträng-till-ett-datumfält-i-access-2002"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "mattiasnordin"
published: "2003-09-23T13:51:24.000Z"
updated: "2003-10-17T11:52:35.000Z"
replies: 13
views: 305
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/86776-får-man-inte-skicka-en-tom-sträng-till-ett-datumfält-i-access-2002"
---

# Får man inte skicka en tom sträng till ett datumfält i access 2002?

## #1 — mattiasnordin, 2003-09-23T13:51Z

När variabeln fix_date är tom så fungerar inte frågan. Kan jag ställa in databasen (access 2002) så att den accepterar att fältet är tomt? Får man inte skicka med en tom variabel till ett fält som är i datumformat? 
Obs! Fältet är inte satt som recuired i databasen.

Så fort variabeln fix_date innehåller ett datum så fungerar frågan.

??? ¿¿¿

```

Query = "INSERT INTO T_system_status "
	Query = Query & "(Status, reported_date, host_info, system_error, fix_date, error_location, sysadmin) VALUES "
	Query = Query & "('" &sform_status &"','" &sform_reported_date &"','" &sform_host_info &"','" &sform_system_error &"','" &sform_fix_date &"','" &sform_error_location &"','" &sform_sysadmin  &"')"
 Response.Write (Query)
Connect.Execute( Query )

INSERT INTO T_system_status (Status, reported_date, host_info, system_error, fix_date, error_location, sysadmin) VALUES ('1','2003-09-23 15:46','192.9.201.217','lll','','lll','lll') 
Microsoft JET Database Engine error '80040e07' 

Data type mismatch in criteria expression. 

/script_system_status/button_redirect.asp, line 37
```

Permalänk: https://www.webforum.nu/p/86776

## #2 — @nders, 2003-09-23T13:54Z

Nej, du får inte skicka en tom sträng ('') om datatypen är datum. Antingen får du strunta i att ha med fältet i din fråga, eller använd värdet **null**.

Mvh

Permalänk: https://www.webforum.nu/p/1164869

## #3 — mattiasnordin, 2003-09-23T13:59Z

Nu lärde jag mig något nytt.!

Hur använder jag mig av null? 
Provade

```
if sform_fix_date = "" then
sform_fix_date = null
end if
```

men det gav samma fel.

Permalänk: https://www.webforum.nu/p/1164875

## #4 — @nders, 2003-09-23T14:00Z

Du får inte ha apostrofer runt null, då tolkas det som en vanlig sträng med ordet null. Utan apostrofer blir det värdet null.

Mvh

Permalänk: https://www.webforum.nu/p/1164876

## #5 — @nders, 2003-09-23T14:01Z

Annars kan du ju ha ett fiktivt datum istället;

```
if sform_fix_date = "" then
sform_fix_date = #1970-01-01#
end if
```

Mvh

Permalänk: https://www.webforum.nu/p/1164878

## #6 — mattiasnordin, 2003-09-23T14:10Z

Det fungerar inte något bra att använda ett datum för jag använder en annan funktion där jag sorterar allt som har fix_date. Visserligen kan jag få den att ignorera detta datum. 
Varför fungerade inte null enligt mitt exempel ovan? Jag använde inte några apostrofer. Eller menar du i sql frågan?

Permalänk: https://www.webforum.nu/p/1164885

## #7 — mattiasnordin, 2003-09-23T14:14Z

Jag fixade en workaround med att ge ett speciellt datum i det fall där jag  ville att tabellen skulle vara null. Det fungerar bra.

Tack...

Permalänk: https://www.webforum.nu/p/1164890

## #8 — @nders, 2003-09-23T14:16Z

> Varför fungerade inte null enligt mitt exempel ovan? Jag använde inte några apostrofer. Eller menar du i sql frågan?

Det blev väl det till slut i SQL-frågan? Det är där det är intressant hur det ser ut.

Bra att det löste sig.

Mvh

Permalänk: https://www.webforum.nu/p/1164892

## #9 — Engine^, 2003-09-23T14:45Z

Det kanske kan fungera med hjälp av IIf() istället för din workaround?

```
Query = "INSERT INTO T_system_status " & _
        "(Status, reported_date, host_info, system_error, fix_date, error_location, sysadmin) " & _
        "VALUES ('" & sform_status & "','" & sform_reported_date & "','" & sform_host_info & "','" & _
        sform_system_error & "', IIf('" & sform_fix_date & "' = '', NULL, '" & sform_fix_date & "'),'" & _
        sform_error_location & "','" & sform_sysadmin  & "')"
```

Permalänk: https://www.webforum.nu/p/1164912

## #10 — Wickmark, 2003-09-24T17:11Z

Hmm, man kan **visst** använda tomma strängar i access! När du redigerar din databastabell, i design, kan du välja om access ska acceptera tomma strängar!  :e

Permalänk: https://www.webforum.nu/p/1165769

## #11 — mattiasnordin, 2003-10-17T10:26Z

Nu bubblar min fråga upp igen. Denna gången måste jag komma förbi detta. 

I en update fråga är det ju enkelt att modifiera frågan men hur gör jag med en insertfråga?

UPDATE:

```
	Query = "UPDATE T_order_n_tracking SET "
	Query = Query & " orderreferens = '" &sOrderreferens &"'"
	Query = Query & ", ordernummer = '" &sOrdernummer  &"'"
	Query = Query & ", kundnamn = '" &sKundnamn  &"'"
	Query = Query & ", produkt = '" &sProdukt  &"'"
	if levdatum <> "" then
	Query = Query & ", levdatum = '" &sLeveransdatum  &"'"
	end if
	Query = Query & ", orderdatum = '" &sOrderdatum  &"'"
	Query = Query & ", transportreferens = '" &sTransportreferens  &"'"
	Query = Query & ", post_skapad_av = '" &sCreatedBy &"'"
	Query = Query & ", post_editerad_datum = '" &now() &"'"
	Query = Query & " WHERE ID = " &varSelectedId  &""
```

INSERT: 

```
??
```

Det känns ju jätteknöligt att man inte får låta ett datumfält vara tomt. Grrrr....

PS Engine^, jag får inte ditt exempel att fungera DS

Permalänk: https://www.webforum.nu/p/1188689

## #12 — @nders, 2003-10-17T10:33Z

Först och främst:

> **Wickmark skrev:**
>
> Hmm, man kan **visst** använda tomma strängar i access! När du redigerar din databastabell, i design, kan du välja om access ska acceptera tomma strängar!  :e

Nej, inte i datumfält. Datumfält innehåller antingen ett giltigt datum eller null. Inget annat.

\- - - - - -

Något sånt här?

```
strSQL = "INSERT INTO tabellen (fält1, fält2"
if variabel <> "" then strSQL = strSQL & ", fält3"
strSQL = strSQL & ") VALUES ('värde1, 'värde2'"
if variabel <> "" then strSQL = strSQL & ", 'värde3'"
strSQL = strSQL & ") "
```

Permalänk: https://www.webforum.nu/p/1188692

## #13 — @nders, 2003-10-17T10:36Z

Ett annat alternativ är att inkludera funktionen IIF i sin ASP-sida. Att den funktionen inte ingår i VBScript är ett mysterium. 

```
Function Iif(condition, truecase, falsecase)
     if (condition) then
           Iif = truecase
     else
           Iif = falsecase
     end if
End function
```

Sedan:

```
strSQL = "INSERT INTO tabellen (fält1, fält2, fält3) VALUES ('värde1', 'värde2', " & Iif (variabel <> "", "'" & variabel & "'", "NULL") &")"
```

mvh

Permalänk: https://www.webforum.nu/p/1188695

## #14 — mattiasnordin, 2003-10-17T11:52Z

Tack @nders. Du fick in mig på rätt spår. Iif förstod jag inte riktigt så jag körde den klassiska lösningen istället.

```
<% sub subAddDataIntoDatabase() 
 ' Lägg till i databasen '
	Query = "INSERT INTO T_order_n_tracking "
	Query = Query & "(orderreferens, ordernummer, kundnamn, produkt, "
		if sLeveransdatum <> "" then 
		Query = Query & " levdatum, "
		end if
	Query = Query & " orderdatum, transportreferens, post_skapad_av, post_skapad_datum) VALUES "
	Query = Query & "('" &sOrderreferens 
	Query = Query &"','" &sOrdernummer 
	Query = Query &"','" &sKundnamn
	Query = Query &"','" &sProdukt
		if sLeveransdatum <> "" then 
		Query = Query &"','" &sLeveransdatum
		end if
	Query = Query &"','" &sOrderdatum
	Query = Query &"','" &sTransportreferens
	Query = Query &"','" &sCreatedBy
	Query = Query &"','" &now()
	Query = Query & "')"
	'response.write Query
	connect.execute(Query)  
	response.redirect("show_order.asp")
end sub %>
	
<% sub subUpdateDataInDatabase(num) 
 	' Updatera databasen '
	varSelectedId = num
	Query = "UPDATE T_order_n_tracking SET "
	Query = Query & " orderreferens = '" &sOrderreferens &"'"
	Query = Query & ", ordernummer = '" &sOrdernummer  &"'"
	Query = Query & ", kundnamn = '" &sKundnamn  &"'"
	Query = Query & ", produkt = '" &sProdukt  &"'"
	if sLeveransdatum <> "" then
	Query = Query & ", levdatum = '" &sLeveransdatum  &"'"
	end if
	Query = Query & ", orderdatum = '" &sOrderdatum  &"'"
	Query = Query & ", transportreferens = '" &sTransportreferens  &"'"
	Query = Query & ", post_skapad_av = '" &sCreatedBy &"'"
	Query = Query & ", post_editerad_datum = '" &now() &"'"
	Query = Query & " WHERE ID = " &varSelectedId  &""
	'response.write Query
	connect.execute(Query)  
	%>
```

Permalänk: https://www.webforum.nu/p/1188757

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/86776-får-man-inte-skicka-en-tom-sträng-till-ett-datumfält-i-access-2002
