J'ai un classeur Excel 2007 qui contient une connexion de données ODBC (pour FoxPro, si cela est important). La connexion est définie sur "actualiser les données lors de l'ouverture du fichier".Les données ODBC Excel 2007 sont remplies lors de leur ouverture via l'Explorateur Windows, mais pas lorsqu'elles sont ouvertes via Access VBA
Lorsque j'entre dans l'explorateur de fichiers et ouvre le classeur, les données sont insérées dans la feuille de calcul comme il se doit. Toutefois, lorsque j'exécute une fonction dans Access VBA qui ouvre le classeur, les données de la connexion ODBC ne sont pas remplies.
Pourquoi est-ce que cela changerait le mode d'ouverture du classeur? Et plus important encore, comment puis-je obtenir les données à remplir lorsque le classeur est ouvert via Access VBA?
Voici le code VBA Access ouvre le classeur:
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