Sous formulaire non mis à jour après vb acces

nromain87 -  
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
A voir également:

2 réponses

Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
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
0
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...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
En fait, il est possible de lier le sous formulaire avec le formulaire principal. Dans ce cas-là, la sélection se fera automatiquement.
0