GetObject可以这样做吗?

时间:2019-05-15 20:41:11

标签: ms-access access-vba

我目前正在开发一个宏,该宏会将各种形式输入到访问数据库中。

由于该程序的性质,我不得不将主程序分为两个子程序并调用它们,但是现在我需要使用getobject两次调用文件路径。

我使用getobject打开一个文件,然后使用myrec.fields(〜列名〜)= xlsht.cells(1,“ a”)填充各种列值。我不确定是否还有其他“有效”方法来完成此任务。

我想知道是否可以通过GetObject命令使用变量代替文件路径,而不是需要手动替换代码中的文件路径。

我已经测试了很多不同的代码,包括路径,类功能,但是我认为我对VBA的了解不足以真正充分利用它们。

我可以使用它来工作

Dim XL As Variant
Dim XLApp As Variant
Dim XLsht As Variant
Dim XLwrkbk As Variant

Set XL = CreateObject("Excel.Application")
Set XLwrkbk = GetObject(~file path~)
Set XLsht = XLwrkbk.Worksheets(1)
Set MyRec = CurrentDb.OpenRecordset("database name")

理想情况下,我希望它成为

Dim filename As String
Dim XL As Variant
Dim XLApp As Variant
Dim XLsht As Variant
Dim XLwrkbk As Variant

filename = " ~insert file path~ "

Set XL = CreateObject("Excel.Application")
Set XLwrkbk = GetObject(filename)
Set XLsht = XLwrkbk.Worksheets(1)
Set MyRec = CurrentDb.OpenRecordset("database name")

我收到运行时错误

运行时错误“ 5”: 无效的过程调用或参数。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

    Dim XL As New Excel.Application, Filename As String

    Filename = "~ your file ~"

    XL.Workbooks.Open (Filename)
    myrec.fields(~column name~) = XL.Worksheets(1).Range("A1").value