Gå til innhold

sql-string (query) med dato felt


Anbefalte innlegg

Skrevet

Hei !

Jeg har en VB applikasjon som er koblet mot en Access-database.

I den forbindelse kjører jeg mange sql-spørringer.

I databasen har jeg flere dato-felt som ligger definert som kort dato - format,

dvs. f.eks. 31.05.2005

 

Jeg forsøker å kjøre sql-query som følger :

 

SELECT * FROM tabell1 WHERE tabell1.dato = #" & inndato & "#"

 

Siden jeg kjører Norwegian som regional settings på min datamaskin

får jeg ikke kjørt spørringen. Definerer jeg regional settings til Engelsk

fungerer alt som det skal, da blir nemlig dato-felt i Access f.eks. 31/05/2005.

Hvordan skal jeg løse dette ?. Ønsker jo ha ha norsk reginal setting

på min pc. Gjør jeg om dato-feltene i tabellen om til Tekst-felt fungerer det

også utmerket, men da må jeg bytte ut # med ' i spørringen min.

Ulempen da er at jeg ikke får brukt sorteringsmulighet osv. på disse dato-feltene

slik som man får gjort hvis dem er definert som dato-felt.

Videoannonse
Annonse
Skrevet

Jeg pleier aldri å lagre dato som datetime, men heller som string, da er alt av slikt løst, og så får du heller la programmet ditt vise dataene med riktig formatering.

Skrevet

Access krever at datoformatet som brukes i en spørring er i format "måned/dag/år hh:mm:ss". "hh:mm:ss" kan sløyfes.

 

Denne funksjonen tar en Date verdi som parameter og returnerer datoen som en streng i det formatet Access krever. IncludeTime parameteret forteller funskjonen om klokkeslettet skal returneres eller ikke.

 

Public Function SQLDate(dDate As Variant, Optional IncludeTime As Boolean = True) As Variant

If IsDate(dDate) Then
   If IncludeTime Then
       SQLDate = Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate) & " " & Hour(dDate) & ":" & Minute(dDate) & ":" & Second(dDate)
   Else
       SQLDate = Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate)
   End If
Else
   SQLDate = Null
End If

End Function

 

Ved å bruke denne funskjonen blir spørringen din slik:

 

SELECT * FROM tabell1 WHERE tabell1.dato = #" & SQLDate(inndato,false) & "#"

  • 2 uker senere...
Skrevet

Har funnet en grei måte å løse dette på som fungerer fint :

 

 

dagensdato = Date

dagensdato = Format(dagensdato, "mm/dd/yyyy")

dagensdato = Replace(dagensdato, ".", "/")

 

sql = "Select * From tblStemplinger " & _

"Where tblStemplinger!Ansattnummer = " & Innloggetnummer & _

" And tblStemplinger!Stemplinginn = #" & dagensdato & "#"

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...