Sous formulaire non mis à jour après vb acces
nromain87
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je réalise un formulaire dans lequel on va donner la répartition des salariés par CSP dans chaque quartier d'une ville. On choisit la CSP (Ouvrier, employé, cadre ...) désirée, et une procédure événementielle vb après mise à jour de la zone de liste permet de modifier la requête nommée ECSPTousBassins.
Voici le code VB :
Private Sub ListeCSP_AfterUpdate()
Dim chaineSQL As String
Dim i As Integer
chaineSQL = "SELECT B.nomBassin AS Secteur," & Me("ListeCSP") & ",
Sum(1)/Sum(D.BCsC+D.BCs4+D.BCs5+D.BCs6+D.BTypeA) AS " & Me("ListeCSP") & " FROM DADS AS D, Bassins as B, IRIS AS I WHERE B.numBassin=I.numBassin AND I.IRIS=D.IRIS GROUP BY B.nomBassin;"
'Enregistrement de la chaîne dans la requête
CurrentDb.QueryDefs("ECSPTousBassins").SQL = chaineSQL
'Mise à jour du résultat
Me!Resultat.Requery
End Sub
Tout se passe bien, hormis que la requête affichée dans le formulaire en tant que sous formulaire ne se met pas à jour malgré le Me!Resultat.Requery. Pourtant, quand j'éxécute la requete hors formulaire, elle est bien mise à jour.
Comment régler ce problème ?
Merci d'avance, Romain N
Je réalise un formulaire dans lequel on va donner la répartition des salariés par CSP dans chaque quartier d'une ville. On choisit la CSP (Ouvrier, employé, cadre ...) désirée, et une procédure événementielle vb après mise à jour de la zone de liste permet de modifier la requête nommée ECSPTousBassins.
Voici le code VB :
Private Sub ListeCSP_AfterUpdate()
Dim chaineSQL As String
Dim i As Integer
chaineSQL = "SELECT B.nomBassin AS Secteur," & Me("ListeCSP") & ",
Sum(1)/Sum(D.BCsC+D.BCs4+D.BCs5+D.BCs6+D.BTypeA) AS " & Me("ListeCSP") & " FROM DADS AS D, Bassins as B, IRIS AS I WHERE B.numBassin=I.numBassin AND I.IRIS=D.IRIS GROUP BY B.nomBassin;"
'Enregistrement de la chaîne dans la requête
CurrentDb.QueryDefs("ECSPTousBassins").SQL = chaineSQL
'Mise à jour du résultat
Me!Resultat.Requery
End Sub
Tout se passe bien, hormis que la requête affichée dans le formulaire en tant que sous formulaire ne se met pas à jour malgré le Me!Resultat.Requery. Pourtant, quand j'éxécute la requete hors formulaire, elle est bien mise à jour.
Comment régler ce problème ?
Merci d'avance, Romain N
A voir également:
- Sous formulaire non mis à jour après vb acces
- Whatsapp formulaire opposition - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Formulaire de réclamation facebook - Guide
2 réponses
Bonjour nromain87,
Sous ACCESS 2000 la syntaxe suivante produit l'effet recherché.
Me.Refresh
ou bien
Forms![<Nom du formulaire>].Refresh
En manuel, il me semble que MAJ+F9 a le même effet (a vérifier)
Cordialement
Sous ACCESS 2000 la syntaxe suivante produit l'effet recherché.
Me.Refresh
ou bien
Forms![<Nom du formulaire>].Refresh
En manuel, il me semble que MAJ+F9 a le même effet (a vérifier)
Cordialement
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je suppose que le formulaire Resultat est associé à la requête nommée ECSPTousBassins.
J'imagine que, si tu modifies la requête, il faut modifier aussi le formulaire.
Je ne suis pas du tout certain de la syntaxe, mais je me demande si il ne faut pas faire
Me!Resultat.rowsource=ECSPTousBassins
Si cela marche, à quoi sert la requête ECSPTousBassins ? Ne serait-il pas plus simple de faire directement
Me!Resultat.rowsource=chaineSQL ,
et de laisse tomber toute la logique autour de ECSPTousBassins ?
Je pense que tout cela est inutilement compliqué, et qu'il n'est pas nécessaire de modifier la requête. Access devrait pouvoir facilement modifier dynamiquement le formulaire quand tu sélectionnes ListeCSP. Je n'ai pas le temps de chercher un exemple, pour l'instant...
J'imagine que, si tu modifies la requête, il faut modifier aussi le formulaire.
Je ne suis pas du tout certain de la syntaxe, mais je me demande si il ne faut pas faire
Me!Resultat.rowsource=ECSPTousBassins
Si cela marche, à quoi sert la requête ECSPTousBassins ? Ne serait-il pas plus simple de faire directement
Me!Resultat.rowsource=chaineSQL ,
et de laisse tomber toute la logique autour de ECSPTousBassins ?
Je pense que tout cela est inutilement compliqué, et qu'il n'est pas nécessaire de modifier la requête. Access devrait pouvoir facilement modifier dynamiquement le formulaire quand tu sélectionnes ListeCSP. Je n'ai pas le temps de chercher un exemple, pour l'instant...