Bonjour à tous
Sous Access 2000
Je génére en fin de mois une cinquantaine de factures
et elles sont sortent dans un seul état
avec En-tête de facture à chaque En-tête de groupe basé sur Me!CléP_Facture
et numérotation des pages par facture.
J'ai fait des essais sur quelques factures et tout allais bien,
Je suis passé à une quarantaine de facture et là, j'ai des erreurs,
des premoières pages sont numérotées 2 et évidement j'ai l'En-Tête de suite
qui aparait au dessus de l'En-tête de première page.
Voici mon code qui me sert à bien tout numéroter. Hélas ce code m'a été
conseillé sur ce groupe de discution
et n'y comprenant pas grand'chose, je n'arrive pas à faire marcher tout ça;
Pouvez vous m'aider ?
Merci par avance
Pierre
Option Compare Database
Option Explicit
Dim GrpArrayPage(), GrpArrayPages()
Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
Dim GrpPage As Integer, GrpPages As Integer
Private Sub EntêtePage_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo Fin
Dim i As Integer
If Me.Pages = 0 Then
ReDim Preserve GrpArrayPage(Me.Page + 1)
ReDim Preserve GrpArrayPages(Me.Page + 1)
GrpNameCurrent = Me!CléP_Facture
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
If GrpArrayPage(Me.Page) = 1 Then
Me.EntêtePage.Visible = False
Else
Me.EntêtePage.Visible = True
End If
End If
Fin:
End Sub
Private Sub PiedPage_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo Fin
Dim i As Integer
If Me.Pages = 0 Then
ReDim Preserve GrpArrayPage(Me.Page + 1)
ReDim Preserve GrpArrayPages(Me.Page + 1)
GrpNameCurrent = Me!CléP_Facture
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!PageGroupe = "Edition du " & Format(Date, "d MMMM yyyy") & " - Page "
& GrpArrayPage(Me.Page) & "/" & GrpArrayPages(Me.Page)
End If
GrpNamePrevious = GrpNameCurrent
Fin:
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anor
Bonjour c'est le code de James H Brooks qu'on trouve sur http://www.mvps.org/access/reports/rpt0013.htm
A priori donc il n'y a pas de raison qu'il ne fonctionne pas car un bug aurait été corrigé depuis le temps.
Tu peux commencer par mettre en remarque les lignes on error goto afin de s'assurer que le code ne plante pas chez toi.
Ensuite, pourquoi 50 ok et pas 40.....
Alors pour ne pas te laisser sans solution, tu peux toujours commencer par regarder si quelqu'un d'autre a déjà rencontré ce problème : http://groups.google.fr/groups?q=GrpArrayPage&hl=fr&lr=&ie=UTF-8&oe=UTF-8&scoring=d
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Pierre wrote: | Bonjour à tous | Sous Access 2000 | Je génére en fin de mois une cinquantaine de factures | et elles sont sortent dans un seul état | avec En-tête de facture à chaque En-tête de groupe basé sur | Me!CléP_Facture et numérotation des pages par facture. | J'ai fait des essais sur quelques factures et tout allais bien, | Je suis passé à une quarantaine de facture et là, j'ai des erreurs, | des premoières pages sont numérotées 2 et évidement j'ai l'En-Tête de | suite qui aparait au dessus de l'En-tête de première page. | Voici mon code qui me sert à bien tout numéroter. Hélas ce code m'a | été conseillé sur ce groupe de discution | et n'y comprenant pas grand'chose, je n'arrive pas à faire marcher | tout ça; Pouvez vous m'aider ? | Merci par avance | Pierre | | Option Compare Database | Option Explicit | Dim GrpArrayPage(), GrpArrayPages() | Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant | Dim GrpPage As Integer, GrpPages As Integer | | Private Sub EntêtePage_Format(Cancel As Integer, FormatCount As | Integer) | On Error GoTo Fin | Dim i As Integer | If Me.Pages = 0 Then | ReDim Preserve GrpArrayPage(Me.Page + 1) | ReDim Preserve GrpArrayPages(Me.Page + 1) | GrpNameCurrent = Me!CléP_Facture | 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 | If GrpArrayPage(Me.Page) = 1 Then | Me.EntêtePage.Visible = False | Else | Me.EntêtePage.Visible = True | End If | End If | Fin: | End Sub | | Private Sub PiedPage_Format(Cancel As Integer, FormatCount As Integer) | On Error GoTo Fin | Dim i As Integer | If Me.Pages = 0 Then | ReDim Preserve GrpArrayPage(Me.Page + 1) | ReDim Preserve GrpArrayPages(Me.Page + 1) | GrpNameCurrent = Me!CléP_Facture | 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!PageGroupe = "Edition du " & Format(Date, "d MMMM yyyy") & " - | Page " & GrpArrayPage(Me.Page) & "/" & GrpArrayPages(Me.Page) | End If | GrpNamePrevious = GrpNameCurrent | Fin: | End Sub
Bonjour
c'est le code de James H Brooks qu'on trouve sur
http://www.mvps.org/access/reports/rpt0013.htm
A priori donc il n'y a pas de raison qu'il ne fonctionne pas
car un bug aurait été corrigé depuis le temps.
Tu peux commencer par mettre en remarque les lignes
on error goto
afin de s'assurer que le code ne plante pas chez toi.
Ensuite, pourquoi 50 ok et pas 40.....
Alors pour ne pas te laisser sans solution, tu peux toujours commencer par
regarder si quelqu'un d'autre a déjà rencontré ce problème :
http://groups.google.fr/groups?q=GrpArrayPage&hl=fr&lr=&ie=UTF-8&oe=UTF-8&scoring=d
--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Pierre wrote:
| Bonjour à tous
| Sous Access 2000
| Je génére en fin de mois une cinquantaine de factures
| et elles sont sortent dans un seul état
| avec En-tête de facture à chaque En-tête de groupe basé sur
| Me!CléP_Facture et numérotation des pages par facture.
| J'ai fait des essais sur quelques factures et tout allais bien,
| Je suis passé à une quarantaine de facture et là, j'ai des erreurs,
| des premoières pages sont numérotées 2 et évidement j'ai l'En-Tête de
| suite qui aparait au dessus de l'En-tête de première page.
| Voici mon code qui me sert à bien tout numéroter. Hélas ce code m'a
| été conseillé sur ce groupe de discution
| et n'y comprenant pas grand'chose, je n'arrive pas à faire marcher
| tout ça; Pouvez vous m'aider ?
| Merci par avance
| Pierre
|
| Option Compare Database
| Option Explicit
| Dim GrpArrayPage(), GrpArrayPages()
| Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
| Dim GrpPage As Integer, GrpPages As Integer
|
| Private Sub EntêtePage_Format(Cancel As Integer, FormatCount As
| Integer)
| On Error GoTo Fin
| Dim i As Integer
| If Me.Pages = 0 Then
| ReDim Preserve GrpArrayPage(Me.Page + 1)
| ReDim Preserve GrpArrayPages(Me.Page + 1)
| GrpNameCurrent = Me!CléP_Facture
| 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
| If GrpArrayPage(Me.Page) = 1 Then
| Me.EntêtePage.Visible = False
| Else
| Me.EntêtePage.Visible = True
| End If
| End If
| Fin:
| End Sub
|
| Private Sub PiedPage_Format(Cancel As Integer, FormatCount As Integer)
| On Error GoTo Fin
| Dim i As Integer
| If Me.Pages = 0 Then
| ReDim Preserve GrpArrayPage(Me.Page + 1)
| ReDim Preserve GrpArrayPages(Me.Page + 1)
| GrpNameCurrent = Me!CléP_Facture
| 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!PageGroupe = "Edition du " & Format(Date, "d MMMM yyyy") & " -
| Page " & GrpArrayPage(Me.Page) & "/" & GrpArrayPages(Me.Page)
| End If
| GrpNamePrevious = GrpNameCurrent
| Fin:
| End Sub
Bonjour c'est le code de James H Brooks qu'on trouve sur http://www.mvps.org/access/reports/rpt0013.htm
A priori donc il n'y a pas de raison qu'il ne fonctionne pas car un bug aurait été corrigé depuis le temps.
Tu peux commencer par mettre en remarque les lignes on error goto afin de s'assurer que le code ne plante pas chez toi.
Ensuite, pourquoi 50 ok et pas 40.....
Alors pour ne pas te laisser sans solution, tu peux toujours commencer par regarder si quelqu'un d'autre a déjà rencontré ce problème : http://groups.google.fr/groups?q=GrpArrayPage&hl=fr&lr=&ie=UTF-8&oe=UTF-8&scoring=d
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Pierre wrote: | Bonjour à tous | Sous Access 2000 | Je génére en fin de mois une cinquantaine de factures | et elles sont sortent dans un seul état | avec En-tête de facture à chaque En-tête de groupe basé sur | Me!CléP_Facture et numérotation des pages par facture. | J'ai fait des essais sur quelques factures et tout allais bien, | Je suis passé à une quarantaine de facture et là, j'ai des erreurs, | des premoières pages sont numérotées 2 et évidement j'ai l'En-Tête de | suite qui aparait au dessus de l'En-tête de première page. | Voici mon code qui me sert à bien tout numéroter. Hélas ce code m'a | été conseillé sur ce groupe de discution | et n'y comprenant pas grand'chose, je n'arrive pas à faire marcher | tout ça; Pouvez vous m'aider ? | Merci par avance | Pierre | | Option Compare Database | Option Explicit | Dim GrpArrayPage(), GrpArrayPages() | Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant | Dim GrpPage As Integer, GrpPages As Integer | | Private Sub EntêtePage_Format(Cancel As Integer, FormatCount As | Integer) | On Error GoTo Fin | Dim i As Integer | If Me.Pages = 0 Then | ReDim Preserve GrpArrayPage(Me.Page + 1) | ReDim Preserve GrpArrayPages(Me.Page + 1) | GrpNameCurrent = Me!CléP_Facture | 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 | If GrpArrayPage(Me.Page) = 1 Then | Me.EntêtePage.Visible = False | Else | Me.EntêtePage.Visible = True | End If | End If | Fin: | End Sub | | Private Sub PiedPage_Format(Cancel As Integer, FormatCount As Integer) | On Error GoTo Fin | Dim i As Integer | If Me.Pages = 0 Then | ReDim Preserve GrpArrayPage(Me.Page + 1) | ReDim Preserve GrpArrayPages(Me.Page + 1) | GrpNameCurrent = Me!CléP_Facture | 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!PageGroupe = "Edition du " & Format(Date, "d MMMM yyyy") & " - | Page " & GrpArrayPage(Me.Page) & "/" & GrpArrayPages(Me.Page) | End If | GrpNamePrevious = GrpNameCurrent | Fin: | End Sub
Pierre
Arnaud, Merci pour ton message, hélas, je n'ai pas tout compris ! J'ai bien mis en remarque On Error Goto et le code ne plante pas. Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ? A+ Pierre
Arnaud,
Merci pour ton message, hélas, je n'ai pas tout compris !
J'ai bien mis en remarque On Error Goto et le code ne plante pas.
Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ?
A+
Pierre
Arnaud, Merci pour ton message, hélas, je n'ai pas tout compris ! J'ai bien mis en remarque On Error Goto et le code ne plante pas. Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ? A+ Pierre
Anor
Bonjour,
Pierre wrote: | Arnaud, | Merci pour ton message, hélas, je n'ai pas tout compris ! | J'ai bien mis en remarque On Error Goto et le code ne plante pas. | Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ? | A+ | Pierre
eh bien je ne comprends pas pourquoi à 40 ça planterait, alors que pour compter jusqu'à 50, on passe par 40....mais j'avais mal lu ta question ;-)
je me doutais que le code ne planterait pas, car à la place d'une erreur de numérotation, tu aurais eu une numérotation non réalisée.
donc ce qu'il faudrait que tu identifies c'est : le caractère systématique de l'erreur en fonction du nombre total de pages : 22 ok 23 plante ?
Après, il faudra que tu mettes un point d'arrêt pour faire défiler le code en mode pas à pas, de mon côté, je ne vois pas ce qui cloche.....mais je n'ai rien sous la main pour tester et reproduire le problème....
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Bonjour,
Pierre wrote:
| Arnaud,
| Merci pour ton message, hélas, je n'ai pas tout compris !
| J'ai bien mis en remarque On Error Goto et le code ne plante pas.
| Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ?
| A+
| Pierre
eh bien je ne comprends pas pourquoi à 40 ça planterait, alors que pour compter
jusqu'à 50, on passe par 40....mais j'avais mal lu ta question ;-)
je me doutais que le code ne planterait pas, car à la place d'une erreur de numérotation,
tu aurais eu une numérotation non réalisée.
donc ce qu'il faudrait que tu identifies c'est :
le caractère systématique de l'erreur en fonction du nombre total de pages : 22 ok 23 plante ?
Après, il faudra que tu mettes un point d'arrêt pour faire défiler le code en mode pas à pas,
de mon côté, je ne vois pas ce qui cloche.....mais je n'ai rien sous la main pour tester et
reproduire le problème....
--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Pierre wrote: | Arnaud, | Merci pour ton message, hélas, je n'ai pas tout compris ! | J'ai bien mis en remarque On Error Goto et le code ne plante pas. | Mais que veux dire "Ensuite, pourquoi 50 ok et pas 40 ... " ? | A+ | Pierre
eh bien je ne comprends pas pourquoi à 40 ça planterait, alors que pour compter jusqu'à 50, on passe par 40....mais j'avais mal lu ta question ;-)
je me doutais que le code ne planterait pas, car à la place d'une erreur de numérotation, tu aurais eu une numérotation non réalisée.
donc ce qu'il faudrait que tu identifies c'est : le caractère systématique de l'erreur en fonction du nombre total de pages : 22 ok 23 plante ?
Après, il faudra que tu mettes un point d'arrêt pour faire défiler le code en mode pas à pas, de mon côté, je ne vois pas ce qui cloche.....mais je n'ai rien sous la main pour tester et reproduire le problème....
-- à+ Arnaud -------------------------------------------------- Conseils d'utilisation : http://users.skynet.be/mpfa/ Access Memorandum : http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Pierre
J'ai trouvé la raison du problème ! Le code fonctionne parfaitement, mais en fonction du numéro de page, je plaçais ou ne plaçais pas un en-tête de page (L'en-tête de page ou plus exactement, l'en-tête de suite de page figurait sur les pages supérieures à 1). Cela provoquait une repagination qui perturbait tout le système ! Tout est réparé, c'est le printemps, la vie est belle ! Vive l'informatique Pierre
J'ai trouvé la raison du problème !
Le code fonctionne parfaitement,
mais en fonction du numéro de page,
je plaçais ou ne plaçais pas un en-tête de page
(L'en-tête de page ou plus exactement, l'en-tête de suite de page
figurait sur les pages supérieures à 1).
Cela provoquait une repagination qui perturbait tout le système !
Tout est réparé, c'est le printemps, la vie est belle !
Vive l'informatique
Pierre
J'ai trouvé la raison du problème ! Le code fonctionne parfaitement, mais en fonction du numéro de page, je plaçais ou ne plaçais pas un en-tête de page (L'en-tête de page ou plus exactement, l'en-tête de suite de page figurait sur les pages supérieures à 1). Cela provoquait une repagination qui perturbait tout le système ! Tout est réparé, c'est le printemps, la vie est belle ! Vive l'informatique Pierre
Pierre CFI [mvp]
"Le bonheur c'est parfois peu de choses" Pierre S. écrivain contemporaint Mayennais
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Pierre" <p() a écrit dans le message de news:408b79f0$0$7785$
J'ai trouvé la raison du problème ! Le code fonctionne parfaitement, mais en fonction du numéro de page, je plaçais ou ne plaçais pas un en-tête de page (L'en-tête de page ou plus exactement, l'en-tête de suite de page figurait sur les pages supérieures à 1). Cela provoquait une repagination qui perturbait tout le système ! Tout est réparé, c'est le printemps, la vie est belle ! Vive l'informatique Pierre
"Le bonheur c'est parfois peu de choses"
Pierre S.
écrivain contemporaint Mayennais
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Pierre" <p()foucaud@hotmail.com> a écrit dans le message de news:408b79f0$0$7785$7a628cd7@news.club-internet.fr...
J'ai trouvé la raison du problème !
Le code fonctionne parfaitement,
mais en fonction du numéro de page,
je plaçais ou ne plaçais pas un en-tête de page
(L'en-tête de page ou plus exactement, l'en-tête de suite de page
figurait sur les pages supérieures à 1).
Cela provoquait une repagination qui perturbait tout le système !
Tout est réparé, c'est le printemps, la vie est belle !
Vive l'informatique
Pierre
"Le bonheur c'est parfois peu de choses" Pierre S. écrivain contemporaint Mayennais
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer http://users.skynet.be/mpfa/ Site perso http://access.cfi.free.fr "Pierre" <p() a écrit dans le message de news:408b79f0$0$7785$
J'ai trouvé la raison du problème ! Le code fonctionne parfaitement, mais en fonction du numéro de page, je plaçais ou ne plaçais pas un en-tête de page (L'en-tête de page ou plus exactement, l'en-tête de suite de page figurait sur les pages supérieures à 1). Cela provoquait une repagination qui perturbait tout le système ! Tout est réparé, c'est le printemps, la vie est belle ! Vive l'informatique Pierre