olona Skrevet 27. april 2005 Del Skrevet 27. april 2005 morn alle sammen. har en access database med et skjema, hvor jeg vil ha en hvor jeg vil ha et skjema med en kombobox (el) som automatisk henter inn alle rapportene (reports) jeg har laget. Noen som vet hvordan? takker på forhånd. Lenke til kommentar
kaffenils Skrevet 27. april 2005 Del Skrevet 27. april 2005 Legg denne funksjonen inn i en form eller modul. Function AlleRapporter(fld As Control, ID As Variant, row As Variant, col As Variant, CODE As Variant) As Variant Static intReportsCount As Integer Dim vReturnValue As Variant Select Case CODE Case acLBInitialize ' Initialize. intReportsCount = CurrentDb.Containers("Reports").Documents.Count vReturnValue = intReportsCount Case acLBOpen ' Open. vReturnValue = Timer ' Unique ID. Case acLBGetRowCount ' Get rows. vReturnValue = intReportsCount Case acLBGetColumnCount ' Get columns. vReturnValue = 1 Case acLBGetColumnWidth ' Get column width. vReturnValue = -1 ' Use default width. Case acLBGetValue ' Get the data. vReturnValue = CurrentDb.Containers("Reports").Documents(row).NAME End Select AlleRapporter = vReturnValue End Function For å bruke den i en comboboks så skriver du funksjonsnavnet, AlleRapporter, inn i comboboksens 'Row Source Type' property. Ja, du leste riktig, propertyen der du kan velge mellom 'Table/Query', 'Field List' eller 'Value List'. Lenke til kommentar
olona Skrevet 27. april 2005 Forfatter Del Skrevet 27. april 2005 Antar at man kan bruke CurrentDb.Containers("Reports").Documents.Count og CurrentDb.Containers("Reports").Documents(row).NAME for å hente inn eventuelt andre ting også, exempel tabeller, spørringer, skjemaer osv... Rowsourcetype var jo et gulltips. Takker så meget Kaffenils. Lenke til kommentar
kaffenils Skrevet 27. april 2005 Del Skrevet 27. april 2005 Containers inneholder 9 Container objeckter. I Immediate vinduet finner du lett navnet på de forskjellige Container objektene ved å skrive currentdb.Containers(i).Name og bytte ut i med verdier fra 0 til 8. Anbefaler å bruke currentdb.TableDefs(i).Name . Antall tabeller finner du selvflgelig vha. Count egenskapen til Tabledefs. For å finne alle queries bruker du Querydefs istedet for Tabledefs, men vær klar over at du også får alle spørringer som er definert direkte i f.eks. et forms Recordsource egenskap. Du vil se at disse får noen merkelige navn med masse krusseduller. Lenke til kommentar
larstdahl Skrevet 15. mai 2005 Del Skrevet 15. mai 2005 (endret) Jeg har prøvd meg frem litt nå, og får frem alle rapportene mine i kombiboksen, men hvordan kan jeg få til sånn at men går til den rapporten (forhåndsvisningsmodus, ikke direkte utskrift) når man velger en av de? Edit: Fant det ut, man måtte sette denne inn i VB-koden: stDocName = Kombinasjonsboks0.Value DoCmd.OpenReport stDocName, acPreview Men, en ting jeg lurer på er, hvordan kan jeg konvertere den til å liste opp alle skjemaer i stedenfor? Jeg prøvde å bytte ut alle steder det stod Reports i koden med Forms, men det funka ikke. Noen som kan hjelpe??? Skal bruke det i en innlevering som skal leveres i natt. Dette prøvde jeg: Function AlleSkjemaer(fld As Control, ID As Variant, row As Variant, col As Variant, CODE As Variant) As Variant Static intFormsCount As Integer Dim vReturnValue As Variant Select Case CODE Case acLBInitialize ' Initialize. intFormsCount = CurrentDb.Containers("Forms").Documents.Count vReturnValue = intFormsCount Case acLBOpen ' Open. vReturnValue = Timer ' Unique ID. Case acLBGetRowCount ' Get rows. vReturnValue = intFormsCount Case acLBGetColumnCount ' Get columns. vReturnValue = 1 Case acLBGetColumnWidth ' Get column width. vReturnValue = -1 ' Use default width. Case acLBGetValue ' Get the data. vReturnValue = CurrentDb.Containers("Forms").Documents(row).Name End Select AlleSkjemaer = vReturnValue End Function Endret 18. mai 2005 av larstdahl Lenke til kommentar
kaffenils Skrevet 18. mai 2005 Del Skrevet 18. mai 2005 Function AlleSkjemaer(fld As Control, ID As Variant, row As Variant, col As Variant, CODE As Variant) As Variant Static intFormsCount As Integer Dim vReturnValue As Variant Select Case CODE Case acLBInitialize ' Initialize. intFormsCount = CurrentDb.Containers("Forms").Documents.Count vReturnValue = intFormsCount Case acLBOpen ' Open. vReturnValue = Timer ' Unique ID. Case acLBGetRowCount ' Get rows. vReturnValue = intFormsCount Case acLBGetColumnCount ' Get columns. vReturnValue = 1 Case acLBGetColumnWidth ' Get column width. vReturnValue = -1 ' Use default width. Case acLBGetValue ' Get the data. vReturnValue = CurrentDb.Containers("Forms").Documents(row).Name End Select AlleSkjemaer = vReturnValue End Function Har testet funksjonen din og den fungerer perfekt når jeg lager en test-database. Hvis du kan poste databasen her så er det enklere å hjelpe deg. Evt. så kan du sende den på mail til meg. Jeg har sendt deg en mail med mailadressen du kan sende til. Lenke til kommentar
larstdahl Skrevet 18. mai 2005 Del Skrevet 18. mai 2005 Sorry, fant ut at jeg hadde slurvet, og limt inn den koden på feil måte. Nå funker det, så unnskyld så mye for bryderiet. LarsTD Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå