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 :

revalider les datas insérées dans un formulaire


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut revalider les datas insérées dans un formulaire
    Bonjour à tous,
    Pour mon premier post, je vais vous proposer une question à laquelle je n'arrive pas à trouver de réponse

    J'ai dans une base de données créée avec Access (la version 2000 en Anglais) un formulaire qui contient des 'validation rules' basées sur des queries...
    Pour des raisons pratiques, ces validations sont lancées en VBA sur les event "on got focus" (avec des boucles if then else).

    Pour être précis, mon formulaire est affiché sous forme de datasheet dans l'espoir de pouvoir importer des données en masse (via un copier-coller depuis un fichier excel).

    Voici le problème :
    - lorsque je remplis le formulaire à la main, les validations sont bien générées et respectées
    - par contre, lors de l'import en masse des données, Access semble ne pas vouloir respecter les validations (comme si la copie en masse courtcircuitait les events "on got focus")
    Y a-t'il moyen de forcer access à revalider tous les enregistrements ?
    J'ai bien essayé les .requery, les .recalc mais ça ne fonctionne pas

    La solution extrême serait de parcourir à la main tous les enregistrements et simuler une modification mais je préfère pas (+/- 4000 enregistrements dans la table)

    ps : à terme ce sera une application qui permettra de gérer un plan de gestion financier (si une partie du code est nécessaire, faudra attendre la semaine prochaine, l'application est dans mon ordi au boulot)

    Merci d'avance pour vos conseils

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut Re: revalider les datas insérées dans un formulaire
    Citation Envoyé par capouille
    - par contre, lors de l'import en masse des données, Access semble ne pas vouloir respecter les validations (comme si la copie en masse courtcircuitait les events "on got focus")
    Oui, ça se pourrai bien, il y a un tas d'événement qui ne se déclenche pas quand ce n'est pas un humain qui modifie les données.

    Y a-t'il moyen de forcer access à revalider tous les enregistrements ?
    essaye de déclencher tes règles avec AfterInsert mais je ne suis pas certain que cela marche.

    La solution extrême serait de parcourir à la main tous les enregistrements et simuler une modification mais je préfère pas (+/- 4000 enregistrements dans la table)
    Tu peux faire un boucle en VBA et lancer tes validations à partir du code.

    Généralement je fait une fonction de contrôle des données indépendament des evénement puis je l'appele quand j'en ai besoin, dans un événement ou autre.

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut revalider les datas insérées dans un formulaire
    Bonjour à tous,
    J'ai posé la même question à des 'spécialistes' chez KeyJob (un centre de formation à Bruxelles). Réponse de Keyjob:
    • Valider les insertions manuelles, c'est facile, via des règles de validation
    • Mais pourquoi ne pas vérifier les copies de masses à l'aide de requêtes avant l'insertion ? Access désactive certains contrôles lors de la copie en masse car celà peut être interprêté comme un événement automatique !
    Au fond, pourquoi pas ? Je sais exactement ce que mes données peuvent (ou ne peuvent pas contenir) et les queries - utilisées une seule fois - sont plus faciles à programmer.

    Donc la solution la plus rapide fut la suivante:
    • création des différentes queries pour filtrer les éventuelles erreurs dans ma liste à copier
    • lancement de la moulinette et suppression des enregistrements erronés
    • copie de la liste corrigée dans le formulaire (en mode sreadsheet)
    Il aurait théoriquement été possible de programmer tout ça en vba mais vu les délais à respecter, la recherche du code à programmer aurait pris trop de temps.

    Si malgré tout quelqu'un trouverait une solution en vba, pensez à moi

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2015, 23h07
  2. Réponses: 2
    Dernier message: 08/01/2007, 10h01
  3. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 16h22
  4. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 09h50
  5. Réponses: 2
    Dernier message: 03/11/2005, 20h48

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