Ms access Excel 2010 VBA DB2功能和Access 2007 DB2功能之间的区别?
解决方案: 事实证明,我只是在WHERE条件下使用了错误的标准。我试图排除的位置有很多变化,我没有看到差异。感谢Remou在聊天中帮助我 问题: 我有一个Access 2007实例,其中包含一个DB2链接表。我还有一个Excel2010VBA脚本,可以访问同一个DB2表 从这个DB2表中,我选择一个用户ID、位置、报表管理器ID和报表管理器位置。前3个字段直接存储,而reporting manager位置只能通过链接userID和reporting manager id并获取reporting manager id位置的子查询来派生 这个查询正好提供了我想要的->Ms access Excel 2010 VBA DB2功能和Access 2007 DB2功能之间的区别?,ms-access,excel,db2,subquery,vba,Ms Access,Excel,Db2,Subquery,Vba,解决方案: 事实证明,我只是在WHERE条件下使用了错误的标准。我试图排除的位置有很多变化,我没有看到差异。感谢Remou在聊天中帮助我 问题: 我有一个Access 2007实例,其中包含一个DB2链接表。我还有一个Excel2010VBA脚本,可以访问同一个DB2表 从这个DB2表中,我选择一个用户ID、位置、报表管理器ID和报表管理器位置。前3个字段直接存储,而reporting manager位置只能通过链接userID和reporting manager id并获取reporting
SELECT DISTINCT main.USERID, main.LOCATION, main.REPORT_MGR_USERID, manager_data.LOCATION
FROM employee_table main
INNER JOIN employee_table manager_data
ON main.REPORT_MGR_USERID=manager_data.USERID
但是,我发现了一些我不想在结果中显示的位置。所以我开发了这个查询->
SELECT DISTINCT main.USERID, main.LOCATION, main.REPORT_MGR_USERID, manager_data.LOCATION
FROM employee_table main
INNER JOIN employee_table manager_data
ON main.REPORT_MGR_USERID=manager_data.USERID
WHERE main.LOCATION NOT IN ('location one', 'location two')
唯一的区别是->
WHERE main.LOCATION NOT IN ('location one', 'location two')
在Access 2007实例中运行时,这与预期的一样有效,但在Excel VBA实例(我实际需要它的地方)中不起作用。我已经验证了查询字符串是否完全相同
Access和Excel之间的工作方式有什么不同
编辑:
以下是我如何在Excel中执行->
sqlString = "SELECT DISTINCT main.USERID, main.LOCATION, main.REPORT_MGR_USERID, manager_data.LOCATION " _
& "FROM employee_table main " _
& "INNER JOIN employee_table manager_data " _
& "ON main.REPORT_MGR_USERID=manager_data.USERID " _
& "WHERE main.LOCATION NOT IN ('location one', 'location two')"
sConnection = "Provider=IBMDADB2.DB2COPY1;Persist Security Info=True;User ID=" & connectingUserID & ";Password=" & connectingPassword & ";Data Source=EmployeeInfoDB;Mode=Read"
Set adoConnection = New ADODB.Connection
Set nameRecordSet = New ADODB.Recordset
adoConnection.Open sConnection
nameRecordSet.Open Source:=sqlString, ActiveConnection:=adoConnection
解决方案:
事实证明,我只是在WHERE条件下使用了错误的标准。我试图排除的位置有很多变化,我没有看到差异。感谢Remou在聊天中帮助我 解决方案:
事实证明,我只是在WHERE条件下使用了错误的标准。我试图排除的位置有很多变化,我没有看到差异。感谢Remou在聊天中帮助我 资本化。据我所知,Excel是区分大小写的。@Remou您的意思是在“不在('location one')”部分?我的查询和数据库中的内容都是一样的。是的,我知道
A
不等于Excel中的A
。我还没有测试A
是否是中的(“A”)
我想空格/空也有问题。我测试了,不是大写。另一方面,使用NOT IN的一个非常简单的查询在Excel中按预期工作,带有单引号。@Remou我已经用我的Excel代码进行了更新。大写。据我所知,Excel是区分大小写的。@Remou您的意思是在“不在('location one')”部分?我的查询和数据库中的内容都是一样的。是的,我知道A
不等于Excel中的A
。我还没有测试A
是否是中的(“A”)
我想空格/空也有问题。我测试了,不是大写。另一方面,使用NOT IN的一个非常简单的查询在Excel中按预期工作,带有单引号。@Remou我已经用我的Excel代码进行了更新。