Hum, un truc qui me titille, tu utilises un coup du code VBa un coup les objets access.
Pour garder une vue globale, soit tu fais 100% soit 100% l'autre, conseil de developpeur
Hum, un truc qui me titille, tu utilises un coup du code VBa un coup les objets access.
Pour garder une vue globale, soit tu fais 100% soit 100% l'autre, conseil de developpeur
Je suppose que tu parles des macros, oui j'ai changé les macro ouvrir formulaire par le code VBA :
mais ça continue encore et encore, ... et ce n'est que le début d'accord d'accord ? A croire que je ferais mieux de chanter que de faire de l'Access
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub BtnAjout_Click() SetParam "IDEntree", 0 DoCmd.OpenForm "FmEntree", acNormal End Sub Private Sub BtnAjoutVehicule_Click() SetParam "IDGestVehicule", 0 DoCmd.OpenForm "FmGestVehicule", acNormal End Sub Private Sub BtnAttribuerVehicule_Click() SetParam "IDVehicule", 0 DoCmd.OpenForm "FmVehicules", acNormal End Sub Private Sub BtnMvt_Click() SetParam "IDMvt", 0 DoCmd.OpenForm "FmMvt", acNormal End Sub
D'où viens ce foutu bogue ?
C'est simple je me suis basé sur la TbMvt et le code que tu avais fais mais hormis ton code rien ne marche
Après le clic d'insert, je preconise:
- de fermer systematiquement le formulaire
- de mettre a jour les sous formulaires de ton formulaire accueil.
Très bien, après le clique je fais un "DoCmd.Close" mais pour rafraichir les sous formulaires ça ne marche tjrs pas non plus, comment ferais tu ? :
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Sub BtnModif_Click() Dim RS As New ADODB.Recordset Dim strSQL As String Dim IDEntree As Double 'on modifie le mouvement en cours IDEntree = GetParam("IDEntree") strSQL = "SELECT * FROM TbEntree WHERE IDEntree=" & IDEntree RS.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic RS.Fields("DateEntree") = Me.zdtDateEntree RS.Fields("Qte") = Me.zdtQte RS.Update RS.Close DoCmd.Close acForm, Me.Name End Sub '*************************************************************************************** ' Author : Jean-Philippe ANDRÉ (Jpcheck) '*************************************************************************************** ' ' This sub requeries a specific control form a specific form, when this form is loaded ' '*************************************************************************************** '* PARAMETERS * '*************************************************************************************** ' strFormName: define the form ' strControlName: define the control ' Sub UpdateControl(strFormName As String, strControlName As String) If CurrentProject.AllForms(strFormName).IsLoaded Then Forms("SFmEntree").Requery End If End Sub
C'est dommage que tu changes mon code pour le rendre moins efficace
laisse le comme ceci au pire
et appelle la fonction avant de fermer le second formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub UpdateControl(strFormName As String) If CurrentProject.AllForms(strFormName).IsLoaded Then Forms(strFormName).Requery End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 RS.Close UpdateControls("FrmAccueil") DoCmd.Close acForm, Me.Name
oos j'ai du mal interreter ton opst 6
Je corrigerais ds demain matin
Bonjour Jean Philippe,
Je comprends pas
Ce code je le place en tête de chaque formulaire ou seulement dans le formulaire "FmAccueil" ?Et j'appele cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub UpdateControl(strFormName As String) If CurrentProject.AllForms(strFormName).IsLoaded Then Forms(strFormName).Requery End If End Subdans le formulaire que j' ouvre à chaque fin comme ici ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 RS.Close UpdateControls("FrmAccueil") DoCmd.Close acForm, Me.Name
Ce code là serait correcte ? Car j'ai essayé et c'était pas une réussite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub BtnModif_Click() Dim RS As New ADODB.Recordset Dim strSQL As String Dim IDMvt As Double 'on modifie le mouvement en cours IDMvt = GetParam("Idmvt") strSQL = "SELECT * FROM TbMvt WHERE IDMvt=" & IDMvt RS.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic RS.Fields("Datesortie") = Me.zdtDatesortie RS.Fields("Beneficiaire") = Me.zdlBeneficiaire RS.Fields("CompteurA") = Me.zdtCompteurA RS.Fields("CompteurD") = Me.zdtCompteurD RS.Fields("PompeD") = Me.zdtPompeD RS.Fields("PompeA") = Me.zdtPompeA RS.Update RS.Close UpdateControls("FrmAccueil") DoCmd.Close acForm, Me.Name End Sub
Cordialement
Je ne me suis pas trompé dans le code qq par, c'est bien comme cela qu'il fallait faire ?
Car tel que ça me donne une erreur :Erreur de compilation : Sub ou fonction non définie.
tu as mal écirt le nom d ela fonction ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part UpdateControls("FrmAccueil")
Arff pfff c'est ça les copiés collés
Mais même comme cela :J'ai la même erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UpdateControls ("FmAccueil") DoCmd.Close acForm, Me.Name
tu as un S de trop hein, il ne manquait pas un s
tache de prendre un peu de recul sur ton code, ca peut aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sub UpdateControl(strFormName As String)
J'ai
Et
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sub UpdateControls(strFormName As String)
Mais quoi qu'il en soit jai 'essayé ainsi et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UpdateControls ("FmAccueil") DoCmd.Close acForm, Me.Name
Et
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sub UpdateControl(strFormName As String)
Et j'ai le même message d'erreur, j'essaie de prendre comme tu dis du recule mais là je comprends rien sérieux je m'y perd ou est l'erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UpdateControl ("FmAccueil") DoCmd.Close acForm, Me.Name
fais avancer ton code en mode pas à pas (F8), ca tindiquera exactement la ligne où ca plante
J'ai bien vu oui mais je comprends pas ce qu'elle me veux cette erreur, dans le formulaire "FmAccueil" J'ai seulement :
Et mon appel se fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 '*************************************************************************************** ' Author : Jean-Philippe ANDRÉ (Jpcheck) '*************************************************************************************** ' ' This sub requeries a specific control form a specific form, when this form is loaded ' '*************************************************************************************** '* PARAMETERS * '*************************************************************************************** ' strFormName: define the form ' strControlName: define the control ' Sub UpdateControl(strFormName As String) If CurrentProject.AllForms(strFormName).IsLoaded Then Forms(strFormName).Requery End If End Sub Private Sub BtnAjout_Click() SetParam "IDEntree", 0 DoCmd.OpenForm "FmEntree", acNormal End Sub Private Sub BtnAjoutVehicule_Click() SetParam "IDGestVehicule", 0 DoCmd.OpenForm "FmGestVehicule", acNormal End Sub Private Sub BtnAttribuerVehicule_Click() SetParam "IDVehicule", 0 DoCmd.OpenForm "FmVehicules", acNormal End Sub Private Sub BtnMvt_Click() SetParam "IDMvt", 0 DoCmd.OpenForm "FmMvt", acNormal End Sub
Et j'ai l'erreur comme sur l'image jointe, il n'y a pas de " S " nul part, et même avec un " S " à "UpdateControl ( s )" il me donne la même erreur je comprend s vraiment pas, dit moi ce que je ne vois pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub BtnModif_Click() Dim RS As New ADODB.Recordset Dim strSQL As String Dim IDMvt As Double 'on modifie le mouvement en cours IDMvt = GetParam("Idmvt") strSQL = "SELECT * FROM TbMvt WHERE IDMvt=" & IDMvt RS.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic RS.Fields("Datesortie") = Me.zdtDatesortie RS.Fields("Beneficiaire") = Me.zdlBeneficiaire RS.Fields("CompteurA") = Me.zdtCompteurA RS.Fields("CompteurD") = Me.zdtCompteurD RS.Fields("PompeD") = Me.zdtPompeD RS.Fields("PompeA") = Me.zdtPompeA RS.Update RS.Close UpdateControl ("FmAccueil") DoCmd.Close acForm, Me.Name End Sub
enlève les parentheses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UpdateControl "FmAccueil"
Elementaire, tu ne déclares pas ta procédure avec la bonne portée
Le mieux reste de faire une module commun à toutes ses fonctions et des les déclarer en Public
Comment ça la bonne portée, la je te jures tu me parles chinois
Expliques moi l'histoire du module ...
Bon ben va falloir lire un peu nos tutos avant de dormir ce we
http://heureuxoli.developpez.com/off...ll/?page=page5
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager