Avatar billede japlex Nybegynder
21. august 2001 - 12:05 Der er 3 kommentarer og
1 løsning

Hvad er der galt med min SQL-sætning

Jeg har problemer med min SQL-sætning der henter data fra en access db.

Proceduren er som følger.

Ved klik på en kalender anvender Calendar1.Value til at \"fodre\" SQL-sætningen med den rigtige dato i \"Where\" betingelserne (se koden), men det pudsige er at den returnerer et tomt recordset hvis dagen for datoen er 1 cifret - altså f.eks. 03-09-2001, hvorimod 21-08-2001 giver virker fint ????

Hvad går der galt. Er det noget med vb´s måde at håndtere datoer på.

NB: Kører jeg den rene SQL-sætning i Access kører det hele som det skal.

Her er koden:

strQuery = \"SELECT KUNDE.Kundenr, KUNDE.Navn, KUNDE.Sidste_besøg, KUNDE.Postnr, POSTBY.By, KUNDE.B_Interval, KUNDE.Checked, BESØG.Dato, KUNDE.PlanDato, KUNDE.K_kategori, DateDiff(\'d\',[KUNDE]![Sidste_besøg],Now())-7*[KUNDE]![B_Interval] AS OD \" & _
    \"FROM POSTBY INNER JOIN (BESØG INNER JOIN KUNDE ON BESØG.Kundenr = KUNDE.Kundenr) ON POSTBY.Postnr = KUNDE.Postnr \" & _
    \"WHERE (((KUNDE.Checked)=-1) AND ((KUNDE.PlanDato)=#\" & cDato & \"#)) OR (((BESØG.Dato)=#\" & cDato & \"#)) \" & _
    \"ORDER BY KUNDE.K_kategori asc\"
Avatar billede oswald Nybegynder
21. august 2001 - 12:57 #1
Problemet er sikkert dit dato format. Jeg har oplevet at der er forskel på hvordan den samme maskine fortolker \'ulovlige\' datoer.
F.eks. bliver 10-12-2001 fortolket som 12 nov 2001 og 13-12-2001 som 13 dec 2001.
Prøv at sende datoen som \'YYYYMMDD\' og uden \'#\' f.eks. ((KUNDE.PlanDato)=\"\"\" & cDato & \"\"\")). Noget i stilen virker på SQL serveren.
Avatar billede oswald Nybegynder
21. august 2001 - 12:59 #2
Det var vist skrevet lidt kringlet.
Som standart bliver datoer fortolket som US datoer (MM-DD-YYYY), men hvis dette giver en fejl prøver systemet at fortolke datoen som (DD-MM-YYYY) uden at give en fejl.
Avatar billede japlex Nybegynder
21. august 2001 - 13:35 #3
Oswald >> Jeg får ingen fejl - kun tomme recordsets.

Kan du eller en anden ikke give lidt mere præcise anvisninger.
Avatar billede japlex Nybegynder
21. august 2001 - 13:50 #4
OK - jeg fandt ud af det.

Jeg skulle ikke fjerne \'#\' men istedet sende datoen afsted som mm/dd/yyyy

Tak for at lede mig på vej ;-)
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