J'essaie de programmer un test de validation pour ma base,=20
mais comme je suis d=E9butant, j'ai un peu de mal.
Sur avant MAJ, j'ai =E9crit
dim intA, intB as integer
intA=3D0
intB=3Dform![frmContact].[n=B0societe]=20
'la variable intB prend la valeur en cour=20
de n=B0Societe du formulaire Contact
intA=3DDSum("[ContactHabituelOui]";"[tblContact]";"[n=B0
Soci=E9t=E9]=3DintB")
'la variable intA est la somme du champ=20
[ContactHabituelOui] de la table [tblContact] pour le=20
num=E9ro de soci=E9t=E9 contenu dans intB
if intA>1=20
then MsgBox "erreur"=20
form![frmContact].[ContactHabituelOui]=3D0=20
end if =20
'test de la valeur intA et annulation=20
de de la donn=E9e en cas d'erreur
Pourquoi =E7a ne marche pas ? Quelqu'un peut il me proposer=20
une solution ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonsoir.
si intB est numérique: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= " & intB) si intB est alpha: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à True pour annuler l'événement mise à jour. il y a possibilité de simplifier ta fonction si on a les renseignements complémentaires: l'événement avant MAJ est-il sur un contrôle ou sur le formulaire ? frmContact est-il le formulaire actif, celui dans lequel se trouve ta fonction ?
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille DUBOS" a écrit dans le message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?
Par avance merci.
Cyrille
Bonsoir.
si intB est numérique:
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]= " & intB)
si intB est alpha:
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à True pour annuler
l'événement mise à jour.
il y a possibilité de simplifier ta fonction si on a les renseignements
complémentaires:
l'événement avant MAJ est-il sur un contrôle ou sur le formulaire ?
frmContact est-il le formulaire actif, celui dans lequel se trouve ta
fonction ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Cyrille DUBOS" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:019c01c3bcfb$94af5e80$a101280a@phx.gbl...
Bonjour,
J'essaie de programmer un test de validation pour ma base,
mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0
intB=form![frmContact].[n°societe]
'la variable intB prend la valeur en cour
de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]=intB")
'la variable intA est la somme du champ
[ContactHabituelOui] de la table [tblContact] pour le
numéro de société contenu dans intB
if intA>1
then MsgBox "erreur"
form![frmContact].[ContactHabituelOui]=0
end if
'test de la valeur intA et annulation
de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer
une solution ?
si intB est numérique: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= " & intB) si intB est alpha: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à True pour annuler l'événement mise à jour. il y a possibilité de simplifier ta fonction si on a les renseignements complémentaires: l'événement avant MAJ est-il sur un contrôle ou sur le formulaire ? frmContact est-il le formulaire actif, celui dans lequel se trouve ta fonction ?
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille DUBOS" a écrit dans le message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?
Par avance merci.
Cyrille
Anor
Bonjour, il faut "sortir" la variable IntB de la chaîne pour en extraire sa valeur et mettre des virgules puisque tu es dans la fenêtre visual basic editor
-- à+ Arnaud -------------------------------------------------- *Avant toute chose* : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ -------------------------------------------------- Cyrille DUBOS : | Bonjour, | | J'essaie de programmer un test de validation pour ma base, | mais comme je suis débutant, j'ai un peu de mal. | | Sur avant MAJ, j'ai écrit | | dim intA, intB as integer | | intA=0 | intB=form![frmContact].[n°societe] | 'la variable intB prend la valeur en cour | de n°Societe du formulaire Contact | | intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° | Société]=intB") | 'la variable intA est la somme du champ | [ContactHabituelOui] de la table [tblContact] pour le | numéro de société contenu dans intB | | if intA>1 | then MsgBox "erreur" | form![frmContact].[ContactHabituelOui]=0 | end if | | 'test de la valeur intA et annulation | de de la donnée en cas d'erreur | | | Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer | une solution ? | | Par avance merci. | | Cyrille
Bonjour,
il faut "sortir" la variable IntB de la chaîne pour en extraire sa valeur
et mettre des virgules puisque tu es dans la fenêtre visual basic editor
--
à+
Arnaud
--------------------------------------------------
*Avant toute chose* : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Cyrille DUBOS <anonymous@discussions.microsoft.com> :
| Bonjour,
|
| J'essaie de programmer un test de validation pour ma base,
| mais comme je suis débutant, j'ai un peu de mal.
|
| Sur avant MAJ, j'ai écrit
|
| dim intA, intB as integer
|
| intA=0
| intB=form![frmContact].[n°societe]
| 'la variable intB prend la valeur en cour
| de n°Societe du formulaire Contact
|
| intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
| Société]=intB")
| 'la variable intA est la somme du champ
| [ContactHabituelOui] de la table [tblContact] pour le
| numéro de société contenu dans intB
|
| if intA>1
| then MsgBox "erreur"
| form![frmContact].[ContactHabituelOui]=0
| end if
|
| 'test de la valeur intA et annulation
| de de la donnée en cas d'erreur
|
|
| Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer
| une solution ?
|
| Par avance merci.
|
| Cyrille
Bonjour, il faut "sortir" la variable IntB de la chaîne pour en extraire sa valeur et mettre des virgules puisque tu es dans la fenêtre visual basic editor
-- à+ Arnaud -------------------------------------------------- *Avant toute chose* : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ -------------------------------------------------- Cyrille DUBOS : | Bonjour, | | J'essaie de programmer un test de validation pour ma base, | mais comme je suis débutant, j'ai un peu de mal. | | Sur avant MAJ, j'ai écrit | | dim intA, intB as integer | | intA=0 | intB=form![frmContact].[n°societe] | 'la variable intB prend la valeur en cour | de n°Societe du formulaire Contact | | intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° | Société]=intB") | 'la variable intA est la somme du champ | [ContactHabituelOui] de la table [tblContact] pour le | numéro de société contenu dans intB | | if intA>1 | then MsgBox "erreur" | form![frmContact].[ContactHabituelOui]=0 | end if | | 'test de la valeur intA et annulation | de de la donnée en cas d'erreur | | | Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer | une solution ? | | Par avance merci. | | Cyrille
Cyrille
Bonjour,
Merci de vos conseils. Voici les renseignements complémentaires, l'évènement avant MAJ est sur un contôle du formulaire, et frmContact est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Cyrille
-----Message d'origine----- Bonsoir.
si intB est numérique: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= " & intB) si intB est alpha: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à True pour annuler
l'événement mise à jour. il y a possibilité de simplifier ta fonction si on a les renseignements
complémentaires: l'événement avant MAJ est-il sur un contrôle ou sur le formulaire ?
frmContact est-il le formulaire actif, celui dans lequel se trouve ta
fonction ?
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille DUBOS" a écrit dans le
message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?
Par avance merci.
Cyrille
.
Bonjour,
Merci de vos conseils.
Voici les renseignements complémentaires, l'évènement
avant MAJ est sur un contôle du formulaire, et frmContact
est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Cyrille
-----Message d'origine-----
Bonsoir.
si intB est numérique:
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]= " & intB)
si intB est alpha:
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à
True pour annuler
l'événement mise à jour.
il y a possibilité de simplifier ta fonction si on a les
renseignements
complémentaires:
l'événement avant MAJ est-il sur un contrôle ou sur le
formulaire ?
frmContact est-il le formulaire actif, celui dans lequel
se trouve ta
fonction ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Cyrille DUBOS" <anonymous@discussions.microsoft.com> a
écrit dans le
message de news:019c01c3bcfb$94af5e80$a101280a@phx.gbl...
Bonjour,
J'essaie de programmer un test de validation pour ma base,
mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0
intB=form![frmContact].[n°societe]
'la variable intB prend la valeur en cour
de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]=intB")
'la variable intA est la somme du champ
[ContactHabituelOui] de la table [tblContact] pour le
numéro de société contenu dans intB
if intA>1
then MsgBox "erreur"
form![frmContact].[ContactHabituelOui]=0
end if
'test de la valeur intA et annulation
de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer
une solution ?
Merci de vos conseils. Voici les renseignements complémentaires, l'évènement avant MAJ est sur un contôle du formulaire, et frmContact est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Cyrille
-----Message d'origine----- Bonsoir.
si intB est numérique: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= " & intB) si intB est alpha: intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]= '" & intB & "'")
en cas d'erreur il faut charger la valeur de cancel à True pour annuler
l'événement mise à jour. il y a possibilité de simplifier ta fonction si on a les renseignements
complémentaires: l'événement avant MAJ est-il sur un contrôle ou sur le formulaire ?
frmContact est-il le formulaire actif, celui dans lequel se trouve ta
fonction ?
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille DUBOS" a écrit dans le
message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?
Par avance merci.
Cyrille
.
Raymond [mvp]
Tu peux faire ainsi:
Private Sub ContactHabituelOui_BeforeUpdate(Cancel As Integer) If DSum("[ContactHabituelOui]", "[tblContact]", "[n°Société]= '" & Me.[n°Societe] & "'" ) > 1 Then MsgBox "erreur" Me.[ContactHabituelOui] = 0 Cancel = True End If End Sub
si N°société est numérique, supprimer les '
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille" a écrit dans le message de news:f00701c3bd77$4bc6e630$ Bonjour,
Merci de vos conseils. Voici les renseignements complémentaires, l'évènement avant MAJ est sur un contôle du formulaire, et frmContact est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Cyrille
Tu peux faire ainsi:
Private Sub ContactHabituelOui_BeforeUpdate(Cancel As Integer)
If DSum("[ContactHabituelOui]", "[tblContact]", "[n°Société]= '" &
Me.[n°Societe] & "'" ) > 1 Then
MsgBox "erreur"
Me.[ContactHabituelOui] = 0
Cancel = True
End If
End Sub
si N°société est numérique, supprimer les '
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"Cyrille" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:f00701c3bd77$4bc6e630$a601280a@phx.gbl...
Bonjour,
Merci de vos conseils.
Voici les renseignements complémentaires, l'évènement
avant MAJ est sur un contôle du formulaire, et frmContact
est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Private Sub ContactHabituelOui_BeforeUpdate(Cancel As Integer) If DSum("[ContactHabituelOui]", "[tblContact]", "[n°Société]= '" & Me.[n°Societe] & "'" ) > 1 Then MsgBox "erreur" Me.[ContactHabituelOui] = 0 Cancel = True End If End Sub
si N°société est numérique, supprimer les '
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"Cyrille" a écrit dans le message de news:f00701c3bd77$4bc6e630$ Bonjour,
Merci de vos conseils. Voici les renseignements complémentaires, l'évènement avant MAJ est sur un contôle du formulaire, et frmContact est le sousformulaire actif.
Voilà, je suis curieux de voir comment faire plus simple
Cyrille
Charles ERNST
Si [ContactHabituelOui] est un champ de type oui/non, alors DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") aura une valeur négative et il faudra faire le test : if intA > -1
"Cyrille DUBOS" a écrit dans le message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?
Par avance merci.
Cyrille
Si [ContactHabituelOui] est un champ de type oui/non, alors
DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]=intB") aura une valeur négative et il faudra faire le test : if
intA > -1
"Cyrille DUBOS" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:019c01c3bcfb$94af5e80$a101280a@phx.gbl...
Bonjour,
J'essaie de programmer un test de validation pour ma base,
mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0
intB=form![frmContact].[n°societe]
'la variable intB prend la valeur en cour
de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n°
Société]=intB")
'la variable intA est la somme du champ
[ContactHabituelOui] de la table [tblContact] pour le
numéro de société contenu dans intB
if intA>1
then MsgBox "erreur"
form![frmContact].[ContactHabituelOui]=0
end if
'test de la valeur intA et annulation
de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer
une solution ?
Si [ContactHabituelOui] est un champ de type oui/non, alors DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") aura une valeur négative et il faudra faire le test : if intA > -1
"Cyrille DUBOS" a écrit dans le message de news:019c01c3bcfb$94af5e80$ Bonjour,
J'essaie de programmer un test de validation pour ma base, mais comme je suis débutant, j'ai un peu de mal.
Sur avant MAJ, j'ai écrit
dim intA, intB as integer
intA=0 intB=form![frmContact].[n°societe] 'la variable intB prend la valeur en cour de n°Societe du formulaire Contact
intA=DSum("[ContactHabituelOui]";"[tblContact]";"[n° Société]=intB") 'la variable intA est la somme du champ [ContactHabituelOui] de la table [tblContact] pour le numéro de société contenu dans intB
if intA>1 then MsgBox "erreur" form![frmContact].[ContactHabituelOui]=0 end if
'test de la valeur intA et annulation de de la donnée en cas d'erreur
Pourquoi ça ne marche pas ? Quelqu'un peut il me proposer une solution ?