gpt4 book ai didi

sql - 更改 '.CommandText' 不会添加新列

转载 作者:行者123 更新时间:2023-12-04 20:13:04 24 4
gpt4 key购买 nike

我对将 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”语句不是必需的,因为该表是专门为我们组设计的

该表由约 50 列组成,我显然不需要所有列。

目标:
在名为“DON'T YOU DARE TOUCH THIS”的工作表中有一个 SQL 连接,并且通过其他工作表中的命令按钮/用户表单能够收集不同的数据摘要。

现在,虽然操作 SQLstr 变量允许我下载我需要的数据,但我不需要 全部 该数据。只是,比方说,7 或 8 列。

第一个(小)问题:
Excel 似乎忽略了我的 SELECT 语句中的列顺序。而不是上面的命令,它 显示我想要的列,但不是按照我想要的顺序,而是按照我使用 SELECT * 时它们出现在表中的顺序
我可以解决这个问题,但如果有办法解决它,强制我想要的列的顺序会更直观。

第二个(主要)问题:
看起来我无法通过更改 .CommandText 和刷新来添加更多行。例如:
1. SELECT * 返回 50-something 列
2. 我将 * 更改为,例如,六列
3. Excel 中的表格按自己的顺序显示六列
4. 我将 CommandText 更改为 15 列,或更改为 *
5. 表格仅显示六列。

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

我应该使用什么来代替更改 CommandText 和刷新连接来实现这一点,或者如何说服 Excel 显示我想要的列数?

最佳答案

尝试右键单击表,选择表,然后选择外部数据属性。然后取消选中保留列排序/过滤/布局:

enter image description here

关于sql - 更改 '.CommandText' 不会添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com