Excel-to-Excel 数据连接提供有限的 SQL 选项

Excel-to-Excel data connection gives limited SQL options

我主要是一个 Excel 用户,只在我需要的时候涉足 techie/programming 方面,所以假设我在所有这些方面都是新手数据 links,但是:

2010 年 Excel 有很多次,我去了

这让我能够连接到我们的数据库 tables。完成后,我可以去

并将命令类型更改为 SQL。然后我可以粘贴我在 Microsoft SQL Server 2012 中使用的相同类型的 SQL,一切都很好。它连接数据库,根据SQL代码提取需要的信息,得到我想要的

但是我有一个不同的连接,连接到另一个 Excel 工作簿。我尝试通过两种方式创建连接:

1) 数据 -> 来自其他来源... -> 来自 Microsoft Query -> Excel 文件

2) 数据 -> 从 Access -> 然后浏览并选择 Excel 文件

这两种方法都有效,并且给我一个 link 到我的 Excel 文件。但是当我尝试像往常一样编辑 SQL 查询时,它们都有同样的问题:

我转到连接属性...-> 定义选项卡-> 命令类型,它显示 SQL,然后我编辑出现在命令文本框中的 SQL 代码在下面。

我的问题是 SQL 现在无法识别我通过 SQL 服务器方法识别时很高兴识别的语法。例如:

目前的SQL代码很简单,就是:

SELECT
[ID],
[Gift]
FROM
    [Data$]
WHERE
    [Gift] <> ''
    AND
    [Gift] <> 'Not a Gift'
    AND
    [ID] <> ''

我只需要第三列,在 ID 和 Gift 旁边,名为 [Refresh Date]。我猜这会是:

SELECT
[ID],
[Gift],
CURRENT_TIMESTAMP AS [Refresh Date]

但这并不像上面描述的那样有效。

我注意到连接类型不同,这取决于我使用的连接方法 - 'Database Query' 用于 Excel 文件方法,'Excel File' 用于访问方法和 SQL 服务器一的 OLE DB 查询;我不知道这是否会影响我能够使用的 SQL 语言。对于不同的方法,连接字符串也完全不同,但我不确定这是否与我不能使用的不仅仅是基本的 SQL 命令有关。

我的实际目标是让我能够在 Excel 中获得一个单元格,(a) 将日期放入执行数据 -> 全部刷新的人员刷新日期,并且 (b) 不会' 如果 table 的刷新失败,请输入该日期。我认为最简单的方法就是在 table 中创建一个包含当前日期的列,但我想知道 SQL 限制是否会阻止它?

有没有办法像我对 SQL 服务器 link 所做的那样,在 SQL 中获得更多功能?或者作为解决方法是否有其他方法,也许通过 VBA,来确定 Table 是否已成功刷新,因此我可以使用 [=105= 在其他地方的单元格中写下今天的日期] 如果它确实刷新成功(我已经有 VBA 为我执行 Data->RefreshAll)?

提前致谢!

您使用的 SQL 的风格比 MS SQL 的 T-SQL 更接近 Access DAO SQL。您不会有 CURRENT_TIMESTAMP 作为选项,但 Now() 应该可以作为替代。

SELECT
[ID],
[Gift],
Now() AS [Refresh Date]