Problème macro access

Fermé
PATRICE_OISE Messages postés 5 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 8 novembre 2009 - 6 nov. 2009 à 22:22
 mohammed - 23 avril 2010 à 20:22
Bonjour,

J'ai créé un formulaire sur access 2007 basé sur une table à trois colonnes. Il s'agit d'un formulaire en mode "continue" Je souhaiterais par une macro, affecter une valeur à un champs mais que cette valeur soit dépendante de la valeur d'un autre champs (en introduisant une condition dans la macro) Cà je maitrise

Mais ma question est : comment faire pour que la mise à jour de la valeur se fasse sur TOUTES les lignes du formulaire et non sur la première seulement ?

Merci pour vos réponses
A voir également:

6 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
7 nov. 2009 à 14:17
bonjour que ve tu faire exactement on pourra transformer ta macro en code vba
0
PATRICE_OISE Messages postés 5 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 8 novembre 2009
7 nov. 2009 à 17:42
Salut,

Sans rentrer trop dans les détails, il s'agit d'un sous formulaire dans lequel j'ai une case à cocher de type oui/non. Une requête ne peut pas fonctionner car je dois pouvoir la décocher.
Disons que suivant la valeur d'une case dans le formulaire père, une série de case doit être cochée en oui (ou en non) dans le sous formulaire automatiquement. MAIS on doit pouvoir modifier sa valeur

J'éspère que c'est compréhensible
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 11:30
bonjour


Quelque chose comm ca pourrais surement t aider:*

tu creer un bouton sur ton formulaire et derriere tu met:



Dim dbs As Database
Dim ... As Recordset 'remplace les ... par le nom du champ que tu veu verifier
Set dbs = CurrentDb
Set ...= dbs.OpenRecordset("ici le nom de ta table", dbOpenTable)


Recordset.MoveFirst
While Not Recordset.EOF
Recordset.MoveNext
If Me.... = "ta condition que tu veux verifier" Then la les ... correspondent a ce du haut

ta case a cocher = true

Else: ta case a cocher = false


End If



Wend

je pense que c ce que tu recherche si besoin hesite pas
0
PATRICE_OISE Messages postés 5 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 8 novembre 2009
8 nov. 2009 à 12:43
Merci pour ta réponse. Je suis sur que la solution est là

J'ai adapté de la façon suivante :

Private Sub Commande32_Click()
On Error GoTo Err_Commande32_Click

Dim dbs As Database
Dim N°adresse As Recordset
Set dbs = CurrentDb
Set N°adresse = dbs.OpenRecordset(definircontacts, dbOpenTable)

Recordset.MoveFirst
While Not Recordset.EOF
Recordset.MoveNext
If Me!N°adresse = Me!rappeladresse Then

Validation = True
Else: Validation = False

End If

End Sub


Mais çà ne marche pas. Je dois faire des erreurs dans la rédaction mais je manipule très mal le VBA

en synthèse, dans la requête "définir contact" j'ai un champs "N°adresse" qui doit être identique à un champs texte "rappeladresse" du formulaire pour que la case à cocher "validation" soit définie comme vraie.

Peux tu me dépanner sur la rédaction du code ? je pense que l'erreur se situe dans le début du code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
8 nov. 2009 à 12:58
re

alors apres le end if il manque le le wend

il manque les " " entre le nom de ta requete "definircontacts",dbopendynaset

et aussi vu que c une requete que tu utilise et non une table le type est dynamique dc : dbopendynaset comme je te l ai indiqué ci desssus

essai en modifiat ca deja si cela ne vas tjs pas on essaira en modifiant tes " if "
0
Salut,
en corrigeant quelques lignes
Private Sub Commande32_Click()
On Error GoTo Err_Commande32_Click

Dim dbs As DAO.Database
dim rst as DAO.Recordset
Set dbs = CurrentDb
Set rst= dbs.OpenRecordset("nom_tble du sous-formulaire fils", dbOpendynaset)
rst.MoveFirst
While Not rst.EOF
If rst![nom_champ en commun_table fils] = Me.nom_champ_communpère Then
Validation = True
Else: Validation = False
End If
rst.MoveNext
wend
End Sub
j'espère vous avoir aider.
Bonne chance.
Merci.
0