OVH Cloud OVH Cloud

Macro pour avertir q'un doublon a été saisie

8 réponses
Avatar
Morbus
Bonjour,
Ne connaissant rien au VBA, je souhaiterais faire une=20
macro qui m'informerait que la valeur saisie dans mon=20
formulaire est d=E9ja pr=E9sente dans la table.=20
Merci

8 réponses

Avatar
3stone
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les apostrophes)

if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp & "'")>0 Then
Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas où...
ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
Morbus
Je saisi ca ou? Je ne comprend pas.

-----Message d'origine-----
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les apostrophes)

if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp
& "'")>0 Then

Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas où...
ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.



Avatar
gafish
Dans ton formulaire tu as une zone de saisie, celle justement que tu veux
contrôler. En cliquant sur celle ci et en allant dans les propriétés, dans
l'onglet evenement, tu as "Avant MAJ", là tu cliques sur les "..." et tu
choisis générateur de code. Tu colles le code de 3stone dans la fenêtre qui
va s'ouvrir, entre le "private sub...." et le "end sub"


"Morbus" a écrit dans le message news:
429c01c4730e$cd874ff0$
Je saisi ca ou? Je ne comprend pas.

-----Message d'origine-----
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les apostrophes)

if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp
& "'")>0 Then

Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas où...
ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.



Avatar
Morbus
Le code ne fonctionne pas, mais je comprend la logique.
Je continue à chercher.
Merci

-----Message d'origine-----
Dans ton formulaire tu as une zone de saisie, celle
justement que tu veux

contrôler. En cliquant sur celle ci et en allant dans les
propriétés, dans

l'onglet evenement, tu as "Avant MAJ", là tu cliques sur
les "..." et tu

choisis générateur de code. Tu colles le code de 3stone
dans la fenêtre qui

va s'ouvrir, entre le "private sub...." et le "end sub"


"Morbus" a écrit
dans le message news:

429c01c4730e$cd874ff0$
Je saisi ca ou? Je ne comprend pas.

-----Message d'origine-----
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les
apostrophes)



if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp
& "'")>0 Then

Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas où...
ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.




.




Avatar
gafish
Qu'est-ce qui ne marche pas dans le code ?

"Morbus" a écrit dans le message news:
44ab01c47324$9ab8b670$
Le code ne fonctionne pas, mais je comprend la logique.
Je continue à chercher.
Merci

-----Message d'origine-----
Dans ton formulaire tu as une zone de saisie, celle
justement que tu veux

contrôler. En cliquant sur celle ci et en allant dans les
propriétés, dans

l'onglet evenement, tu as "Avant MAJ", là tu cliques sur
les "..." et tu

choisis générateur de code. Tu colles le code de 3stone
dans la fenêtre qui

va s'ouvrir, entre le "private sub...." et le "end sub"


"Morbus" a écrit
dans le message news:

429c01c4730e$cd874ff0$
Je saisi ca ou? Je ne comprend pas.

-----Message d'origine-----
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les
apostrophes)



if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp
& "'")>0 Then

Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas où...
ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.




.




Avatar
Morbus
Erreur de compilation, erreur de syntaxe.

Private Sub C_Titre_BeforeUpdate(Cancel As Integer)
If DCount("*", "[T_Album]", "[C_Titre]='" &Me!
C_Titre.Value& "'") > 0 Then MsgBox "Valeur existe..."
End If
End Sub

-----Message d'origine-----
Qu'est-ce qui ne marche pas dans le code ?

"Morbus" a écrit
dans le message news:

44ab01c47324$9ab8b670$
Le code ne fonctionne pas, mais je comprend la logique.
Je continue à chercher.
Merci

-----Message d'origine-----
Dans ton formulaire tu as une zone de saisie, celle
justement que tu veux

contrôler. En cliquant sur celle ci et en allant dans les
propriétés, dans

l'onglet evenement, tu as "Avant MAJ", là tu cliques sur
les "..." et tu

choisis générateur de code. Tu colles le code de 3stone
dans la fenêtre qui

va s'ouvrir, entre le "private sub...." et le "end sub"


"Morbus" a écrit
dans le message news:

429c01c4730e$cd874ff0$
Je saisi ca ou? Je ne comprend pas.

-----Message d'origine-----
Salut,

"Morbus"
Ne connaissant rien au VBA, je souhaiterais faire une
macro qui m'informerait que la valeur saisie dans mon
formulaire est déja présente dans la table.



T_Table pour le nom de la table
MonChamp pour le nom du champ
txtMonChamp pour le nom du textbox sur le formulaire


Dans l'événemet sur "Avant mise à jour" du textbox,
tu mets quelque chose comme:
(si le champ est texte, sinon enlever les
apostrophes)



if DCount("*","[T_Table]","[MonChamp]='" & txtMonChamp
& "'")>0 Then

Msgbox "Valeur existe..."
end if



comme tu ne dis pas ce que tu veux faire en cas
où...



ici, tu ne recois qu'un message...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.




.




.





Avatar
3stone
Salut,

"Morbus"
Erreur de compilation, erreur de syntaxe.

Private Sub C_Titre_BeforeUpdate(Cancel As Integer)
If DCount("*", "[T_Album]", "[C_Titre]='" & Me!C_Titre.Value & "'") > 0 Then
MsgBox "Valeur existe..."
End If
End Sub



Un espace autour des "&"

Et utiliser 3 lignes pour...

If DCount(...
Msgbox "...
End if



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
Morbus
Impec merci beaucoup!

-----Message d'origine-----
Salut,

"Morbus"
Erreur de compilation, erreur de syntaxe.

Private Sub C_Titre_BeforeUpdate(Cancel As Integer)
If DCount("*", "[T_Album]", "[C_Titre]='" & Me!
C_Titre.Value & "'") > 0 Then

MsgBox "Valeur existe..."
End If
End Sub



Un espace autour des "&"

Et utiliser 3 lignes pour...

If DCount(...
Msgbox "...
End if



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------




.