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

VBA Access Discussion :

Problème code VBA dans formulaire


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème code VBA dans formulaire
    Bonjour à tous,

    J'ai un petit probleme (petit parce qu'il n'est surement pas tres difficile à résoudre pour des habitués, mais fort embétant pour moi).

    Mon "application" :
    J'ai besoin de créer une petit appli sous Access 2003 qui aurait pour but, en renseignant un certain nombres de champs de me donner la réponse à ma question. Concrétement je travail dans un centre logistique et en rentrant le code postal et l'adresse, l'appli doit me sortir le numero de la sortie de quai correspondante. Le resultat doit ensuite incrémenter un etat et s'imprimer.

    Mes données sont stockées dans 2 tables : 1 table "code postaux" (contenant uniquement les codes postaux qui m'interessent) et 1 table "Adresses", dans laquelle sont rentrées les code postaux, les communes, les adresses, un champ "mot clef" pour gagner du temps sur l'adresse et les sorties de quai correspondantes pour chaque ligne. Ces 2 tables ne sont pas liées.

    Partant de là, j'ai crée un formulaire dans lequel je renseigne tous les eléments necessaire un par un : le code postal, un champ mot clé, qui doit lui meme incrémenter un champ "voie" (ex : je tape elysees dans le champs "mot clé" puis j'appuie sur entrée et le champ "voie" s'incremente automatiquement "avenue des champs elysées") et enfin un champ "Numero Quai", qui doit être génére automatiquement en aller pécher l'info dans ma table "Adresses" et en croisant les données que j'ai rentré juste avant.

    Mon probleme : l'appli fonctionne tres bien pour la première saisie mais dès la 2e j'ai un bug. L'appli garde en mémoire les rues du premier code postal rentré. Du coup, si je change le code postal, je n'ai comme choix que les rues du premier code postal que j'ai rentré. Là où l'appli est tres perverse c'est que en 2e saisie si je change le code postal (je rentre 69000 en lieu et place de 75005 que j'avais entré lors de la premiere saisie), que je valide l'avenue des champs elysées (rue qui faisait partie du premier code postal que j'avais saisit), l'appli reconnait que quelque chose ne va pas et me sors une 'Erreur d'execution 3021', lance le debogeur et me surligne une ligne de code VBA.

    Pour que ca re fonctionne je n'ai plus qu'a quitter le formulaire et le relancer.

    Etant donné que ca marche pour la 1e saisie, je me dis donc qu'il ne doit pas manquer grand chose pour que tout fonctionne bien. C'est pourquoi je fais appel à vous. Je reste à votre dispo pour toute infos complémentaire.

    Un grand merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    juste un bouton RAZ pour réinitialiser tes valeurs
    adresse = ""
    quai = ""
    -------------------Simplifi----------comme si tout était simple--------

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'ai oublié de préciser que tout en bas de mon formulaire il y a un bouton valider qui imprime et qui RAZ avec le code suivant (et que je pense suffisant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'RAZ formulaire
     
    Forms("Formulaire").Controls("code postal") = ""
    Forms("Formulaire").Controls("Mot clé") = ""
    Forms("Formulaire").Controls("Num_Sortie") = ""
    Forms("Formulaire").Controls("Voie") = ""
    DoCmd.OpenForm "Formulaire"

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    J'espère que "Formulaire" est ouvert avant que tes instructions "raz" s'exécutent.

    Mais pourquoi le réouvrir après alors ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui bien sûr. J'ai enlevé la ligne. Mais ca ne fonctionne toujours pas

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Oui c'est évident. Ce n'est pas en enlevant cette ligne qu'il va se produire un miracle...

    l'appli reconnait que quelque chose ne va pas et me sors une 'Erreur d'execution 3021', lance le debogeur et me surligne une ligne de code VBA.
    Quelle ligne ?

    Pour faire des saisie dans une table il faut déplacer le curseur d'enregistrement sur le newrec avec la commande :

    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par loufab Voir le message
    Oui c'est évident. Ce n'est pas en enlevant cette ligne qu'il va se produire un miracle...



    Quelle ligne ?
    La ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Num_Sortie = rec.Fields("[Num Quai]")
    Le champ num quai se trouve dans ma table adresse.
    Par contre je ne comprend pas trop ce que tu veux dire par 'Pour faire des saisie dans une table il faut déplacer le curseur d'enregistrement sur le newrec'. Désolé de ma meconnaissance du sujet...

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Les tables ACCESS comme beaucoup de SGBD contiennent une ligne spécifique pour l'ajout d'enregistrement.

    Si tu utilises un formulaire ou un recordset tu dois te positionner dessus pour créer l'enregistrement.

    Tu te place dessus en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.gotorecord... acnewrec
    dans le cas d'un formulaire.
    ou encore
    Et dans le cas d'un recordset DAO tu utilises la méthode Addnew (voir le tuto DAO)

    Pour la requete insert rien à faire le moteur de BD s'en charge.

    3021 c'est que tu n'as pas d'enregistrement en cours. Ne connaissant ni le code ni la méthode que tu utilises je dirais bêtement que Rc n'est pas positionné sur un record. Il est soit sur Eof soit sur Bof.

    cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Sorry mais je fais le max pour tout comprendre et j'avoue que j'ai du mal Je vais aller voir ton tuto parce que je suis en DAO. Ce qui est le plus pénible c'est que pour quelqu'un d'habitué ca prendrai 5min pour que tout fonctionne puisque le gros du travail est fait mais là c'est parti pour m'occuper une semaine. Merci de ton aide en tout cas.

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    C'est le cas pour tout. Pour quelqu'un d'habitué c'est plus rapide mais c'est souvent les détails où l'on passe le plus de temps.
    En tout les cas pour produire une application correcte il faut apprendre les mécanismes de bases. Et ça on ne peut pas le faire à ta place.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Problème d'alignement dans formulaire en css
    Par hartecel dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/03/2007, 19h11
  2. Affectation code VBA dans une feuille xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2007, 13h52
  3. [SQL]vs[VBA] dans formulaire de recherche
    Par alex.a dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 16h20
  4. code bouton dans formulaire
    Par tojiji dans le forum Contribuez
    Réponses: 8
    Dernier message: 19/06/2006, 10h40
  5. problème de variable dans formulaire
    Par chienlou dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 06h53

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