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

我主要是一个Excel用户,只在需要的时候才涉足到技术/编程方面,所以假设我在所有这些数据链接上都是一个新手,但是:

有几次,在Excel 2010中,我已经去了

  • 数据 – >从其他来源… – >从SQL Server

这使我有能力连接到我们的数据库表。 完成之后,我可以去

  • 数据 – >全部刷新[V] – >连接属性… – >定义选项卡

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

但是,我有一个不同的连接,以不同的Excel工作簿。 我试着用两种方法创build连接:

1)数据 – >从其他来源… – >从Microsoft Query – > Excel文件

2)数据 – >从访问 – >然后浏览并selectExcel文件

这两个方法的工作,并让我一个链接到我的Excel文件。 但是,当我尝试编辑SQL查询时,他们都有同样的问题,正如我通常:

我去连接属性… – >定义选项卡 – >命令types,它说SQL,然后我编辑出现在下面的命令文本框中的SQL代码。

我的问题是,SQL现在不能识别通过SQL Server方法执行时很高兴识别的语法。 例如:

  • 如果我尝试使用 – 或/ * … * /语法进行注释,则会出现以下错误:[Microsoft] [ODBC Excel Driver] Invalid SQL Statement; 预期“删除”,“插入”,“程序”,“select”或“更新”。
  • 如果我尝试添加一个名为CURRENT_TIMESTAMP AS [Refresh Date]的列,我会得到[Microsoft] [ODBC Excel Driver]参数太less。 预期1。

目前的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] 

但是这并不像上面所描述的那样工作。

我注意到,连接types是不同的,这取决于我使用哪种连接方法 – Excel文件方法的“数据库查询”,访问方法的“Excel文件”以及SQL Server的OLE DB查询。 我不知道这是否会影响我能够使用的SQL语言。 对于不同的方法,连接string也是完全不同的,但是我不确定这与我为什么不能使用比基本的SQL命令更多的东西有关。

实际的目的是让我能够在Excel中获得一个单元格(a)放入date,当某个人正在刷新Data – > Refresh All时,并且(b)如果刷新该表失败。 我认为最简单的方法是在当前date在表中创build一个列,但我想知道是否SQL限制停止?

有没有办法让更多的function进入SQL,就像我用我的SQL服务器链接? 或者作为一个解决方法是有一些其他的方法,也许通过VBA,来获取一个表是否成功刷新或没有,所以我可以写今天的date在其他地方使用VBA的单元格,如果它确实刷新成功(我已经有VBA为我做Data-> RefreshAll)?

提前致谢!

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

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