我在Access中可以通过的这条SQL语句,怎么在VB中就通不过了呢?

SELECT hou.名 AS 员工, hou.数-IIf(IsNull(qian.数),0,qian.数) AS 工资 FROM hou LEFT JOIN qian ON hou.名 = qian.名;

上面这条语句,在Access数据库查询中可以通过,然后我把它照搬到这里rs.Open "SELECT hou.名 AS 员工, hou.数-IIf(IsNull(qian.数),0,qian.数) AS 工资 FROM hou LEFT JOIN qian ON hou.名 = qian.名;", conn, adOpenKeyset, adLockOptimistic

运行时就出错了,错误就指向这条SQL语句,提示信息是:至少有一个参数没有被指定

VB中连接的也是Access数据库,难道VB中和Access的SQL语句不一样?请高手改改,感激不尽!
缺少个参数Options
Options:指定source传递命令的陪兆粗猜袜类型
1(adCmdText):SQL语句芦镇
2(adCmdTable):数据表的名字
4(adCmdStoredProc):存储过程
8(adCmdUnknown):未知类型