我最近更新到了Office 365,一些vba工具随即失效,但是大多数都易于修复。这使我感到困惑:
我的代码使用查询表从访问数据库中获取一些数据(我怀疑这是在那儿崩溃),然后在为某些外部软件创建输入文件之前进行了一些计算。然后,在获取和处理结果文件以在Excel中进行可视化之前,我将使用shell使用该新创建的输入文件运行该外部软件。代码是广泛的,因此在这里我不会重现大量代码。
对于数据库查询,我使用的是语法(有关代码操作的详细说明,请参见下文):
mydatabase.QueryTables.Add(...等
下面显示了当我尝试运行脚本时弹出的窗口,我使用消息框标志来证明这种情况是在它第一次尝试访问数据库时发生的。
在我升级到O365之前,它在Excel 2011上运行良好。请注意,访问权限也在同一时间更新。
我是自学成才的,不知道这意味着什么或如何解决。谁能提供任何见识?
代码的工作方式:
在主体中:
MsgBox "Starting Query"
gtdatabase.Visible = xlSheetHidden 'hide the worksheet
Create_DBQuery number
MsgBox "Completing Query"
我看到“正在开始查询”,但随后看到“选择数据源”窗口,但没有看到我的查询已经完成。子“ CreateDBQuery”的工作方式如下(已修改,因此删除了标识符):
Sub Create_DBQuery(ByVal number As String)
'
With mydatabase.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MyDept;Description= GT Database;UID=Administrator;APP=Microsoft Office 2003;WSID=XXXX111;DATABASE=GTDB;Tr" _
), Array("usted_Connection=Yes")), Destination:=mydatabase.Range("A1"))
.CommandText = Array( _
"SELECT DataSheetSummary.a, DataSheetSummary.b, DataSheetSummary.c, DataSheetSummary.d, DataSheetSummary.e, DataSheetSummary.f, DataSheetSummary.g, DataSheetSummary.h, Data" _
, _
"SheetSummary.j, DataSheetSummary.k, DataSheetSummary.l, DataSheetSummary.m, DataSheetSummary.n, DataSheetSummary.p, DataSheetSummary.q, DataSheetSummary.r, DataSheetSummary." _
, _
"s, DataSheetSummary.t, DataSheetSummary.u, DataSheetSummary.v, DataSheetSummary.w" & Chr(13) & "" & Chr(10) & "FROM GT.dbo.DataSheetSummary DataSheetSummary" & Chr(13) & "" & Chr(10) & "WHERE (DataSheetSummary.DataSheet_Number Like '" & number & "')" _
& Chr(13) & "" & Chr(10))
.Name = "Query from GT_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub