Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer macro access dans un mdb à partir de VB

4 réponses
Avatar
Alain Ménard
Bonjour à tous,

J'ai une macro dans une base Access qui est gênante et empêche l'exécution
de mon prog VB lorsque je demande l'impression d'étiquettes.

En fait comme un idiot, ma macro Autoexec masque la fenêtre de base de
données, et VB essaye d'exécuter un élément du menu alors que le menu n'est
plus accessible.

Seulement, mon logiciel est dans le commerce et le seul moyen c'est de
tester la présence de la macro autoexec lorsque j'arrive dans mon appli et
que je la supprime.

Un moyen ?

Pour info, j'ai tous les droits dessus

Merci

--
Amicalement

Alain

4 réponses

Avatar
Alain Ménard
Une solution peut être même meilleure serait de pouvoir Afficher à nouveau
la fenêtre de base de données par FENETRE AFFICHER, comme ca le report peut
s'ouvir.

Je ne trouve pas la commande

--
Amicalement

Alain

"Alain Ménard" a écrit dans le message de
news:41c949b5$0$17527$
Bonjour à tous,

J'ai une macro dans une base Access qui est gênante et empêche l'exécution
de mon prog VB lorsque je demande l'impression d'étiquettes.

En fait comme un idiot, ma macro Autoexec masque la fenêtre de base de
données, et VB essaye d'exécuter un élément du menu alors que le menu


n'est
plus accessible.

Seulement, mon logiciel est dans le commerce et le seul moyen c'est de
tester la présence de la macro autoexec lorsque j'arrive dans mon appli et
que je la supprime.

Un moyen ?

Pour info, j'ai tous les droits dessus

Merci

--
Amicalement

Alain




Avatar
Eric
Bonjour Alain,

Ci dessous un bout de code qui t'affiche dans la fenêtre Exécution la
liste des macros de la bd.(Référencer Microssoft Access 9.0 Object
Library ou + au projet)

Dim appAccess As New Access.Application
Private Sub Command1_Click()
Dim appAccess As Object, cheminBD As String
Dim oMacro As Object
Set appAccess = CreateObject("Access.Application.9")
cheminBD = "C:Documents and SettingsxXxMes documents
BaseExo181203.mdb"
appAccess.OpenCurrentDatabase cheminBD
For Each oMacro In appAccess.CurrentProject.allmacros
Debug.Print oMacro.Name
Next oMacro
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
End Sub

A+
Eric

"Alain Ménard" écrivait
news:41c949b5$0$17527$:

Bonjour à tous,

J'ai une macro dans une base Access qui est gênante et empêche
l'exécution de mon prog VB lorsque je demande l'impression
d'étiquettes.

En fait comme un idiot, ma macro Autoexec masque la fenêtre de base de
données, et VB essaye d'exécuter un élément du menu alors que le menu
n'est plus accessible.

Seulement, mon logiciel est dans le commerce et le seul moyen c'est de
tester la présence de la macro autoexec lorsque j'arrive dans mon
appli et que je la supprime.

Un moyen ?

Pour info, j'ai tous les droits dessus

Merci



Avatar
Eric
re,

Marche pas pour ce que tu veux faire car on ne peut pas supprimer un objet
de la collection AllMacros et ca verrouille la bd. Désolé

Eric

Eric écrivait news:XnF95C77B7B858BfframZZhotmailcom@
207.46.248.16:

Bonjour Alain,

Ci dessous un bout de code qui t'affiche dans la fenêtre Exécution la
liste des macros de la bd.(Référencer Microssoft Access 9.0 Object
Library ou + au projet)

Dim appAccess As New Access.Application
Private Sub Command1_Click()
Dim appAccess As Object, cheminBD As String
Dim oMacro As Object
Set appAccess = CreateObject("Access.Application.9")
cheminBD = "C:Documents and SettingsxXxMes documents
BaseExo181203.mdb"
appAccess.OpenCurrentDatabase cheminBD
For Each oMacro In appAccess.CurrentProject.allmacros
Debug.Print oMacro.Name
Next oMacro
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
End Sub

A+
Eric


Avatar
Alain Ménard
Bonjour Eric,

Merci de t'être penché sur mon souci.

J'ai réussi à afficher la fenetre de base de données. Pour cela ne pas
utiliser la commande : WindowsUnhide car cela affiche une boîte de dialogue
et le sendkeys n'est pas conseillé car peu fiable.

Alors j'ai trouvé la soluce suivante :

.DoCmd.SelectObject acTable, "Collection", True

En demandant à sélectionner une table existante, cela réaffiche la fenetre
de base de données et du coup je peux à nouveau lancer mon report en
preview, ouf.

Merci

Alain



"Eric" a écrit dans le message de
news:
re,

Marche pas pour ce que tu veux faire car on ne peut pas supprimer un objet
de la collection AllMacros et ca verrouille la bd. Désolé

Eric

Eric écrivait


news:XnF95C77B7B858BfframZZhotmailcom@
207.46.248.16:

> Bonjour Alain,
>
> Ci dessous un bout de code qui t'affiche dans la fenêtre Exécution la
> liste des macros de la bd.(Référencer Microssoft Access 9.0 Object
> Library ou + au projet)
>
> Dim appAccess As New Access.Application
> Private Sub Command1_Click()
> Dim appAccess As Object, cheminBD As String
> Dim oMacro As Object
> Set appAccess = CreateObject("Access.Application.9")
> cheminBD = "C:Documents and SettingsxXxMes documents
> BaseExo181203.mdb"
> appAccess.OpenCurrentDatabase cheminBD
> For Each oMacro In appAccess.CurrentProject.allmacros
> Debug.Print oMacro.Name
> Next oMacro
> appAccess.CloseCurrentDatabase
> Set appAccess = Nothing
> End Sub
>
> A+
> Eric