【问题标题】:From MS Excel VBA, create a Standard Module in MS Access从 MS Excel VBA,在 MS Access 中创建一个标准模块
【发布时间】:2017-05-02 05:02:18
【问题描述】:

从 Excel (2013) 中的 VBA,我需要在 MS Access (2013) 数据库中创建一个标准模块。我愿意接受任何和所有的想法 - 谢谢!

【问题讨论】:

  • 你能先分享你自己的吗?
  • 当你说“你能先分享你自己的”时,我假设你在谈论我解决这个问题的想法,对吗?如果是这样,我玩过DAO,但没有进步。我也考虑过有一个带有模块的模板数据库,然后我会做一个 docmd.CopyObject,但我在那里也没有取得进展。
  • 是的,这不是代码编写服务,人们只会提供帮助。
  • 您需要的 VBA 可扩展性。
  • 查看VBE.ActiveVBProject.VBComponents.Add(vbext_ct_StdModule)

标签: excel vba ms-access module


【解决方案1】:

好的,我已经成功了,但我确信有些方面可以/应该以不同的方式完成。提醒一下,下面的代码在 MS Excel 中。这是代码:

'REQUIRES: MS Access 12.0 Object Library 
Dim ObjAccess As Access.Application 
Dim strPath As String 
strPath = "C:\Temp\MyDB_DEV_1.MDB" 
Set ObjAccess = New Access.Application 
With ObjAccess 
    .OpenCurrentDatabase strPath, True 
    .DoCmd.RunCommand acCmdNewObjectModule 
    .DoCmd.Save acModule, "Module1" 
    .DoCmd.Rename "MyCodedModule", acModule, "Module1" 
    .CloseCurrentDatabase 
    .Quit 
End With 
Set ObjAccess = Nothing`

【讨论】:

    【解决方案2】:

    上一个解决方案的自然演变是要向新模块添加代码。我决定采用替代路线并将现有标准模块“导入”到远程 MS Access 数据库中。演进的最后一步是远程运行导入远程数据库的标准模块中的过程。同样,此代码位于 Excel VBA 中。完成这两个任务的代码如下:

    'FROM EXCEL, REMOTELY INSTRUCT A MS ACCESS db   
    'IMPORTS .BAS FILE INTO db
    'EXECUTE THE 'RoutineWithinModule1' THAT IS WITHIN MODULE1 OF THE REMOTE db
    
    Dim appAccess As Access.Application
    Set appAccess = New Access.Application
    
    With appAccess
        .OpenCurrentDatabase "C:\Temp\MyDB_DEV_1.mdb"
        .VBE.ActiveVBProject.VBComponents.Import "C:\Module1.bas"
        .DoCmd.Save acModule, "Module1"
        .Run "RoutineWithinModule1"
        .CloseCurrentDatabase
        .Quit
    End With
    
    Set appAccess = Nothing
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多