Je modifie un projet et j'essaie de prendre une fonction VBA actuellement exécutée par un bouton Cliquez sur un formulaire et exécutez-le dans une macro afin que je puisse appeler cela pour exécuter dans Excel.
Le sous-courant actuel lit quelque chose comme ce qui suit. p>
Public Sub Command42_Click() 'Clear All Tables DoCmd.RunSQL "DELETE * FROM dbo_Tbl1" DoCmd.RunSQL "DELETE * FROM dbo_Tbl2" DoCmd.RunSQL "DELETE * FROM dbo_Tbl3" DoCmd.RunSQL "DELETE * FROM dbo_Tbl4" DoCmd.RunSQL "DELETE * FROM dbo_Tbl5" DoCmd.RunSQL "DELETE * FROM dbo_Tbl6" DoCmd.RunSQL "DELETE * FROM dbo_Tbl7" DoCmd.RunSQL "DELETE * FROM dbo_Tbl8" Dim strSQL As String Dim strLocalTable As String 'Data Download With CurrentDb.QueryDefs("setup_PTQ") .SQL = "select * from SQL_Server_tbl" End With strLocalTable = "dbo_tbl1" CurrentDb.Execute "INSERT INTO " & strLocalTable & " SELECT * FROM setup_PTQ" DoCmd.OpenQuery "qry_1" DoCmd.Close acQuery, "qry_2" End Sub
3 Réponses :
Vous devez modifier votre à partir du MS Access Documentation : P> Vous pouvez utiliser l'action Macro CODE> CODCODE CODE> dans les bases de données de bureau Accéder à
Appelez une base Visual Basic pour Applications (VBA) Vous pouvez également créer une fonction qui appelle simplement votre code> sous code>, par exemple: p> puis appelle cette fonction de L'action Sub code> vers un
fonction publique code> (ou juste
fonction code>, puisque le public est la portée par défaut) Dans un module pour pouvoir être en mesure d'être évalué à partir de l'action code> Code Code> d'une macro d'accès MS Access.
runcode code> de votre macro. p> p>
Merci pour votre réponse. L'accès macro fonctionne maintenant. J'ai toujours des problèmes dans l'étape Excel. Le code est ci-dessous et il me dis toujours que cela ne peut pas le trouver. Qu'est-ce que je fais mal?
Sous Accessmacro () Dim AppAccess comme accès.Application Set AppAccess = nouvel accès.Application AppAccess.opurrentDatabase "Connection chaîne" AppAccess.Visible = true appaccess.docmd.runmacro "module2" <- Comme il apparaît dans le groupe macro Interface d'accès. appaccess.closecurrentDatabase msgbox ("Données a été mise à jour") end sous
n'utilise pas docmd.runmacro p>
N'utilisez pas de macro p>
Utilisez AppAccess.Run "myNewModule.command42_click" P>
Un avantage supplémentaire de .Run est qu'il exécute des sous-routines ainsi que des fonctions. P>
Essayez ceci: p>
Au début, j'ai eu la même erreur 2425 que vous décrivez. Après avoir traversé le générateur d'expression pour sélectionner la fonction, cela fonctionnait bien. Mon fichier de base de données d'accès a une extension .mdb. P>