15. april 2004 - 15:51Der er
15 kommentarer og 2 løsninger
Dao sql dato, og mindre VBA problem.
Hej Jeg har det problem at jeg ved ikke hvilken syntax man skal bruge ved dato i DAO.
Jeg har lavet en sql string, herunde ses lidt af where sætningen:
WHERE startdato>={" & currentDato & "} AND slutdato<={" & nyDato & "}
Mit problem er hvilken syntax startdato og slutdato skal være i.
Derudover har jeg et andet lille problem. Jeg har lavet en større GUI hvor man kan afkrydse forskellige ting i checkboxe, men hvordan kan man lave et loop med dem.
If grpInput.CheckBox14 = True Then If sqlStringGrp = "" Then sqlStringGrp = "Grp='" & grpInput.CheckBox14.Caption & "'" Else sqlStringGrp = sqlStringGrp & "OR Grp='" & grpInput.CheckBox14.Caption & "'" End If End If
Hvis jeg gerne ville lave et loop der løber fra grpInput.Checkbox1 til grpInput.Checkbox14, f.eks en while løkke. Håber nogen ved det :-)
Du opretter et kontrolarray ved at smide en Checkbox på formen, omdøbe den til hvad den skal hedde, kopiere den ved Ctrl+C, og paste ved Ctrl+V, og sige "JA" til at oprette et kontrolarray
Du kan så oprette et kontrolarray med fx. 14 checkboxe, der hedder:
CheckBox(0), CheckBox(1), ..., CheckBox(13)
Dim i as long For i = 0 to 13 if grpInput.CheckBox(i).Value = True then bla bla bla Next i
VB er ikek så smart at man kan sammensætte kontrolnavne af variabler.
F.eks.
Dim Kontrolnavn dim i for i = 1 to 5 kontrolnavn = "Text" & i kontrolnavn.text = "Dette er kontrol nr. " & i next i
Ovenstående vil IKKE virke - man kan noget tilsvarende i andre sprog, ikke i VB. Eneste anden løsning er kontrolarray - men de er åbenbart ikke i VBA
Alternativt - måske KAN du komme omkring det ved at lave en collection af checkboxe, jeg vil tro at det kræver at du opretter dem runtime. Og så kan do loope igennem din collection af checkboxe. Har ikke tænkt det 100% igennem, men du kan jo prøve. Har du ikke erfaring med collections, skal du nok lige læse 5 min om det først...
For i = 1 To 15 If gruppeV.Item(i) Then If sqlStringGrp = "" Then sqlStringGrp = "Grp='" & gruppeV.Item(i).Caption & "'" Else sqlStringGrp = sqlStringGrp & " OR Grp='" & gruppeV.Item(i).Caption & "'" End If End If Count = Count + 1 Next [i] End Sub
Og du behøver ikke oprette kontrollerne runtime som jeg antydede at du _måske_ skulle. Lækkert :o)
Synes godt om
Ny brugerNybegynder
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.