Avatar billede virtualdurran Nybegynder
27. januar 2007 - 17:59 Der 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

På fohånd tak for hjælpen.
Avatar billede lasserasch Juniormester
27. januar 2007 - 18:21 #1
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

/LAsse
/Lasse
Avatar billede lasserasch Juniormester
27. januar 2007 - 18:22 #2
Havde ikke set at du har en DatoTest variabel! Så det tager jeg i mig igen! Sorry....

/LAsse
Avatar billede virtualdurran Nybegynder
27. januar 2007 - 19:03 #3
"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?
Avatar billede virtualdurran Nybegynder
27. januar 2007 - 19:04 #4
Så så heller ik lige dine 2 sidste linier. Hvad er forskellen på at bruge "" og null, bortset fra at "" kun er 2 teng og null er 4?
Avatar billede kabbak Professor
29. januar 2007 - 00:01 #5
Å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)
Avatar billede virtualdurran Nybegynder
13. februar 2007 - 20:11 #6
Jeg har selv fundet en løsning på dette problem. Ellers tak for hjælpen.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Capgemini Danmark A/S

AI Data Architect

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en IT-supporterelev til lokal IT på Haderslev Kaserne