Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/04/2011, 11h22   #1
Invité de passage
 
Inscription : avril 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
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
Shrek63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 16h12   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
juste un bouton RAZ pour réinitialiser tes valeurs
adresse = ""
quai = ""
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 10h23   #3
Invité de passage
 
Inscription : avril 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
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 :
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"
Shrek63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 15h56   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
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,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 16h07   #5
Invité de passage
 
Inscription : avril 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
Oui bien sûr. J'ai enlevé la ligne. Mais ca ne fonctionne toujours pas
Shrek63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 16h14   #6
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
Oui c'est évident. Ce n'est pas en enlevant cette ligne qu'il va se produire un miracle...

Citation:
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 :

__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 16h54   #7
Invité de passage
 
Inscription : avril 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
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 :
 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...
Shrek63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 17h11   #8
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
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 :
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,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/04/2011, 17h30   #9
Invité de passage
 
Inscription : avril 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 5
Points : 0
Points : 0
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.
Shrek63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 07h59   #10
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
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.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h10.


 
 
 
 
Partenaires

Hébergement Web