Gå til innhold

VB7 SQL-sortering etter dato


Anbefalte innlegg

Hei, noen som kan hjelpe meg før jeg blir gal :o

Det jeg plages med er:

Jeg holder på å lage et program hvor man legger inn endel opplysninger om arbeid/jobber man utfører med beskrivelse av dato, klokkeslett, ordrenummer, jobb-beskrivelse, og arbeidstiden som er brukt.

Jeg ønsker at man ved å klikke på "kalenderen" så skal DataGriden sorteres slik at bare jobber og opplysningene om jobbene på valgt dato vises og arbeidstidene for den valgte datoen summeres.

 

Feilmelding en jeg får er:

Run-time error '3464":

Data type mismatch in criteria expression.

 

Hvis jeg velger debug, så er data1.refresh uthevet i gult.

 

Jeg har prøvd å sortere etter f.eks arbeidstid, jobben som er utført osv. og da det fungerer sortering og "refresh".

 

Jeg bruker:

 

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

Dim sortdato As String

sortdato = DateClicked

Data1.RecordSource = "SELECT * from bonustabell where bonustabell.dato = '" & sortdato & "'"

Data1.Refresh

End Sub

 

Det er en Access database, (har prøvd access'97 og access'2000 database)

Lenke til kommentar
Videoannonse
Annonse

Det virker på meg som om kanskje datoen som er registrert ikke er etter standarden på maskinen.

Prøv dette:


Dim nDate As Integer

nDate = System.Int32.Parse(DateClicked.Year & DateClicked.Month & DateClicked.Day)

 

Og sjekk mot nDate.ToString()

 

Dette konverterer datoen til ISO dato

Access har antall dager siden 1900 (eller noe sånt) og da kan det bli konverterings problemer.

 

Jeg har hørt at alle database program svelger standard ISO dato, men har aldri hatt bruk for det selv, så jeg vet ikke om det fungerer.

Lenke til kommentar
  • 2 uker senere...

I og med dette er en sql string, som senere kjøres, må du si fra hvilken datatype det er: datoer må omsluttes med hash (#).

 

I tillegg, er det datoproblematikken - jeg bruker en nokså uelegant løsing, som innebærer bruk av Format-funksjonen;

 

sortdato = Format(DateClicked , "yyyy-mm-dd")

 

og så #-ene (i steden for enkelt anførselstegn, som gjelder tekstkriterier)

 

Data1.RecordSource = "SELECT * from bonustabell where bonustabell.dato = #" & sortdato & "#"

Lenke til kommentar

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å
×
×
  • Opprett ny...