Appeler une procédure avec des variables

Résolu
laurent92370 Messages postés 70 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 20 mars 2007 - 28 avril 2005 à 15:01
laurent92370 Messages postés 70 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 20 mars 2007 - 28 avril 2005 à 15:36
Bonjour :



Voici 2 procédures : A & B. La procédure A lance la procédure B contenue dans le module AffichageDetails





Afin d'éviter 3 000 000 de lignes de code à saisir, je voudrais que la procédure A contienne des variables utilisées par la procédure B.


Exemple :


On rajoute dans la Procédure A : nom de la requête, la catégorie, le produit et le nom d'un label du form ENCOURS (en rouge dans la procédure B)





Comme ça ma procédure B serait 'universelle' et saisie une seule fois.





Procédure A :





Private Sub vgfo_Click()
AffichageDetails.vgfo
End Sub








Procédure B :





Public Function vgfo()





On Error GoTo erreur
Set db = OpenDatabase(App.Path & "" & "botv.mdb")
Compteur = ""
DeleteTmpTable.delete_visu
For Each query In db.QueryDefs
If query.Name = " A_R_VG_FRONT " Then Nom requete
Compteur = 1
GoTo suite
Else
Compteur = 0
End If
Next query





suite:
If Compteur = 1 Then
DeleteTmpTable.delete_visu
query.Execute
Else
MsgBox "Requête " & query.Name & " introuvable !", vbOKOnly + vbCritical, "Erreur"
End If





Set rst = db.OpenRecordset("VISU")
DETAIL.Grille.Clear
DETAIL.Grille.Cols = 6
DETAIL.Grille.FixedCols = 0
DETAIL.Grille.FixedRows = 0
DETAIL.Grille.ColWidth(0) = 730
DETAIL.Grille.ColWidth(1) = 3600
DETAIL.Grille.ColWidth(2) = 1800
DETAIL.Grille.ColWidth(3) = 1600
DETAIL.Grille.ColWidth(4) = 5000
DETAIL.Grille.ColWidth(5) = 200





DETAIL.produit.Text = " V.G." Produit
DETAIL.categorie.Text = "FRONT-OFFICE" Catégorie
DETAIL.qt.Text = EnCours.vgfo label du form encours





rst.MoveFirst
Do Until rst.EOF
DETAIL.Grille.AddItem rst!etab & Chr(9) & rst!nom & Chr(9) & rst![Call Reference] & Chr(9) & rst!category & Chr(9) & rst![Problem Summary] & Chr(9) & rst!priority
rst.MoveNext
Loop





ColorationGrille





Unload EnCours
DETAIL.Show





Exit Function
erreur:
MsgBox "Une erreur est survenue. Veuillez contacter votre administrateur.", vbOKOnly + vbCritical, "Attention !"
Close #99
Open (App.Path & "\errlog.txt") For Append As #99
Print #99, "ANOMALIE BOTV / Module AffichageDetails / vfbo : " & Date
Print #99, ""
Print #99, "Erreur n° : " & Err.Number
Print #99, "Description : " & Err.Description
Print #99, ""
Close #99
erreur.traitement_erreur





End Function

Merci de votre aide

2 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
28 avril 2005 à 15:10
Public sub vgfo(byval nomReq as string, byval Produit as string, byval Categorie as string)


On Error GoTo erreur
Set db = OpenDatabase(App.Path & "" & "botv.mdb")
Compteur = ""
DeleteTmpTable.delete_visu
For Each query In db.QueryDefs
If query.Name = nomReq Then
Compteur = 1
GoTo suite
Else
Compteur = 0
End If
Next query
'etc ...
'etc ...
End Sub

Et dans la Sub A, pour l'appel ca donnera ...


Private Sub vgfo_Click()
AffichageDetails.vgfo "A_r_VG_FRONT","V.G.","FRONT OFFICE"
AffichageDetails.vgfo "Autre requete","Autre produit","Autre catégorie"
' etc ...
' etc ...
End Sub

Christophe R
3
laurent92370 Messages postés 70 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 20 mars 2007 1
28 avril 2005 à 15:36
Merci Crenaud76, c'était si simple, j'ai bien noté ça dans un coin de ma tête !
0
Rejoignez-nous