Avatar billede celal Nybegynder
14. august 2003 - 16:09 Der er 20 kommentarer og
1 løsning

Side antal på rapport

Hvordan får jeg side antal til at passe med gruppen på rapporten. Jeg vil gerne have at det således ud:

"side 1 af 3"

Hvis en gruppe har 3 sider, så skal den skrive "side 1 af 3", "side 2 af 3" og "side 3 af 3". Den skal ikke tage siderne for hele rapporten start til slut, men kun start og slut inden for gruppen.....
14. august 2003 - 16:14 #1
I menuen Indsæt->Sidenumre i rapportdesign, kan du selv vælge dette format.
14. august 2003 - 16:15 #2
Ellers indsætter du bare en tekstboks med denne tekst i:
="side " & [Page] & " af " & [Pages]
14. august 2003 - 16:21 #3
sorry, celal! Jeg var lidt for hurtig. Jeg forstod ikke helt det med, at det kun skulle være inden for gruppen....
Avatar billede Jørgen Kirkegaard Professor
14. august 2003 - 16:27 #4
Nu er jeg også så kedelig igen, men jeg tror, at jeg ville skrive en rapport ud pr. gruppe.
Avatar billede kabbak Professor
14. august 2003 - 18:24 #5
Sidetallet kan ordnes, men jeg kan ikke finde ud af totalsider.

Lav en ny makro, kald den eventuel ”Sideskift”

Ved handling vælg: angiv værdi
Ved Element skriv: [Page]
Ved udtryk skriv  : 1

Luk og gem

I din rapport vælg gruppehoved og fod
I gruppefoden vælger du  tvungen sideskift = Efter sektion
I gruppehovedet vælg hændelser ved formatering der vælger du din makro

Nu starter den med side 1 på alle grupper
14. august 2003 - 21:23 #6
JEg tror ikke, at det er muligt at beregne antallet af sider pr gruppe. Derfor vil jeg også foreslå at skrive hver gruppe ud for sig...
Avatar billede proaccess Nybegynder
15. august 2003 - 08:31 #7
Avatar billede celal Nybegynder
15. august 2003 - 12:03 #8
Kabbak: hvad så efter jeg har lavet dette? Hvordam får jeg så selve side talet på siden?
Avatar billede kabbak Professor
15. august 2003 - 12:07 #9
Lav en tekstboks  i sidefoden, skriv: ="Side " & [Page] i den.
Så skulle sidetallet virke
Avatar billede celal Nybegynder
15. august 2003 - 13:18 #10
proaccess: Den der hedder Me!Salesperson, skal jeg have lavet om til min egen control (Me!Kundenr), men jeg får en fjle der siger "Microsoft Access  kan ikke finde feltet 'kundenr', der referes til i udtrykket."
Hvad gøre jeg galt? jeg kopiret koden over til min access
Avatar billede celal Nybegynder
15. august 2003 - 13:22 #11
Okay, har fundet det felt som jeg skal bruge. men nu får jeg en anden fel, "Kørselsfejl 438, objektet understøtter ikke denne type egenskab eller metode"
og den stopper på denne linie: GrpNameCurrent = Me!Kundenr
Avatar billede celal Nybegynder
15. august 2003 - 13:28 #12
Okay, nu kan jeg godt køre det. men der kommer ikke noget på min Tekstfelt i sidefoden...

Min kode ser således up nu....

Private Sub Sidefod_Format(Cancel As Integer, FormatCount As Integer)

Dim GrpArrayPage(), GrpArrayPages()
Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
Dim GrpPage As Integer, GrpPages As Integer
Dim i As Integer
  If Me.Pages = 0 Then
    ReDim Preserve GrpArrayPage(Me.Page + 1)
    ReDim Preserve GrpArrayPages(Me.Page + 1)
    GrpNameCurrent = Me!Kunde
    If GrpNameCurrent = GrpNamePrevious Then
        GrpArrayPage(Me.Page) = GrpArrayPage(Me.Page - 1) + 1
        GrpPages = GrpArrayPage(Me.Page)
            For i = Me.Page - ((GrpPages) - 1) To Me.Page
                GrpArrayPages(i) = GrpPages
            Next i
    Else
        GrpPage = 1
        GrpArrayPage(Me.Page) = GrpPage
        GrpArrayPages(Me.Page) = GrpPage
    End If
  Else
    Me!ctlGrpPages = "Group Page " & GrpArrayPage(Me.Page) & " of " & GrpArrayPages(Me.Page)
  End If
  GrpNamePrevious = GrpNameCurrent

End Sub
Avatar billede proaccess Nybegynder
15. august 2003 - 13:30 #13
Du har vel husket at få de øverste linier kopieret med over også...

Dim GrpArrayPage() As Long, GrpArrayPages() As Long
Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
Dim GrpPage As Long, GrpPages As Long
Avatar billede proaccess Nybegynder
15. august 2003 - 13:31 #14
Grunden til at der IKKE kommer noget ud nu er at din rapport ikke kommer gennem begge gange formattering, dette klares ved at sætte endnu et felt i sidefoden, som bare indeholder =[Pages] (feltet behøver ikke være synligt)

Dette tvinger koden igennem!
Avatar billede celal Nybegynder
15. august 2003 - 13:55 #15
okay, nu får jeg en anden fejl:
"Kørselsfejl 9, Indekset er uden for området"

Me!ctlGrpPages = "Group Page " & GrpArrayPage(Me.Page) & " of " & GrpArrayPages(Me.Page)
Avatar billede proaccess Nybegynder
15. august 2003 - 14:00 #16
Du skal have de 3 første linier med dimensionering af variabler uden for din Sidefod_Format-sub...

som i:

Dim GrpArrayPage(), GrpArrayPages()
Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
Dim GrpPage As Integer, GrpPages As Integer

Private Sub Sidefod_Format(Cancel As Integer, FormatCount As Integer)
Dim i As Integer
  If Me.Pages = 0 Then
    ReDim Preserve GrpArrayPage(Me.Page + 1)
...
Avatar billede proaccess Nybegynder
15. august 2003 - 14:01 #17
Sub'en bliver kørt genne 2 gange, og Access skal kunne huske værdierne mellem disse...
Avatar billede celal Nybegynder
19. august 2003 - 15:55 #18
jeg får en fejl i : Dim GrpArrayPage(), GrpArrayPages()
når jeg sætter dem uden for Sub som du anbefaler. Skal de ikke være ærklæret med en type?
Avatar billede celal Nybegynder
09. oktober 2003 - 11:03 #19
Nogen som kan fortølle mig hvorfor jeg ikke kan bruge arrays?
Avatar billede celal Nybegynder
11. november 2003 - 15:03 #20
Er lige vendt tilbage til opgaven. Jeg kan stadig ikke løse det ned den kode som du har givet mig
Avatar billede kabbak Professor
01. februar 2004 - 00:47 #21
Lukketid.
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