MS Access et VBA

Fermé
Tilk - 10 mars 2008 à 08:34
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 11 mars 2008 à 14:43
Bonjour,
je suis enteint de contruire une petite appli de gestion sous Ms Access mais j'ai un probleme. sur un formulaire.
Je sais faire une comparaison (test) entre une valeur entré dans une zone de texte du formulaire et une constante (valeur fixe).
mais j ne sais pas comparer cette valeur entrée sur le formulaire avec une valeur se trouvant dans une table donnée !!!
j'ai besoin de votre aide pour y arriver s'il vous plait

merci
Tilk

7 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
10 mars 2008 à 10:54
Est ce que la valeur avec laquelle tu veux comparer la nouvelle se trouve dans le même enregistrement de la même table, ou dans une autre table?

Dans le premier cas, c'est simple (Par exemple DatePaiement>DateEchéance), sinon tu dois utiliser la fonction RechDom. Tu connais?
1
Slt LatelyGeek

j n conais pas la fonction RechDom mais j pourais regarder l'aide dessu !

par rapport aux valeurs, la premiere se trouve dans une table et la segonde est saisie dans un formulaire par un utilisateur mon systeme devrait comparer les deux valeurs et au cas ou elle sont identique ouvrir un autre formulaire.

j'espere que vous voyez un peu ce que je veux avoir

Tilk
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
10 mars 2008 à 15:12
Quelle est la valeur dans la table? Je veux dire, cette table contient-elle plusieurs enregistrements, ou un seul? Et si elle en contient plusieurs, avec la valeur de quel enregistrement de cette table faut-il faire la comparaison?

Je vais essayer de donner un exemple pour bien me faire comprendre:

Soit on a une table "Constantes" qui ne contient qu'un seul enregistrement avec par exemple UN taux horaire.

A ce moment là, on peut écrire sur la propriété Après MAJ du champ de formulaire

If Me!NomDuChamp.Value = DLookUp("TauxHoraire","Constantes") Then DoCmd.OpenForm "NomDuFormulaire"

Par contre, si la table contient plusieurs enregistrements il faut aussi remplir l'argument Critère de la fonction DLookUp (RechDom en français) pour savoir avec QUELLE valeur il faut faire la comparaison. Si par exemple il y avait plusieurs taux horaires en fonction du statut de la personne:
If Me!NomDuChamp.Value = DLookUp("TauxHoraire","Constantes","Statut=Me!Statut.Value")) Then...

J'espère avoir été claire...
0
Oui LatelyGeek
C'est exactement ce que je veux la premiere solution! mais seulement j n sais pas si la table que j'ai creer est une constante (c'est à dire si elle ne permet pas d'ajouter des enregistrement) comment faire pour la rendre constante ?

S'il vous plait une autre préocupation: dans le code que vous avez envoyé , "TauxHoraire" represente la table et "Constantes" le champ de la table c'est bien ca ?

Merci
Tilk
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
10 mars 2008 à 16:32
...dans le code que vous avez envoyé , "TauxHoraire" represente la table et "Constantes" le champ de la table c'est bien ca ?

Non, le contraire.

La table n'est pas "constante". Elle contient juste des champs de données relativement invariables et ne dépendant pas d'autres valeurs. On peut y rajouter des enreghistrements si on le souhaite. Généralement, ça fait l'affaire...
0

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

Posez votre question
LatelyGeek
Merci pour ton assistance ca a marché c'est exactement ce je j voulais.
j'ai un peu modifié le code que tu m'a envoyé et ca a marché !

Merci encore et bonne soirée

Tilk
0
LatelyGeek

Bonjour j'ai une autre petite preocupation: je voudrait afficher un message d'erreur personalisé en cas ou l'action du "if" c'est pas respecté!
en clair j'ai ceci

If Me!NomDuChamp.Value = DLookUp("TauxHoraire","Constantes") Then
DoCmd.OpenForm "NomDuFormulaire"

else
( comment afficher un message box ici)

endif
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
11 mars 2008 à 14:43
Else MsgBox "Ton message d'erreur"

End if


Ca, c'est la syntaxe la plus simple de la MsgBox. Il y aura juste un bouton "OK". On peut faire plus perfectionné avec plusieurs boutons (Oui, non, annuler etc, et des actions différentes en fionction du clic de l'utilisateur, mais si tu veux juste un message cette syntaxe-là suffit.
0