使用macros更改Excel SQL命令

我需要创build一个Excel 2010macros,它更改Excel连接的SQL命令文本。 如果有问题,我正在使用SQL Server。

我怎么能这样做? 我在网上find了几个链接,但都没有工作。

最近使用的代码是:

Dim comText As String comText = "select top 10000 [activitypointer0.subject] as subject , [activitypointer0.activityid] as activityid , [activitypointer0.instancetypecodename] as instancetypecodename , [activitypointer0.scheduledend] as scheduledend , [activitypointer0.createdbyname] as createdbyname , [activitypointer0.activitytypecodename] as activitytypecodename , [a_9cdbdceab5ee4a8db875050d455757bd.name] as [a_9cdbdceab5ee4a8db875050d455757bd.name]" comText = comText & " from FilteredActivityPointer as [activitypointer0] left outer join FilteredAccount as [a_9cdbdceab5ee4a8db875050d455757bd] on ([activitypointer0.regardingobjectid] = [a_9cdbdceab5ee4a8db875050d455757bd.accountid])" comText = comText & " where ([activitypointer0.activitytypecode] = 4201 and ([activitypointer0.ownerid] in (N'{69CB3CDE-0998-E011-916A-00155D000607}' , N'{D8D40800-B798-E011-916A-00155D000607}' , N'{7ECB3CDE-0998-E011-916A-00155D000607}' , N'{70CB3CDE-0998-E011-916A-00155D000607}')) and [activitypointer0.statecode] = 1 and [activitypointer0.scheduledendutc] >= '20111231 22:00:00' and [activitypointer0.scheduledendutc] < '20120131 22:00:00' )" comText = comText & " order by [activitypointer0.subject] asc , [activitypointer0.activityid] asc" With ActiveWorkbook.Connections("conCRM").ODBCConnection .commandText = comText End With ActiveWorkbook.Connections("conCRM").Refresh 

这给我一个关于列名的错误。

列名称错误

也许你应该使用像[activitypointer0].[subject]这样的列名,而不是[activitypointer0.subject] (和其他类似的),如果你得到的错误只是在抱怨列名。