keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention 5 avril 2006
-
9 juil. 2004 à 11:20
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDerniè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
cs_cortomaltez
Messages postés4Date d'inscriptionvendredi 10 décembre 2004StatutMembreDerniè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
keiko11245
Messages postés48Date d'inscriptionlundi 1 septembre 2003StatutMembreDerniè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