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 25/08/2011, 14h52   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
Par défaut ouvrir une db via une autre db

Bonjour,

j'essaye d'ouvrir une db via une autre db.
J'utilise le code trouvé ici http://access.developpez.com/faq/?pa...e#ExecProcAppl

Code :
1
2
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\etude.mdb"
Mais j'obtiens un message d'erreur :

Run-Time error '7866'
MS Access can't open the database because it is missing, or opened exclusively by another user.

Une idée ?
apnw7931 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 17h49   #2
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
Pour quelle raison as-tu besoin d'ouvrir cette autre db ? Afficher un formulaire ? Consulter des tables ? Exécuter une macro ?
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 12h48   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
Citation:
Envoyé par dut-dut Voir le message
Pour quelle raison as-tu besoin d'ouvrir cette autre db ? Afficher un formulaire ? Consulter des tables ? Exécuter une macro ?
Pour exécuter une macro se trouvant dans un module de ma deuxième base de données.
apnw7931 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 14h53   #4
Membre régulier
 
Guillaume
Inscription : décembre 2007
Messages : 161
Détails du profil
Informations personnelles :
Nom : Guillaume
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : décembre 2007
Messages : 161
Points : 91
Points : 91
Effectivement, il te faut suivre la proposition de Lucifer dans la FAQ http://access.developpez.com/faq/?pa...e#ExecProcAppl

A priori quand on lit le message d'erreur, Access n'a pas trouvé la base de donnée cible. Es-tu sûr du chemin indiqué ? (dans l'exemple : D:\etude.mdb)

Autre problème possible mais moins probable : quelqu'un d'autre est en train de modifier la base cible (ouverture en mode exclusif... )
Ta base nécessite-t-elle un mot de passe à l'ouverture ?
Sous quelle version d'Access travailles-tu ?
Et est-ce que c'est la même pour les deux bases ?
dut-dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 16h32   #5
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
Es-tu sûr du chemin indiqué ? Oui
Quelqu'un d'autre est en train de modifier la base cible ? Non
Ta base nécessite-t-elle un mot de passe à l'ouverture ? Non
Sous quelle version d'Access travailles-tu ? Access 2003
Et est-ce que c'est la même pour les deux bases ? Oui

C'est désepérant.. je chipote depuis longtemps, sans aucuns résultats
apnw7931 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 08h25   #6
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Bonjour,
J'ouvre une autre base non verrouillée en cliquant sur un bouton d'un formulaire.
Si cela peut te servir;

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub OUVRIR_BASE_Click()
Select Case MsgBox("Nous sommmes, le " & Format(Date, "dddd dd mmmm yyyy") & vbNewLine & "Voulez vous ouvrir la base", vbOKCancel, "TB NEW")
Case vbOK
 
'Ce code permet d'ouvrir la Base BASE et de faire la mise à jour.
Dim strBase As String
strBase = "msaccess.exe " & Chr(34) & "\\Chemin\NOM base.mdb" & Chr(34)
Call Shell(strBase, 1)
 
Case vbCancel
End Select
 
End Sub
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h02   #7
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
Merci Bernard67,

avec ce code, j'arrive effectivement à ouvrir une deuxième base de données Access.

Maintenant, pourrait-on me dire comment, via ma première base de données (VBA):

- eviter le pop up qui demande "Do you want to block Unsafe expressions" et simuler le clic sur le bouton 'NO'
- eviter le pop up suivant : Security Warning, et simuler le clic sur le bouton 'OPEN'
- et enfin, executer un module particulier.

Merci d'avance.
apnw7931 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h29   #8
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Pour eviter les messages :

Code :
1
2
3
4
5
DoCmd.SetWarnings False
 
le code et enfin
 
DoCmd.SetWarnings True
Pour appeler la fonction :

Code :
Call ......   'Cherche la fonction
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h19   #9
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
DoCmd.SetWarnings False
--> N'agit pas sur la (nouvelle) base de données que j'ouvre

Call nomdumodule
--> Compile error : Sub or Function not defined

apnw7931 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 13h07   #10
Membre du Club
 
Inscription : décembre 2006
Messages : 222
Détails du profil
Informations personnelles :
Âge : 58

Informations forums :
Inscription : décembre 2006
Messages : 222
Points : 61
Points : 61
Le code de la fonction doit etre dans un module :

Code :
Public Function NOM_FONCTION()
puis dans le code d'un bouton sur formulaire (par exemple) tu appelles cette fonction par :

Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 15h48   #11
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 125
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 125
Points : 19
Points : 19
Je reviens à mon problème.
Je n'ai toujours pas réussi à lancer un module Access via un module Excel.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub OUVRIR_BASE_Click()
 
Dim strBase As String
 
strBase = "msaccess.exe " & Chr(34) & "Z:\MIS\test.mdb"
Call Shell(strBase, 1)
 
'Ici, j'ai besoin
'1/ de pouvoir ne pas afficher les 2 alertes qui suivent l'ouverture de la bdd
'2/ lancer le module de la base de donnnée
 
End Sub

1/ Avec DoCmd.SetWarnings False, j'obtiens une erreur 'Object required'
2/ Avec call NOM_FONCTION, j'obtiens une erreur 'Compile error : Sub or Function not defined' puisqu'il essaye de trouver la fonction dans Excel (qui n'existe pas) plutot que dans Access

Une aide supplémentaire s'il vous plait ?
apnw7931 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 02h53.


 
 
 
 
Partenaires

Hébergement Web