HELP HELP Etat Access

keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006 - 9 juil. 2004 à 11:20
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006 - 4 juil. 2005 à 11:22
Voilà mon problème :
J'ai un etat dans access correspondant au CV d'une personne. Ce que je dois faire c'est imprimer les CV d'un certain nombre de personnes. Bon ca j'y arrive, mais maintenant il faut que je fasse des apercus des CV et c'est l'utilisateur qui va imprimer. Et ca, ca va pas. En fait j'arrive pas à faire attendre mon programme le temp qu'on faut pour que l'utilisateur imprime le CV.

Je sais pas si c'est bien clair.

Autrement dis : J'ai un etat pour mes CV, J'ai les liste des personnes dont je dois imprimer le CV. Mon programme affiche le CV de la première personne et doit attendre que l'utilisateur l'est fermer (ou imprimer) pour afficher le suivant.

Voila

Si vous avez une idée

Merci d'avance

PS : Voici mon code, pour le moment il ouvre l'etat, attend 5 seconde et le ferme (Pause est une fonction que j'ai fait)

For i = 0 To UBound(liste) - 1
MsgBox liste(i)
num_courant = liste(i)
DoCmd.OpenReport nomEtat, acViewPreview, , "Num_Personne = " + liste(i)
Pause (5)
DoCmd.Close acReport, nomEtat
Next i

2 réponses

cs_cortomaltez Messages postés 4 Date d'inscription vendredi 10 décembre 2004 Statut Membre Dernière intervention 4 juillet 2005
4 juil. 2005 à 11:00
bon c'est un peu tard mais si ça peut servir à qqun d'autre, j'utilise juste ce code (le code reprend apres l'affichage de la preview de l'impression d'access):

Public Function imprime_nom_ETAT(ByVal util As Long) As Boolean
'///////////////////////////////////////////////////////////////////////////
'INSTANCIATION DE LA CLASSE ACCESS
Dim MaDbMat As String
Dim MesEtats As Access.Application

MaDbMat = "string_de_la_base.mdb"
Set MesEtats = New Access.Application
MesEtats.OpenCurrentDatabase MaDbMat, False
'''Pour prévisualiser un état en mode plein écran :
MesEtats.Visible = True
MesEtats.DoCmd.OpenReport "nom_ETAT", acViewPreview, "nom_ETAT", "util =" & util, acWindowNormal
MesEtats.DoCmd.Maximize
'''(affichage de l'aperçu)
MesEtats.DoCmd.close 3, "nom_ETAT"
MesEtats.CloseCurrentDatabase

Set MesEtats = Nothing
'///////////////////////////////////////////////////////////////////////////
End Function
0
keiko11245 Messages postés 48 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 5 avril 2006
4 juil. 2005 à 11:22
Merci pour la réponse, en fait j'ai trouve une autre solution plus simple dans mon cas, j'affiche tous mes CV dans le même état.

Et j'ai trouvé un bout de code pour gérer les numéro de pages pour que chaque CV est sa propre numérotation de page.

voilà la demarche, si ca intéresse quelqu'un :
il faut créer une table Category_Group_Pages avec deux champs, le premier correspond à la clé de chaque itération ( ici c'est la personne), le deuxième correspondant au nombre de pages pour cette itération.

Après tout se fait dans l'état :
il faut créer une variable globale à l'état
Dim GrpPages As Object


puis faire ces différentes fonctions :

Private Sub EntêteGroupe1_Format(Cancel As Integer, FormatCount As Integer)
'Set page number to 1 when a new group starts.
Page = 1
End Sub


'cette fonction vous donne le nombre de page du groupe en cours
Function GetGrpPages() As Integer
'Find the group name.
GrpPages.Seek "=", Me![Num_Personne]
If Not GrpPages.NoMatch Then
GetGrpPages = GrpPages![Page_Number]
End If
End Function


Private Sub Report_Open(Cancel As Integer)
DoCmd.RunSQL "Delete * From [Category_Group_Pages];"

Set GrpPages = CurrentDb.OpenRecordset("Category_Group_Pages", DB_OPEN_TABLE)
GrpPages.index = "PrimaryKey"
End Sub


Private Sub ZonePiedPage_Format(Cancel As Integer, FormatCount As Integer)
'Find the group.
GrpPages.Seek "=", Me![Num_Personne]
If Not GrpPages.NoMatch Then
'The group is already there.
If GrpPages![Page_Number] < Me.Page Then
GrpPages.Edit
GrpPages![Page_Number] = Me.Page
GrpPages.Update
End If
Else
'This is the first page of the group. Therefore, add it.
GrpPages.AddNew
GrpPages![Num_Personne] = Me![Num_Personne]
GrpPages![Page_Number] = Me.Page
GrpPages.Update
End If
End Sub

voilà si c'est pas clair je peux expliquer plus

Ah l'informatique c'est bien quant même quand ça marche
0
Rejoignez-nous