je le code suivant:erreur intermittente lors d'une tentative de contrôler une autre base de données dans VBA
Dim obj As New Access.Application
obj.OpenCurrentDatabase (CurrentProject.Path & "\Working.mdb")
obj.Run "Routine"
obj.CloseCurrentDatabase
Set obj = Nothing
Le problème que je expérimenter est un pop-up qui me dit Access ne peut pas mettre l'accent sur l'autre base de données. Comme vous pouvez le voir dans le code, je veux exécuter un sous-programme dans un autre mdb. Tout autre moyen d'y parvenir sera apprécié.
Je travaille avec MS Access 2003.
Ceci est une erreur intermittente. Comme il s'agit d'un code de production qui ne sera exécuté qu'une fois par mois, il est extrêmement difficile de le reproduire, et je ne peux pas vous donner le texte et le numéro exact pour le moment. C'est le deuxième mois que cela s'est passé.
Je suppose que cela peut se produire lorsque quelqu'un travaille avec cette base de données ou avec l'autre.
Le flux de données consiste à mettre à jour tous les «projets» une fois par mois dans une base de données, puis à rendre ces informations disponibles dans l'autre base de données.
Peut-être, c'est à cause de la première ligne dans le code 'Routines': Si vbNo = MsgBox ("Voulez-vous mettre à jour?", VbYesNo, "Mise à jour") Puis sortie Fonction End If
Je vais faire un autre sous-programme sans MsgBox.
J'ai été capable de reproduire ce comportement. Cela se produit lorsque le focus doit se déplacer vers la base de données appelée, mais que l'utilisateur définit le focus ([ALT] + [TAB]) sur la première base de données. La «solution» était d'éduquer l'utilisateur.
Ceci est une erreur intermittente. Comme il s'agit d'un code de production qui ne sera exécuté qu'une fois par mois, il est extrêmement difficile de le reproduire, et je ne peux pas vous donner le texte et le numéro exact pour le moment. C'est le deuxième mois que cela s'est passé.
Je suppose que cela peut se produire lorsque quelqu'un travaille avec cette base de données ou avec l'autre.
Le flux de données consiste à mettre à jour tous les «projets» une fois par mois dans une base de données, puis à rendre ces informations disponibles dans l'autre base de données.
Peut-être, c'est à cause de la première ligne dans le code 'Routines': Si vbNo = MsgBox ("Voulez-vous mettre à jour?", VbYesNo, "Mise à jour") Puis sortie Fonction End If
Je vais faire un autre sous-programme sans MsgBox. J'ai essayé cela dans notre base de données de développement et cela fonctionne. Je l'ai essayé dans notre base de données de développement. Cela ne veut rien dire car l'autre code fonctionne aussi bien dans le développement.
Je n'ai jamais vu Access donner ce message d'erreur particulier. J'ai vu "vous n'avez pas la permission d'ouvrir la base de données" et "Access ne peut pas mettre l'accent sur" un objet, mais pas le message d'erreur que vous dites. Pourriez-vous s'il vous plaît poster le numéro d'erreur et le message d'erreur exact? Je soupçonne, comme le fait Remi, que l'erreur est dans le code de votre routine dans l'autre DB, donc vous aurez probablement besoin de poster cela aussi. –