Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Condition pour ajouter un enreg.

16 réponses
Avatar
Serge L
J'ai un formulaire dont je me sert pour ajouter des données dans une table.
Dans cette table j'ai entre autre les champs [numero] et [jour] et une
variable public ''VarJour'' déclaré dans un module. La première information
que j'entre est sur le champ "numero". Je voudrais, suite a cette entré,
faire un code qui vérifie si il existe déjà dans la table un enregistrement
ayant:

- le même numéro ET
- [jour]=VarJour

si oui annuler l'enregistrement encours et si non continuer l'entré des
autres données de l'enregistrement encours.

J'espère avoir été assez clair.

Merci de votre aide

6 réponses

1 2
Avatar
Eric
Bonjour,

Apparemment tes variables sont numériques, essaies avec:
If DLookup("numero", "table1", "[numero] = " & Me.Numero & " and [jour]
= " & VarJour ) Then

à modifier dans les 2 procédures.

Ok j'ai essayé le code mais access m'indique une erreur 3464 ''Type de
données incompatible dans l'expression di critère''

Une idée?


vérifies cet exemple car je ne l'ai pas testé:

Private Sub jour_BeforeUpdate(Cancel As Integer)
If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" & " and
[jour] = '" & VarJour & "'") Then
MsgBox "erreur"
Cancel = True
End If
End Sub

Private Sub numero_BeforeUpdate(Cancel As Integer)
If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" & " and
[jour] = '" & VarJour & "'") Then
MsgBox "erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Serge L
Maintenant cela fonction.....un seul problême, lors de la première entré de
''numero'' rencontrant les conditions, le MsgBox s'affiche et tout de suite
après un autre long message venant d'access m'indique que ''La valeur du
champ ou de l'enregistrement ne respecte pas la règle de validation pour
l'enregistrement ou le champ. Vous avez peut-être modifié une
règle.................Cliquez sur annuler dans le menu Edition pour
restaurer........

Ce message m'apparait une seul fois. Est ce possible d'empêcher ce message
d'apparaitre?

Je sens que la fin de mes questions approche :))


Bonjour,

Apparemment tes variables sont numériques, essaies avec:
If DLookup("numero", "table1", "[numero] = " & Me.Numero & " and [jour]
= " & VarJour ) Then

à modifier dans les 2 procédures.

Ok j'ai essayé le code mais access m'indique une erreur 3464 ''Type de
données incompatible dans l'expression di critère''

Une idée?


vérifies cet exemple car je ne l'ai pas testé:

Private Sub jour_BeforeUpdate(Cancel As Integer)
If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" & " and
[jour] = '" & VarJour & "'") Then
MsgBox "erreur"
Cancel = True
End If
End Sub

Private Sub numero_BeforeUpdate(Cancel As Integer)
If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" & " and
[jour] = '" & VarJour & "'") Then
MsgBox "erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
Raymond [mvp]
la première fois, évidemment, il doit manque la valeur de la variable du
jour (certainement). à l'ouverture du formulaire il faudrait initaliser
cette variable avec une valeur valide.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"Serge L" a écrit dans le message de
news:
| Maintenant cela fonction.....un seul problême, lors de la première entré
de
| ''numero'' rencontrant les conditions, le MsgBox s'affiche et tout de
suite
| après un autre long message venant d'access m'indique que ''La valeur du
| champ ou de l'enregistrement ne respecte pas la règle de validation pour
| l'enregistrement ou le champ. Vous avez peut-être modifié une
| règle.................Cliquez sur annuler dans le menu Edition pour
| restaurer........
|
| Ce message m'apparait une seul fois. Est ce possible d'empêcher ce message
| d'apparaitre?
|
| Je sens que la fin de mes questions approche :))
|
|
| > Bonjour,
| >
| > Apparemment tes variables sont numériques, essaies avec:
| > If DLookup("numero", "table1", "[numero] = " & Me.Numero & " and [jour]
| > = " & VarJour ) Then
| >
| > à modifier dans les 2 procédures.
| >
| > > Ok j'ai essayé le code mais access m'indique une erreur 3464 ''Type de
| > > données incompatible dans l'expression di critère''
| > >
| > > Une idée?
| > >
| > >
| > >> vérifies cet exemple car je ne l'ai pas testé:
| > >>
| > >> Private Sub jour_BeforeUpdate(Cancel As Integer)
| > >> If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" &
" and
| > >> [jour] = '" & VarJour & "'") Then
| > >> MsgBox "erreur"
| > >> Cancel = True
| > >> End If
| > >> End Sub
| > >>
| > >> Private Sub numero_BeforeUpdate(Cancel As Integer)
| > >> If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" &
" and
| > >> [jour] = '" & VarJour & "'") Then
| > >> MsgBox "erreur"
| > >> Cancel = True
| > >> End If
| > >> End Sub
| > >>
| > >>
| > >> --
| > >> @+
| > >> Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > >> Pour débuter sur le forum: http://www.mpfa.info/
| > >> Pour les amoureux de l'Ardèche et de Joyeuse:
| > >> http://cppj.free.fr/
| > >>
| >
| >
| > --
| > A+
| > Eric
| > http://www.mpfa.info/
| > Archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
| >
Avatar
Tisane
je comprend la fonction des index multi-champs (du moins je le
pense :)) mais cela ne m'empêchera pas des entrés interdit selon mes
critères décrit précédemment. non?


Pourquoi faire simple... L'index multi-champs sans doublon empêche d'avoir 2
fois
| [numero] [jour]
| 1 1
| 1 1

Et il est plus rapide qu'un dlookup. Evidemment, tu hérites du message
standard d'Access sur l'impossibilité de valider la donnée saisie pour cause
de doublon dans un index, etc.

--
Tisane



Tu peux très bien définir un index multi-champs unique.
cliquer sur l'icone index en modification de table.
tu définis un index avec un premier champ et en dessous un deuxième champ
sans indiquer de nom d'index, ce qui veut dire que àa se rapporte à
l'index
au dessus.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"Serge L" a écrit dans le message de
news:
| Bonjour Tisane,
| je ne peux pas indexer les deux champs sans
doublon
| puisque dans ma table il peux y avoir deux fois le même numéro mais
avec
des
| jours different. Exemple:
|
| Dans les champs il peux y avoir:
| [numero] [jour]
| 1 1
| 1 2
| 1 3
| 2 1
| 2 3
|
| mais pas:
|
| [numero] [jour]
| 1 1
| 1 1
|
| Autrement dis je veux que mon code m'empêche d'entrer deux fois les
mêmes
| valeur pour jour ET numero.
|
| J'espère avoir été assez clair dans mes explications :)
|
|
|
| > Bonjour Serge,
| >
| > > J'ai un formulaire dont je me sert pour ajouter des données dans
une
| > > table.
| > > Dans cette table j'ai entre autre les champs [numero] et [jour] et
une
| > > variable public ''VarJour'' déclaré dans un module. La première
| > > information
| > > que j'entre est sur le champ "numero". Je voudrais, suite a cette
entré,
| > > faire un code qui vérifie si il existe déjà dans la table un
| > > enregistrement
| > > ayant:
| > > - le même numéro ET
| > > - [jour]=VarJour
| > > si oui annuler l'enregistrement encours et si non continuer l'entré
des
| > > autres données de l'enregistrement encours.
| >
| > Tu veux absolument par code (dans ce cas, attendre le réveil de nos
pros
;-)
| > Ne suffirait-il pas d'indexer les 2 champs sans doublon ?
| >
| > --
| > Tisane




Avatar
Serge L
Non puisque le formulaire ne peut s'ouvrir sans l'initialisation de cette
variable. Il doit y avoir quelque chose d'autres.mais je continue mes
recherches.

Merci


la première fois, évidemment, il doit manque la valeur de la variable du
jour (certainement). à l'ouverture du formulaire il faudrait initaliser
cette variable avec une valeur valide.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"Serge L" a écrit dans le message de
news:
| Maintenant cela fonction.....un seul problême, lors de la première entré
de
| ''numero'' rencontrant les conditions, le MsgBox s'affiche et tout de
suite
| après un autre long message venant d'access m'indique que ''La valeur du
| champ ou de l'enregistrement ne respecte pas la règle de validation pour
| l'enregistrement ou le champ. Vous avez peut-être modifié une
| règle.................Cliquez sur annuler dans le menu Edition pour
| restaurer........
|
| Ce message m'apparait une seul fois. Est ce possible d'empêcher ce message
| d'apparaitre?
|
| Je sens que la fin de mes questions approche :))
|
|
| > Bonjour,
| >
| > Apparemment tes variables sont numériques, essaies avec:
| > If DLookup("numero", "table1", "[numero] = " & Me.Numero & " and [jour]
| > = " & VarJour ) Then
| >
| > à modifier dans les 2 procédures.
| >
| > > Ok j'ai essayé le code mais access m'indique une erreur 3464 ''Type de
| > > données incompatible dans l'expression di critère''
| > >
| > > Une idée?
| > >
| > >
| > >> vérifies cet exemple car je ne l'ai pas testé:
| > >>
| > >> Private Sub jour_BeforeUpdate(Cancel As Integer)
| > >> If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" &
" and
| > >> [jour] = '" & VarJour & "'") Then
| > >> MsgBox "erreur"
| > >> Cancel = True
| > >> End If
| > >> End Sub
| > >>
| > >> Private Sub numero_BeforeUpdate(Cancel As Integer)
| > >> If DLookup("numero", "table1", "[numero] = '" & Me.Numero & "'" &
" and
| > >> [jour] = '" & VarJour & "'") Then
| > >> MsgBox "erreur"
| > >> Cancel = True
| > >> End If
| > >> End Sub
| > >>
| > >>
| > >> --
| > >> @+
| > >> Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > >> Pour débuter sur le forum: http://www.mpfa.info/
| > >> Pour les amoureux de l'Ardèche et de Joyeuse:
| > >> http://cppj.free.fr/
| > >>
| >
| >
| > --
| > A+
| > Eric
| > http://www.mpfa.info/
| > Archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
| >





Avatar
Serge L
Ma connaissance des index fesait défaut quelque peu. Je viens de réviser dans
mes livres access et je comprend mieux ce que tu voulais dire. Voila donc
deux options différentes qui s'offre a moi.

Merci


je comprend la fonction des index multi-champs (du moins je le
pense :)) mais cela ne m'empêchera pas des entrés interdit selon mes
critères décrit précédemment. non?


Pourquoi faire simple... L'index multi-champs sans doublon empêche d'avoir 2
fois
| [numero] [jour]
| 1 1
| 1 1

Et il est plus rapide qu'un dlookup. Evidemment, tu hérites du message
standard d'Access sur l'impossibilité de valider la donnée saisie pour cause
de doublon dans un index, etc.

--
Tisane



Tu peux très bien définir un index multi-champs unique.
cliquer sur l'icone index en modification de table.
tu définis un index avec un premier champ et en dessous un deuxième champ
sans indiquer de nom d'index, ce qui veut dire que àa se rapporte à
l'index
au dessus.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Pour les amoureux de l'Ardèche et de Joyeuse:
http://cppj.free.fr/


"Serge L" a écrit dans le message de
news:
| Bonjour Tisane,
| je ne peux pas indexer les deux champs sans
doublon
| puisque dans ma table il peux y avoir deux fois le même numéro mais
avec
des
| jours different. Exemple:
|
| Dans les champs il peux y avoir:
| [numero] [jour]
| 1 1
| 1 2
| 1 3
| 2 1
| 2 3
|
| mais pas:
|
| [numero] [jour]
| 1 1
| 1 1
|
| Autrement dis je veux que mon code m'empêche d'entrer deux fois les
mêmes
| valeur pour jour ET numero.
|
| J'espère avoir été assez clair dans mes explications :)
|
|
|
| > Bonjour Serge,
| >
| > > J'ai un formulaire dont je me sert pour ajouter des données dans
une
| > > table.
| > > Dans cette table j'ai entre autre les champs [numero] et [jour] et
une
| > > variable public ''VarJour'' déclaré dans un module. La première
| > > information
| > > que j'entre est sur le champ "numero". Je voudrais, suite a cette
entré,
| > > faire un code qui vérifie si il existe déjà dans la table un
| > > enregistrement
| > > ayant:
| > > - le même numéro ET
| > > - [jour]=VarJour
| > > si oui annuler l'enregistrement encours et si non continuer l'entré
des
| > > autres données de l'enregistrement encours.
| >
| > Tu veux absolument par code (dans ce cas, attendre le réveil de nos
pros
;-)
| > Ne suffirait-il pas d'indexer les 2 champs sans doublon ?
| >
| > --
| > Tisane








1 2