02. juni 2003 - 16:25Der 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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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")
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
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# ???
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.