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>