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 03/06/2011, 15h59   #1
Invité de passage
 
Homme
Étudiant
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 4
Points : 4
Par défaut Formulaire Erreur 2450

Bonjour,
Je travail actuellement sur une base access 2007 que j'ai repris.
Je rencontre une erreur 2450 que je ne parvient pas à résoudre.
voici le code en question:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Function Lecture_Liaison()
Dim MaBd As Database, Matable As TableDef, Liaison As Recordset, PARAM As Recordset, MaZone As Workspace, Connectée As Database
'
Set MaZone = DBEngine.Workspaces(0)
'
MonFichier = Forms![Accueil].Liste49.Column(2, Forms![Accueil].Liste49.ItemsSelected(0)) & "\Liaison_32.MDB"
Magasin = Forms![Accueil].Liste49.Column(1, Forms![Accueil].Liste49.ItemsSelected(0))
'
If IsNull(MonFichier) Then MonFichier = ""
If Len(MonFichier) = 0 Then Exit Function
'
Set Lia_Bd = MaZone.OpenDatabase(MonFichier)
Set Liaison = Lia_Bd.OpenTable("Liaison")
'
Liaison.MoveFirst
Forms![paramètres]![Chemin_Donnees] = Liaison![Chemin_Donnees]
Forms![paramètres]![Chemin_Suivi] = Liaison![Chemin_Suivi]
Forms![paramètres]![Chemin_Archive] = Liaison![Chemin_Archive]
Liaison.Close: Lia_Bd.Close
'
Forms![paramètres]![Nom_Poste] = Lecture_Identification(2)
Forms![paramètres]![Num_Poste] = Lecture_Identification(1)
Forms![paramètres]![Con_Table] = Lecture_Identification(5)
'
End Function
Lorsque j'exécute ce code access me met alors une erreur 2450 et un message "Access ne trouve pas le formulaire "Accueil" dans le module..." J'active le débogueur et Access me surligne en jaune cette ligne de code

Code :
MonFichier = Forms![Accueil].Liste49.Column(2, Forms![Accueil].Liste49.ItemsSelected(0)) & "\Liaison_32.MDB"
Le formulaire Accueil fonctionne très bien et marche dans tout les autres modules. Puis ce code s'exécute parfaitement dans Access97. (J'ai bien référencé la bibliothèque DAO3.51)
Merci
Valentin.
bachintosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 22h04   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 467
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 467
Points : 7 544
Points : 7 544
Bonjour,

Je vois deux cause probables à ton problème :
  • soit il y a une subtile faute d'orthographe dans le nom de ton formulaire (que je n'ai pas remarquée)
  • soit simplement le formulaire Accueil est fermé au moment de l'appel.

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.
marot_r est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 22h16   #3
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonsoir,
Il faudrait décomposer pour mieux comprendre
Code :
1
2
3
 
colonne =  Forms!Accueil.Liste49.ItemsSelected(0)
MonFichier = Forms!Accueil.Liste49.Column(2,colonne) & "\Liaison_32.MDB"
mais Forms!Accueil.Liste49.ItemsSelected(0) semble erroné
S'il s'agit dune liste déroulante
Code :
1
2
 
colonne =  Forms!Accueil.Liste49.Column(0)
0 pour le 1er champ, 1 pour le second, etc
Il faut comprendre que ce champ comprend le numéro de la colonne
sinon donner des précisions sur le contenu des champs de la liste Liste49
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2011, 21h25   #4
Invité de passage
 
Homme
Étudiant
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 4
Points : 4
Bonsoir,
Je vous remercie de vos réponses.
marot_r, j'ai vérifié l'orthographe il n'y a pas de faute. Puis j'ai essayé en ouvrant le formulaire "Accueil" juste avant l'instruction mais sans succès.

helas, j'ai décomposé comme vous m'avez conseillé, j'avais cependant la même erreur. J'ai ensuite remplacé
colonne = Forms!Accueil.Liste49.ItemsSelected(0) par colonne = Forms!Accueil.Liste49.Column(0) et maintenant je n'ai plus la même erreur, il ne trouve pas la base de donnée "/Liason_32.mdb".
J'ai changé la valeur "0" avec 1,2 ou autre et même résultat. Je ne comprend pas trop quelle valeurs mettre.

La liste49 contient juste une liste de chemin de dossier contenant des bases de données. Ici il n'y en a qu'un dossier pour la démonstration, qui se nomme démonstration, et qui contient le fichier Liason_32.mdb.

Je vous remercie de vos réponses, je pars en weekend quelques jour je serais de retour mardi soir et je vous répondrais.

Bonne soirée tout le monde

Valentin.
bachintosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2011, 08h53   #5
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Si la liste déroulante n'est composée que d'un champ
Code :
1
2
 
Forms!Accueil.Liste49
suffit
Si la liste déroulante comprend plusieurs champs dont un correspond au dossier
Code :
1
2
3
4
 
Forms!Accueil.Liste49.Column(0) 'si dossier dans 1ère colonne
Forms!Accueil.Liste49.Column(1) 'si dossier dans 2ème colonne
'etc
pour vérifier
Code :
1
2
 
MsgBox("Dossier : " & Forms!Accueil.Liste49.Column(0) )
helas 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 18h34.


 
 
 
 
Partenaires

Hébergement Web