IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Comment vérifier les valeurs saisies directement en table ? [AC-2016]


Sujet :

Access

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Comment vérifier les valeurs saisies directement en table ?
    Bonjour,

    Je suis débutant sous Access.

    Je dois contraindre la saisie d'un champ réalisée directement dans une table. Je connais la formule Excel qui contraint la donnée. Par contre, je ne sais pas comment faire sous Access.

    Je pensais le faire dans la zone "valide si" mais la condition et compliquée à écrire.

    La saisie du champ est valide si le champ n'est pas dans ces plages:

    45.xxx.300000.x à 45.xxx.399999.x
    46.xxx.900000.x à 46.xxx.999999.x
    48.xxx.500000.x à 48.xxx.599999.x
    07.xxx.800000.x à 07.xxx.999999.x
    08.xxx.600000.x à 08.xxx.699999.x
    28.xxx.870000.x à 28.xxx.999999.x
    49.xxx.860000.x à 49.xxx.899999.x

    Je voulais saisir quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ET(Gauche("mon_champ";2)="45";ET(CEnt(Gauche(Droite("mon_champ";6);5))>=300000;CNUM(Gauche(Droite("mon_champ";6);5))<400000))
    A l'enregistrement, il n'accepte pas le "ET".

    Peut-on utiliser un trigger de base de données ? Je souhaite passer par du code vba sur l'événement before_update de ma table. Est-ce possible ?

    Est-il possible de ne pas passer par ce que est décrit dans ce tutoriel ?

    http://warin.developpez.com/access/contraintes/

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Dans le critère valide si, saisir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    entre valeur1 et valeur2
    où valeur1 et valeur2 sont des bornes du critère de validité. cette façon de faire est vrai si ce sont des valeurs qui puissent être évaluées de manière logique. (Nombre entier, lettres de l'alphabet,... )
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Je ne peux pas utiliser le valide si, ma condition est trop compliquée.

    Il me faut passer par du vba dans ce qui pourrait ressembler à un trigger de bd.

  4. #4
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Si tu estimes que ta condition est trop compliquée alors commences par nous l'expliquer parce qu'on ne peut pas t'aider sur quelque chose dont toi seul tu comprends.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Voici ma condition:

    La saisie du champ est valide si le champ n'est pas dans ces plages:

    45.xxx.300000.x à 45.xxx.399999.x
    46.xxx.900000.x à 46.xxx.999999.x
    48.xxx.500000.x à 48.xxx.599999.x
    07.xxx.800000.x à 07.xxx.999999.x
    08.xxx.600000.x à 08.xxx.699999.x
    28.xxx.870000.x à 28.xxx.999999.x
    49.xxx.860000.x à 49.xxx.899999.x

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Que peut représenter xxx? Peux-tu bien écrire juste la première plage?
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    xxx représente une série de 3 chiffres. Je sais coder la condition "si" mais je ne sais pas comment utiliser un trigger de bases de données sur Access.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Même si c'est possible, cela va te faire une condition méchamment compliquée et donc difficile à mettre au point et à modifier par la suite.
    Je pense qu'il serait plus prudent de l'implanter avec une table de paramétrage et un peu de VBA ou/et une requête.
    C'est moins sécuritaire que de le mettre dans les propriétés du champ puisqu'il faudra l'appeler à chaque ajout ou modification via les formulaires mais cela me paraît beaucoup plus facile à vivre.
    Si tu es intéressé, laisse-le savoir.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Si tel est le cas le critère pourrait bien être ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pas entre 45.xxx.300000.x et 45.xxx.399999.x 
    et pas entre 46.xxx.900000.x et 46.xxx.999999.x
    et pas entre 48.xxx.500000.x  et  48.xxx.599999.x 
    et pas entre 07.xxx.800000.x  et  07.xxx.999999.x 
    et pas entre 08.xxx.600000.x  et 08.xxx.699999.x 
    et pas entre 28.xxx.870000.x  et  28.xxx.999999.x 
    et pas entre 49.xxx.860000.x  et 49.xxx.899999
    Il faut juste que tes valeurs xxx soient écrites tels qu'elles doivent vraiment être.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Je ne vois pas comment mettre du VBA derrière l'utilisation d'une table. Faut-il que je passe par un formulaire pour réaliser ce que vous voulez me faire faire m. MAROT ?

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    Salut,

    tu as la possibilite de configurer des declencheurs (triggers) apres insertion par exemple :

    http://warin.developpez.com/tutoriel...p/?page=page_2
    http://warin.developpez.com/tutoriel...s2010/journal/

    Bonnes lectures
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Je ne vois pas comment créer la macro sur ma table dans la version d'Access que j'ai. Puis-je ensuite coder le trigger en vba au lieu de faire une macro ?

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Je ne vois pas comment créer la macro sur ma table dans la version d'Access que j'ai.
    Sauf si c'est différent avec Acces 20016, c'est disponible en mode création de la table.

    Puis-je ensuite coder le trigger en vba au lieu de faire une macro ?
    Non. Et ce n'est pas non plus les macros habituelles de Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 21
    Dernier message: 21/07/2006, 16h55
  2. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  3. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  4. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo