Avatar billede celal Nybegynder
02. juni 2003 - 16:25 Der er 7 kommentarer og
2 løsninger

Select : problemmer med dato

Jeg kan ikke få denne Select sætning til at vise mig det rigtig antal koloner:

strSQL = "SELECT Count(SL1K.SL1K001) AS antal FROM SL1K WHERE (((SL1K.SL1K001)='00103700') AND ((SL1K.SL1K002)=#2-6-2003#) AND ((SL1K.SL1K003)='CY'));"

Denne burde vise 10 poster som macher kriterierne, men jeg få antal=0 ligegyldigt hvor mange poster som macher.

Jeg har også prøvet med denne SQL sætning, dvs uden dato feltet, og der får jeg antalet (og lidt mere til)
           
strSQL = "SELECT Count(SL1K.SL1K001) AS antal FROM SL1K WHERE (((SL1K.SL1K001)='00103700') AND ((SL1K.SL1K003)='CY'));"


men jeg skal bruge den første SQL sætning. Hvad er der galt her?
Avatar billede fdata Forsker
02. juni 2003 - 21:58 #1
Prøv at udskifte ((SL1K.SL1K002)=#2-6-2003#)
med ((SL1K.SL1K002)=#6/2/2003#)
Avatar billede celal Nybegynder
03. juni 2003 - 09:40 #2
fdata: ((SL1K.SL1K002)=#6/2/2003#) virker heller ikke. Jeg er 100% sikker på at den ikke får sammenlignet dato ordentligt!
Avatar billede celal Nybegynder
03. juni 2003 - 09:43 #3
kan det have noget at gøre med, at jeg på min form bruger "Kort datoformat", når jeg indsætter en post?

strSQL = "Insert into SL1K(SL1K001, SL1K002, SL1K003, SL1K004, SL1K005) Values('" & Me.Kundenr & "' ,'" & Me.NotatDato & "','" & Me.Bruger & "','001','" & Me.Notat & "')"
DoCmd.RunSQL strSQL
Avatar billede celal Nybegynder
03. juni 2003 - 09:44 #4
det skal siges at Me.NotatDato er sat som "kort datoformat"
Avatar billede celal Nybegynder
03. juni 2003 - 10:27 #5
Er der ikke nogen som kan hælpe?
Avatar billede celal Nybegynder
03. juni 2003 - 10:29 #6
Hvis det kan være en hælp så ser min kode således ud:



Private Sub OpdateNotat_Click()


If Me.Kundenr <> "" Then
    If Me.Bruger <> "" Then
        If Me.Notat <> "" And Len(Me.Notat) < 80 Then
            Dim antal As Integer
            Dim strSQL As String
            Dim Rst As Recordset
            Dim DB As Database
            Set DB = CurrentDb
                       
            strSQL = "SELECT Count(SL1K.SL1K001) As Antal FROM SL1K WHERE (((SL1K.SL1K001)='" & Me.Kundenr & "') AND ((SL1K.SL1K002)=" & Me.NotatDato & ") AND ((SL1K.SL1K003)='" & Me.Bruger & "'));"
           
            MsgBox strSQL
            Set Rst = DB.OpenRecordset(strSQL)
            antal = Rst.Fields("Antal")
                       
            DoCmd.SetWarnings False
            MsgBox "Antal :" & Rst.Fields("Antal") & Chr$(13) & "Kundenr :" & Me.Kundenr & Chr$(13) & "Dato :" & Me.NotatDato & Chr$(13) & "Bruger :" & Me.Bruger & Chr$(13) & "Bruger :" & Me.Notat & Chr$(13)
            If antal > 0 Then
           
                If antal > 9 Then
                    antal = antal + 1
                    strSQL = "Insert into SL1K(SL1K001, SL1K002, SL1K003, SL1K004, SL1K005) Values('" & Me.Kundenr & "' ,'" & Me.NotatDato & "','" & Me.Bruger & "','0" & antal & "','" & Me.Notat & "')"
                    DoCmd.RunSQL strSQL
                    MsgBox "Bemærkning er opdateret1"
                    DoCmd.Close
                Else
                    antal = antal + 1
                    strSQL = "Insert into SL1K(SL1K001, SL1K002, SL1K003, SL1K004, SL1K005) Values('" & Me.Kundenr & "' ,'" & Me.NotatDato & "','" & Me.Bruger & "','00" & antal & "','" & Me.Notat & "')"
                    DoCmd.RunSQL strSQL
                    MsgBox "Bemærkning er opdateret2"
                    DoCmd.Close
                End If
            Else
                strSQL = "Insert into SL1K(SL1K001, SL1K002, SL1K003, SL1K004, SL1K005) Values('" & Me.Kundenr & "' ,'" & Me.NotatDato & "','" & Me.Bruger & "','001','" & Me.Notat & "')"
                DoCmd.RunSQL strSQL
                MsgBox "Bemærkning er opdateret3" & Chr$(13) & "Dato: " & Me.NotatDato
                DoCmd.Close
            End If
           
            DoCmd.SetWarnings True
           
       
        Else
            MsgBox "Bemærknings feltet må ikke være tomt eller over 80 karakter!"
        End If
    Else
        MsgBox "Husk at du skal vælge en bruger!"
    End If
Else
    MsgBox "Handlingen kan ikke udføres. Der er ikke noget kundenr!"
End If

End Sub
Avatar billede celal Nybegynder
03. juni 2003 - 11:06 #7
okay har fundet ud af lidt mere nu. Hvis jeg indsætter dette her:

strSQL = "SELECT Count(SL1K.SL1K001) As Antal FROM SL1K WHERE (((SL1K.SL1K001)='" & Me.Kundenr & "') AND ((SL1K.SL1K002)= #6/3/2003#) AND ((SL1K.SL1K003)='" & Me.Bruger & "'));"

Dvs at med #6/3/2003# virker det godt. Men problemet er bare, at jeg datoen jo ikke er fast. Jeg skal bruge Me.NotatDato.

Hvordan får Me.NotatDato(06-03-2003) omformateret til #6/3/2003# ???
Avatar billede celal Nybegynder
03. juni 2003 - 11:42 #8
Nå men jeg har selv fundet ud af det!

Jeg har lavet det på denne måde!

dato = Month(Me.NotatDato) & "/" & Day(Me.NotatDato) & "/" & Year(Me.NotatDato)

så har dato den rigtige SQL format

Ellers tak for hælpen :o)
Avatar billede celal Nybegynder
03. juni 2003 - 11:43 #9
:O)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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