【问题标题】:Excel 2007 ODBC data populates when opened via Windows Explorer, but not when opened via Access VBAExcel 2007 ODBC 数据在通过 Windows 资源管理器打开时填充,但在通过 Access VBA 打开时不填充
【发布时间】:2010-09-01 13:33:04
【问题描述】:

我有一个 Excel 2007 工作簿,其中包含一个 ODBC 数据连接(到 FoxPro,如果这很重要的话)。连接设置为“打开文件时刷新数据”。

当我进入文件资源管理器并打开工作簿时,数据会按应有的方式填充到电子表格中。但是,当我在 Access VBA 中执行打开工作簿的函数时,不会填充来自 ODBC 连接的数据。

为什么打开工作簿的方式会有所不同?更重要的是,当通过 Access VBA 打开工作簿时,如何获取要填充的数据?

这是打开工作簿的 Access VBA 代码:

Public Sub Subform_cmdOpenFile_Click(frm As Form)

Dim rs As Recordset
Dim ftiSuperclass As FilingTemplateInterface

Set rs = frm.RecordsetClone

If (rs.BOF Or rs.EOF) Then GoTo PROC_EXIT

Set ftiSuperclass = New FilingTemplateInterface
ftiSuperclass.ShowWorkbook rs!Directory & frm!Filename

PROC_EXIT:
On Error Resume Next
rs.Close
Set rs = Nothing
ftiSuperclass.QuitExcel
Set ftiSuperclass = Nothing
Exit Sub

PROC_ERROR:
Resume PROC_EXIT
End Sub


Friend Sub ShowWorkbook(strFilename As String)
Dim fso As New Scripting.FileSystemObject
Dim appExcel As New Excel.Application
appExcel.Workbooks.Open Filename:=strFilename, AddToMRU:=True
appExcel.visible = True
Set appExcel = Nothing
End Sub

【问题讨论】:

    标签: excel ms-access odbc vba


    【解决方案1】:

    通过添加下面提到的代码行来解决,以在打开时强制刷新连接:

    Friend Sub ShowWorkbook(strFilename As String)   
    Dim fso As New Scripting.FileSystemObject   
    Dim appExcel As New Excel.Application   
    appExcel.Workbooks.Open Filename:=strFilename, AddToMRU:=True  
    appExcel.ActiveWorkbook.Connections("ConnectionName").Refresh 'added this line
    appExcel.visible = True   
    Set appExcel = Nothing   
    End Sub     
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多