Avatar billede target Nybegynder
26. december 2003 - 11:15 Der er 15 kommentarer og
1 løsning

Access VBA brug af en SQL-sætning i min rapport

Jeg skal lave en rapport ud fra min database.
Når man åbner rapporten, skal den komme og stille to spørgsmål til brugeren. Disse to spørgsmål er henholdsvis Afdelingstype og Typenr. Begge besvares med tal
Ud fra disse to svar skal den finde den respektive post i databasen, som den så skal hente alle data fra, og generere rapporten.

Jeg har skrevet følgende sub:

Private Sub Report_Open(Cancel As Integer)

Dim strSQL As String
Dim strQueryName As String
Dim afdelingsnrVar, TypenrVar As Integer

strQueryName = "BOLIGER"
afdelingsnrVar = InputBox("Indtast afdelings nr.", "Afdelings nr.", vbOKOnly)
TypenrVar = InputBox("Indtast lejlighedstype nr.", "Type nr.", vbOKOnly)
strSQL = "SELECT * from BOLIGER" _
  & "WHERE BOLIGER.afdelingsnr = '" & afdelingsnrVar & "' AND BOLIGER.typenr = '" & TypenrVar & "';"


End Sub

Jeg tror selve SQL-sætningen virker, da der ikke kommer nogen fejl.
Men hvordan bruger jeg data fra post'en i min rapport?
Avatar billede target Nybegynder
26. december 2003 - 11:17 #1
Sub-update:

Jeg har fjernet to linier i min sub-rutine;
Dim strQueryName As String
strQueryName = "BOLIGER"

Da de ikke bliver brugt til noget.
Avatar billede kabbak Professor
26. december 2003 - 12:27 #2
strSQL = "SELECT * from BOLIGER" _
  & "WHERE BOLIGER.afdelingsnr = " & afdelingsnrVar & " AND BOLIGER.typenr = " & TypenrVar & ";"

du skal ikke bruge ' når det er tal, kun ved string
Avatar billede target Nybegynder
26. december 2003 - 12:28 #3
Okay.
Ja, det er også rigtigt. Men hvordan trækker jeg så yderligere informationer ud fra posten til brug i min rapport?
Avatar billede kabbak Professor
26. december 2003 - 12:38 #4
normalt laver jeg det i en alm. forespørgsel og baserer rapporten på den

SELECT *
FROM BOLIGER
WHERE ((([BOLIGER].[afdelingsnr])=[Indtast afdelings nr.]) AND (([BOLIGER].[typenr])=[Indtast lejlighedstype nr.]));
Avatar billede target Nybegynder
26. december 2003 - 12:40 #5
Ja, det var også det første jeg ville gøre, men kan man i en forespørgsel få input-bokse frem, som man kan indtaste kriterier i?
Avatar billede kabbak Professor
26. december 2003 - 12:42 #6
ja de kommer automatisk med det du skriver i dem

=[Indtast afdelings nr.]
her får du en msgbox der spørger om det der står imellem [ ]
Avatar billede target Nybegynder
26. december 2003 - 12:43 #7
Nice, det prøver jeg lige
Avatar billede kabbak Professor
26. december 2003 - 12:44 #8
Forespørgsler spørger altid med msgboxe, hvis den ikke kender det der står imellem [], det gælder også ukendte felter
Avatar billede target Nybegynder
26. december 2003 - 12:47 #9
Nu har jeg prøvet at paste det du skrev ind i en forespørgsel, men når jeg prøver at køre denne forespørgsel kommer den med følgende fejl:

Navnet "Forespørgsel" er ikke et gyldigt navn. Kontroller, at det ikke indeholder ugyldige tegn eller ugyldig tegnsætning, og at navnet ikke er for langt.

Her kan jeg så trykke OK eller Hjælp
Avatar billede target Nybegynder
26. december 2003 - 12:50 #10
Okay. Har fundet fejlen. Skulle bare fjerne begge "." indenfor []'erne
Avatar billede kabbak Professor
26. december 2003 - 12:50 #11
det er navnet på din forespørgsel der der galt med, du må ikke bruge , . / osv i navnet
Avatar billede kabbak Professor
26. december 2003 - 12:51 #12
ok
Avatar billede target Nybegynder
26. december 2003 - 13:02 #13
Det virker!

Mange tak.

Hvis du opretter et svar, så får du point'ene.
Jeg opretter et nyt spørgsmål, som du måske også kan hjælpe mig med, hvis du vil.
Avatar billede kabbak Professor
26. december 2003 - 13:03 #14
Et svar ;-))
Avatar billede kabbak Professor
26. december 2003 - 13:06 #15
tak for points
Avatar billede target Nybegynder
26. december 2003 - 13:10 #16
Det er mig der takker.
http://www.eksperten.dk/spm/443902 <- Mit andet spørgsmål, kan du garanteret også svare på. :)
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
Kurser inden for grundlæggende programmering

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