{Access} renseigner nom table et champ en VBA

Résolu/Fermé
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 - 3 déc. 2009 à 14:08
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 - 4 déc. 2009 à 09:32
Bonjour à tous,

Voici ma question :
Pouvez-vous me donner la synthaxe pour renseigner le nom d'un d'une table dans du code VBA.
Je m'explique :
J'ai besoin de vérifier si la valeur rentrée dans une textbox n'existe pas déjà dans une cham d'une table.

Ce serait un truc du genre :

Private Sub copie_seq_Click()

If Textbox.Value = [Nom_Table]![Nom_Champ] then
DoCmd.CancelEvent
End If

Je ne connais pas la synthaxe de ce que j'ai mis en gras.

Quelqu'un peut-il m'aider ??

Merci à vous

SliverPopop

12 réponses

blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
3 déc. 2009 à 15:54
Salut,

ca ne marchera pas, tu ne vas pas tester la valeur du champ avec le contenu de la table, mais tu vas tester si la valeur du champ possède le même nom qu'un champ...

Ce qu'il te faut dans ce cas, c'est utiliser la fonction dlookup. Regarde l'aide à ce sujet et reviens nous voir si tu n'as pas tout compris...
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
3 déc. 2009 à 15:56
Merci de ta réponse, Je regardes ça et je reviens vous voir si ya quelque chose qui coince.

A+
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
3 déc. 2009 à 16:03
J'ai l'impression que cette fonction ne répond pas totalement à mes besoins.
Je souhaiterai que lorsque je clic sur le bouton, il vérifie si la valeur de la textbox n'existe pas dans une de mes tables, et si c'est le cas, il stop l'action engagée par le clic sur le bouton.

Merci de votre aide
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
3 déc. 2009 à 16:12
Dans une seule table et un seul champ de cette table ?
0

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

Posez votre question
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
3 déc. 2009 à 16:51
Oui en effet.
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
3 déc. 2009 à 19:47
Un truc comme ça devrait faire l'affaire :

If Not IsNull(DLookup("champ", "table", "champ = '" & textbox.Value & "'")) Then
    MsgBox "trouvé"
End If
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
4 déc. 2009 à 08:15
Salut,

Merci, ça marche parfaitement, maintenant jer souhaiterai annuler l'action commencée par le clic du bouton.
Ce n'est pas DoCmd.CancelEvent, qu'est ce donc alors ??? ^^

SliverPopop
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
4 déc. 2009 à 08:31
La macro 'annuler événement ' ne fonctionne pas non plus...
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
4 déc. 2009 à 08:56
C'est quoi qui a déjà été fait ?
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
4 déc. 2009 à 09:25
Voici le code du bouton (pas très long) :

Private Sub copie_seq_Click()

If Not IsNull(DLookup("Part_Number", "Machine", "Part_Number = '" & New_PN.Value & "'")) Then
MsgBox "trouvé"
End If

DoCmd.OpenQuery "Ajout_PN"
DoCmd.OpenQuery "Ajout_PN_mach"
DoCmd.OpenQuery "afficher_seq"
DoCmd.OpenQuery "afficher_seq_mach"
Me.Recalc


End Sub

Je souhaite annuler les 'DoCmd.OpenQuery' si New_PN.value est dans le champ Part_Number de la table Machine.
Aurais-tu une idée ?
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
4 déc. 2009 à 09:30
Rien n'a été fait, donc rien n'est à annuler, il faut juste quitter la procédure.
If Not IsNull(DLookup("Part_Number", "Machine", "Part_Number = '" & New_PN.Value & "'")) Then
    Exit sub
End If 

Tout simplement...
0
sliverpopop Messages postés 924 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 6 janvier 2010 77
4 déc. 2009 à 09:32
Oh pinaize bien sur, merci. Problème réglé.

Merci encore.
Je mets ce post en résolu.

A+
SliverPopop
0