27. januar 2007 - 17:59Der er
5 kommentarer og 1 løsning
Søgning i database med VBA
Jeg har lavet en database, for at holde styr på mine biografbesøg og nu vil jeg gerne kunne søge i skidtet, men jeg kan ikke få det til at virke, som jeg gerne vil have det til. min kode ser således ud:
År = InputBox("Søg på år.:(YYYY)", "Søg") Md = InputBox("Søg på Måned (mmm):", "Søg")
Indskr = Md & " " & År If Indskr <> "" Then Start = "01 " & Indskr Slut = "31 " & Indskr DatoTest = True End If
Ark1.Cells(1, 1) = Start 'test Ark1.Cells(1, 2) = Slut 'test Ark1.Cells(1, 3) = Indskr 'test If DatoTest Then Set db = OpenDatabase("c:/NMDB/NMDB.mdb") Set rs = db.OpenRecordset("Select * from Film where indskrevet > '" & Start & "'", dbOpenDynaset)
"indskrevet" er feltet, hvor der står, hvornår jeg har set filmen. i feltet står der fx: 01-03-2006. Pt er det bare oprettet som et tekstfelt. Jeg har også haft lavet det om til et datofelt, men det hjalp mig lige lidt. Hvad gør jeg forkert?
ps. Da jeg kun skriver en måned ind, bruger jeg koden herunder, til at finde starten og slutningen på måneden, så den viser alle film inden for den månede jeg beder om. Start = "01 " & Indskr Slut = "31 " & Indskr
Hvor udskriver du dit resultat? Er ikke vildt hård til Excel programmering, synes det generelt kan virke en smule rodet, men der er da nogle fejl som jeg kan se det :
F.eks. : If DatoTest then
Mener du ikke : If Dato = Test then
Og hvor er koden som udskriver alle resultaterne i : rs recordsettet?
I starten skriver du : If Indskr <> "" Then
Hvor dimmer du dine variabler henne? Er det en tekst variabel? Hvis ja, hvorfor så ikke bruge null værdi i stedet for? Virker mere logisk på mig!
Så når værdien skal tjekkes så kan du bruge : If Indskr <> null Then Og for at tømme den bruger du : Indskr = null
"Og hvor er koden som udskriver alle resultaterne i : rs recordsettet?" Alt data fra mit recordset bliver skrevet ud i en listbox (ark1.listbox1).
Jeg dimmer alle mine værdier i et module, for at gøre dem public. derfor du ik kan se det nogen steder. og grunden til jeg skriver If Indskr <> "" Then er for at teste om der er blevet skrevet noget ind i variablen, før jeg bruger den. Hvad er null værdi?
År = InputBox("Søg på år.:(YYYY)", "Søg") md = InputBox("Søg på Måned (mmm):", "Søg")
Set Db = OpenDatabase("c:/NMDB/NMDB.mdb") Set rs = Db.OpenRecordset("Select * from Film where year(indskrevet) =" & År & " and month(indskrevet) =" & md, dbOpenDynaset)
Jeg har selv fundet en løsning på dette problem. Ellers tak for hjælpen.
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.