Avatar billede sorenstrom Nybegynder
04. marts 2003 - 09:55 Der er 22 kommentarer og
1 løsning

Problemer med at vælge datoer

I en Access-database har jeg nogle registreringer, hvor der indgår dato. Feltet er formateret som et datofelt.
I VB vil jeg nu gerne, via en grid kunne vælge de registreringer, der ligger mellem 2 datoer.

Selv når jeg vælger 1 dato, så er min grid tom.
Jeg har forsøgt følgende:

StartDato = Date
Data2.recordSource = "select * from qryisagMD" & "where_ vejedato = " & StartDato & ""
Data2.Refresh
DBGrid2.Refresh

Kan nogen hjælpe
/Søren
Avatar billede medions Nybegynder
04. marts 2003 - 10:00 #1
StartDato = Date
Data2.recordSource = "select * from qryisagMD" & " where vejedato = #" & StartDato & "#"
Data2.Refresh
DBGrid2.Refresh

//>Rune
Avatar billede tjacob Juniormester
04. marts 2003 - 10:03 #2
1.) Underscoren er forkert: where er et keyword i SQL.
2.) Der er heller ikke mellemrum mellem qryisagMD og where.

Skal se sådan ud: "select * from qryisagMD where vejedato = " & StartDato

Desuden skal du sikre dig at VB's Date er samme format som vejedato i DB'en.

/tjacob
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 10:04 #3
Hej Rune
Tak for forsøget, men det hjalp desværre ikke.
Hvad gør #-tegnet helt præcist?

/Søren
Avatar billede tjacob Juniormester
04. marts 2003 - 10:05 #4
rettelse:
Data2.recordSource = "select * from qryisagMD where vejedato =" & StartDato
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 10:12 #5
Hej tjacob
Du har ret i, det kan se sådan ud, men det er bare mit dårlige forsøg på at illustere et linjeskift. Men din kode hjalp heller ikke.
Jeg mener at have samme datoformat både i Access og VB.
I Access har jeg formatet "Short-date", og selv om jeg formaterer med
Startdato = Format(Date, "Short date"), så sker der intet.
Hva' pokker gør jeg galt?
/Søren
Avatar billede jrl0469 Nybegynder
04. marts 2003 - 10:17 #6
Hva' med at bruge Like
Data2.recordSource = "select * from qryisagMD where vejedato Like " & StartDato
Avatar billede jrl0469 Nybegynder
04. marts 2003 - 10:20 #7
Undskyld - rettelse
Data2.recordSource = "select * from qryisagMD where vejedato Like '" & StartDato & "'"
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 10:26 #8
Jeg takker for ihærdigheden, men stadig intet resultat.
Jeg er sikker på, at det har noget med datoer generelt at gøre, for hvis jeg vælger Primærnøglen i stedet for, så virker det fint

/Søren
Avatar billede peter.erikse Nybegynder
04. marts 2003 - 10:37 #9
Prøv denne:
Qstring = "SELECT * FROM Udlån  WHERE  U_Startdato >= DateValue('" & z_Startdato & _
"') And  U_Startdato <= DateValue('" & z_Slutdato & "')"
Set rec = db.OpenRecordset(Qstreng)
Avatar billede somaliomar Praktikant
04. marts 2003 - 11:02 #10
Du kan bruge BETWEEN. http://www.w3schools.com/sql/sql_between.asp

Prøv det her

datStartDato = #11-05-02#
datSlutDato = Date
Data2.RecordSource = "SELECT * FROM qryisagMD WHERE vejedato BETWEEN #" & datStartDato & "# AND #" & datSlutDato & "#"
Data2.Refresh
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 11:12 #11
>> Peter
Jeg forstår ikke helt dit forslag. Jeg kobler direkte på en MD-database

>>Somaliomar
Jeg har prøvet Between, men det er jo samme resultat. jeg kan jo ikke engang få systemet til at fremkomme med en enkelt dato
/Søren
Avatar billede somaliomar Praktikant
04. marts 2003 - 11:13 #12
Fremkomme med en enkelt dato? Hvad mener du med det eller bedre: Hvad er det helt præcist at du vil?
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 11:19 #13
>>Somaliomar
Som udgangspunkt vil jeg gerne, at min grid viser de poster, der er registreret på en bestemt (enkelt) dato.
/Søren
Avatar billede somaliomar Praktikant
04. marts 2003 - 11:21 #14
Så kan du din SQL-sætning se sådan her

  "SELECT * FROM qryisagMD WHERE vejedato = #" & datStartDato & "#"
Avatar billede sorenstrom Nybegynder
04. marts 2003 - 11:26 #15
>>Somaliomar
Det har Rune allerede foreslået mig, men desværre uden held.
Er der evt. en af jer gutter, der har en lille eksempeldatabase, hvor det her skidt virker. Jeg må jo have en fejl et eller andet sted i mine data, som jeg ikke kan finde.
Et evt. eksempel kan sendes til soren@onlinenet.dk
/Søren
Avatar billede joern Nybegynder
04. marts 2003 - 12:18 #16
Hej.

Jeg har lavet et program for beregninger af energiforbrug hvor jeg anvender intervallet mellem 2 datoer, men er er ikke noget access dér:

Datoerne står på europæisk - langt format.

http://www.jkfsoft.dk/forbrug.htm

dage = DateDiff("d", txteod.Text, Left(lste.Text, 10), 2, 3)

M.v.h.  Jørn
Avatar billede kabbak Professor
05. marts 2003 - 22:41 #17
Nu er det vel ikke sådan at feltet vejedato er et datotid felt, det kan det godt være selvom du kun ser datoen, klik ind på et felt og se om der kommer en tid med også, hvis det gør det kan du ikke fange den på dato alene, men kun på den exakte dato tid.
Avatar billede sorenstrom Nybegynder
06. marts 2003 - 08:24 #18
>>kabbak
Du har sandsynligvis ret. I Access er feltet sat til Dato/Klokkeslæt, men formatet er Kort datoformat. Ligger der alligevel en tid bag ved?
/Søren
Avatar billede sorenstrom Nybegynder
06. marts 2003 - 08:25 #19
Kan man trække datodelen ud af sådan et fel?
/Søren
Avatar billede kabbak Professor
06. marts 2003 - 08:44 #20
Det kan man godt.

Dato med klokkeslet er et decimaltal, så hvis du kun vil have datoen skal du bruge heltallet fra feltet, jeg har lige testet denne forespørgsel den er ok.

SELECT tabel1.dato, Int([dato]) AS Nydato
FROM tabel1;

Feltet Nydato skal formateres dd-mm-yy, ellers ser du kun tal.

Men har du prøvet at se ind i feltet ved at klikke på en celle.?
Avatar billede peter.erikse Nybegynder
10. juli 2003 - 13:30 #21
Skal du ikke lukke spørgsmålet? Den sidste kommentar er jo fra 6. marts.
Avatar billede kabbak Professor
01. februar 2004 - 00:29 #22
Lukketid.
Avatar billede sorenstrom Nybegynder
01. februar 2004 - 16:34 #23
Undskyld Gutter.
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