更改“.CommandText”不会添加新列

我很不熟悉将SQL合并到VBA中,但对于我的下一个技巧,我想根据自己的喜好来安排列。

Sub ExecuteQuery1() Dim SQLstr As String SQLstr = "select [Id], [Serviceman], [Status], [StatusTXT], [Inner_status], [Departure] , [EntryDate] " & Chr(10) & _ "from [AW_HD_S] order by [Id]" ActiveWorkbook.Connections("HelpDesk Online").OLEDBConnection.CommandText = SQLstr ActiveWorkbook.Connections("HelpDesk Online").Refresh End Sub 

注意:“where”语句不是必需的,因为表格是专门为我们组devise的

该表由〜50列组成,显然不需要全部。

目标:在工作表中有一个名为“不要你敢接触这个”的SQL连接,而其他表中的commandbuttons / userforms能够收集不同的数据摘要。

现在,虽然操纵SQLstrvariables允许我下载我需要的数据,但我不需要所有这些数据。 只是,比方说,7或8列。

第一(次要)问题:
Excel似乎忽略了我的SELECT语句中列的顺序。 而不是上面的顺序,它确实显示我想要的列,但不是按照我想要的顺序,而是按照它们在表中显示的顺序使用SELECT *我可以处理,但是如果有方法修复它,这将是更直观的强制我想要的列的顺序。

第二(主要)问题:
它看起来像我不能添加更改行.CommandText和刷新行。 例如:
1. SELECT *返回50个东西的列
我把*改成例如六栏
3. Excel中的表格按自己的顺序显示六列
4.我将CommandText更改为15列,或者*
5.表格只显示六列。

现在这真的很麻烦,因为我想用同一个连接来执行不同的SQL命令并接收不同数量的列。

我应该使用什么,而不是改变CommandText和刷新连接来实现,或者如何说服Excel显示我想要的列的数量?

尝试右键单击表格,select“表格”,然后select“外部数据属性”。 然后取消选中保留列sorting/筛选/布局:

在这里输入图像说明