Excel到Excel数据连接提供有限的SQL选项
我主要是一个Excel用户,在需要的时候才涉足技术/编程方面,所以假设我对所有这些数据链接都有点新手,但是: 在Excel 2010中,我曾多次访问Excel到Excel数据连接提供有限的SQL选项,sql,excel,connection-string,data-connections,Sql,Excel,Connection String,Data Connections,我主要是一个Excel用户,在需要的时候才涉足技术/编程方面,所以假设我对所有这些数据链接都有点新手,但是: 在Excel 2010中,我曾多次访问 数据->来自其他来源…->从SQL Server 这使我能够连接到我们的数据库表。做完这件事后,我可以去 数据->刷新所有[V]->连接属性…->定义选项卡 并将命令类型更改为SQL。然后我可以粘贴到我在MicrosoftSQLServer2012中使用的相同类型的SQL中,一切都很好。它连接到数据库,根据SQL代码提取所需信息,然后我得到
- 数据->来自其他来源…->从SQL Server
- 数据->刷新所有[V]->连接属性…->定义选项卡
- 如果我尝试使用--or/*…*/语法错误:[Microsoft][ODBC Excel驱动程序]SQL语句无效;应为“删除”、“插入”、“过程”、“选择”或“更新”
- 如果我试图添加一个列,说:CURRENT_TIMESTAMP AS[Refresh Date],那么我得到的[Microsoft][ODBC Excel Driver]参数太少。预期1
SELECT
[ID],
[Gift]
FROM
[Data$]
WHERE
[Gift] <> ''
AND
[Gift] <> 'Not a Gift'
AND
[ID] <> ''
但这并不像上面描述的那样有效
我注意到连接类型有所不同,这取决于我使用的连接方法—“数据库查询”用于Excel文件方法,“Excel文件”用于Access方法,OLE DB查询用于SQL Server方法;我不知道这是否会影响我所能使用的SQL语言。对于不同的方法,连接字符串也完全不同,但我不确定这是否与我不能使用基本SQL命令的原因有关
我的实际目标是能够在Excel中获得一个单元格,该单元格(a)输入某人执行数据->全部刷新时刷新的日期,(b)如果该表刷新失败,则不输入该日期。我认为最简单的方法就是在表中创建一个包含当前日期的列,但我想知道SQL限制是否会阻止这一点
有没有一种方法可以像我使用SQLServer链接那样,在SQL中实现更多功能?或者作为一种解决方法,是否有其他方法(可能是通过VBA)来确定表是否已成功刷新,因此如果表确实已成功刷新,我可以使用VBA将今天的日期写入其他单元格中(我已经有VBA来为我执行数据->刷新)
提前谢谢 与MS SQL的T-SQL相比,您使用的SQL更接近于访问DAO SQL。您将没有
当前\u时间戳
作为选项,但Now()
应作为替代选项提供
SELECT
[ID],
[Gift],
Now() AS [Refresh Date]
与MS SQL的T-SQL相比,您使用的SQL更接近于Access DAO SQL。您将没有当前的\u时间戳作为选项,但您可以立即尝试()。啊哈!是的,现在()因为[刷新日期]已经生效。今天的问题解决了!用“accessdaosql”这个词组进入谷歌,我得到了更多关于它的信息,谢谢。似乎除了其中一个答案之外,我没有任何评论。谢谢,@Jeeped,请使用此论坛cookie:-)我很想知道是否有任何方法可以将其转换为更多的T-SQL内容,而不是Access内容,但我认为这是Excel连接的一个限制,除非有人知道不同的:-)如果您想进入更原生的T-SQL(分区表可能…?)然后,您将不得不使用存储过程和视图,并让MS SQL引擎来完成这项工作。
SELECT
[ID],
[Gift],
Now() AS [Refresh Date]