webForumDet fria alternativet

skicka null date i access

12 svar · 514 visningar · startad av oola

oolaMedlem sedan feb. 2004123 inlägg
#1

Hej hej!

Har ett problem.

Jag har en databastabell med två date-värden.

Data skickas till databasen via ett webformulär.

Om användaren vill ska hon inte behöva fylla i några datum utan kan då istället kryssa i en ruta med rubriken "inget datum".

om den ruta är ikryssad vill jag skicka något som sätter date till ingenting, till null, men det går inte!

exempel:

såhär ser det ut om "inget-datum-rutan" INTE är ikryssad

Se_Intro=request.querystring("Intro_Start_Year")&"-"&request.querystring("Intro_Start_Month")&"-"&request.querystring("Intro_Start_Day")

om rutan är ikryssad vill jag istället ge variabeln Se_Intro ett tomt värde, jag har försökt med dessa två:

Se_Intro = null
Se_Intro = ""

Hur ska jag skriva för att kunna skicka ingenting?

m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Det är bara att ange i Access-databasen att kolumnen Se_Intro får vara tom. :) Gå in i designvyn för din tabell och kolla egenskaperna för kolumnen Se_Intro så ser du.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Lägg till brädgårdarna runt datumet i variabeln:

Se_Intro="#" & request.querystring("Intro_Start_Year")&"-"&request.querystring("Intro_Start_Month")&"-"&request.querystring("Intro_Start_Day") & "#"

Sedan kan du om "inget datum" är ikryssat, skapa en sträng med texten null:

Se_Intro = "null"

Sedan, i SQL-frågan, utelämna brädgårdarna runt datumet, eftersom de kommer i strängen, annars kommer null.

Det är bara att ange...

Nej, inte bara. Man måste ju fortfarande följa SQL-syntax. :)

mvh

oolaMedlem sedan feb. 2004123 inlägg
#4

@nders skrev:

Lägg till brädgårdarna runt datumet i variabeln:/citat]

Hmm...brädgårdar? Det har jag aldrig använt mig av?

Jaja, det löste iaf inte problemet, får fortfarande:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
save.asp, line 350

@ndersMedlem sedan juni 200032 969 inlägg
#5

Lagrar du inte datumet i ett fält av typen datum?

oolaMedlem sedan feb. 2004123 inlägg
#6

Jupp. Men har alltid gått bra att skicka in datum i form av strängar som ser ut såhär: "2005-01-21".

Men det kanske är fel sätt att göra det på?

@ndersMedlem sedan juni 200032 969 inlägg
#7

Hmm. Har du inte ens apostrofer runt? Lagras verkligen datumen korrekt då?

Hur såg din ursprungliga SQL-fråga ut?

- - -
Det är egentligen Access som är fånig (imho) och vill ha brädgårdar runt värden om fälten är av datumtyp, standard är apostrofer.

oolaMedlem sedan feb. 2004123 inlägg
#8

Först gör jag:

startdate=request-querystring("year")&"-"request-querystring("month")&"-"request-querystring("day")

sen ser sql:en ut såhär:

INSERT INTO tabell (startdate) VALUES ('"&Se_OutroPlan&"')

apostrofer används alltså...

oolaMedlem sedan feb. 2004123 inlägg
#9

request.(PUNKT)querystring är det såklart...

oolaMedlem sedan feb. 2004123 inlägg
#10

hah, och istället för Se_OutroPlan är det såklart startdate...

sorry, är trött :)

@ndersMedlem sedan juni 200032 969 inlägg
#11

Inte för jag ser var du skapar se_outroplan, men ta bort brädgårdarna då...

Då borde det ju räcka bara med strängen null (men inga apostrofer runt!).

Du får också gärna redigera felaktiga inlägg istället för att posta nya. :)

mvh

oolaMedlem sedan feb. 2004123 inlägg
#12

det jag gör sen när användaren kryssat i att inget datum ska anges är att försöka sätta variabeln startdate till ingenting...

startdate=null funkar inte och inte heller startdate=""

oolaMedlem sedan feb. 2004123 inlägg
#13

@nders skrev:

Då borde det ju räcka bara med strängen null (men inga apostrofer runt!).

aaah...nu kom jag på det. i sql-frågan är det ju apostrofer som måste bort. ok, tack för hjälpen!

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)