Avatar billede banelars Nybegynder
03. marts 2004 - 18:30 Der er 11 kommentarer og
1 løsning

Udskriv liste fra en formular.

Jeg har en formular i Access 2000, hvor en bekendt har lagt noget kode ind, således at den henter nogle oplysninger fra forskellige underliggende tabeller. Han har kodet direkte i formularen. De hentede data vil jeg gerne have skrevet ud. Jeg har prøvet at lave en rapport, men hvordan fortæller jeg, at den skal udskrive de data der er hentet på listen i formularen. ?
Eller kan man udskrive listen direkte fra formularen ?
Formularen bygger jo ikke på en bestemt tabel eller forespørgsel, da han har kodte direkte på formularen.
03. marts 2004 - 18:57 #1
Hvis du har en rapport baseret på en tabel eller forespørgsel, er der formentlig en primærnøgle eller et unikt felt for hver post i tabellen.
Hvis dette felt f.eks hedder ID, kan denne linie kode lægges på en knap:
Docmd.openreport "din nye rapport", acviewpreview,,,"ID = " & Me!ID

ID er tillige et felt på formularen.

/Thomas
Avatar billede mugs Novice
03. marts 2004 - 19:36 #2
Thomas -> Den går ikke, idet banelars skriver:

"den skal udskrive de data der er hentet på listen i formularen. ?"

D.v.s at der kan være valgt mere end een post, og så duer et unikt felt jo ikke som kriterie.
Jeg har selv rodet lidt med det uden held. Det nå være noget med at referere til SelectedItems i listen.
Avatar billede banelars Nybegynder
03. marts 2004 - 20:07 #3
Hej.

Alle posterne vil have et cirkulærenummer (cirknr), som er unikt for hver post.
Jeg selv er ikke så stiv i at udvikle koderne, kun til at rette dem til.
Så jeg vil meget gerne have forslag til en udskrivningskode som evt. kan lægges på en kommandoknap i formularen.
Avatar billede mugs Novice
03. marts 2004 - 20:12 #4
For mig er problemet, at du markerer flere poster i en liste og ønsker dem alle udskrevet.

Det er ikke noger problem at lave en kode der udskriver formularens aktuelle post referende til et unikt numerisk felt:

DoCmd.OpenReport "rapport1", acViewPreview, , "[Tabel1]![cirknr] = " & Me!cirknr & ""

Men jeg tror ikke det er det du vil.
03. marts 2004 - 20:30 #5
nå, jeg havde åbentbart helt misforstået spørgsmålet - sorry :o)

Men en multiselect på en listeboks kan nemt løses således:
   
Dim Itm as variant
Dim SQLStr as String
SQLStr = "cirknr In ("
For each Itm In Me!DinListeboks.ItemsSelected
    SQLStr = SQLStr & Me.DinListeboks.ItemData(Itm) & ", "
Next Itm
SQLStr = Left(SQLStr, len(SQLStr)-2) & ")"
Docmd.openreport "din nye rapport", acviewpreview,,,SQLStr

(jeg håber ikke at der er nogle 'dumme'-fejl, da jeg bare har skrevet koden direkte efter hovedet)
03. marts 2004 - 20:31 #6
NB: Koden virker kun hvis cirknr er numerisk!
Hvis feltet er et tekstfelt, så skal koden laves lidt om.
Avatar billede banelars Nybegynder
03. marts 2004 - 22:09 #7
Jeg afprøver koden i morgen,
når jeg har min hjælper til rådighed.
Jeg vender tilbage.
Avatar billede banelars Nybegynder
04. marts 2004 - 18:20 #8
Vi har kigget på koden,
men ikke fået det til at virke endnu.
Hvordan skal rapporten se ud ?
Da den ikke bygger på en forespørgsel,
eller en bestemt tabel, så har jeg lavet den
uden postkilde og med en ubundet liste.
Kan det være rapporten, der er problemet ?
Skal den henvise til formularen på en eller anden måde ?
Avatar billede banelars Nybegynder
09. marts 2004 - 09:40 #9
Jeg fik aldrig svar på min sidste kommentar til dit forslag Thomas.
09. marts 2004 - 09:54 #10
Hej Banelars,

Jeg havde ikke set din kommentar :o(

Jeg tror, at jeg havde misset det med at rapporten heller ikke byggede på en tabel eller en forespørgsel. Jeg troede kun at det var formularen.

Et eller andet sted, så forekommer det mig lidt mystisk at du har en formular og en rapport som ikke bygger på en tabel, når Access nu engang er en database.

Det er lidt besværligt, da rapporten er beregnet til at få sine data fra en tabel/forespørgsel.

Du kan prøve at lægge kode på rapportens VedÅbning-hændelse, som skriver i hvert enkelt felt. Men jeg mener at kunne huske noget om, at man ikke kan skrive direkte i tekstbokse på en rapport. Derfor er du måske nødt til at benytte labels/etiketter i stedet.

Der er i hvert fald for mange ukendte parametre til at jeg lige kan give et konkret eks.
Sorry :o(
Avatar billede banelars Nybegynder
09. marts 2004 - 11:14 #11
Hej Thomas.

Jeg har en hjælper der kan programmere, men ikke kender ret meget til Access.
Han har lavet koden direkte på formularen, som henter data i forskellige tabeller.
Han er vant til at arbejde med bl.a. Sql, så han har bare smidt noget kode ind.
Nemt for ham. Problemer for mig. Men det virker jo det han har gjort, derfor ville det være rart bare at kunne bruge det. Jeg prøver det du siger, så snart jeg får tid.
Avatar billede banelars Nybegynder
29. marts 2004 - 08:42 #12
Hej Thomas.

Jeg har ikke kunnet finde en løsning. Det må gøres på en anden måde.
Thanks anyway.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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