VBA ADODB连接-SQL查询

VBA ADODB连接-SQL查询

问题描述:

我正在VBA中运行但同样不起作用。获取错误否值给定一个或多个必需参数。VBA ADODB连接-SQL查询

我的查询:

ESQL =“选择MAPPING_MONTH.DT,SUM(MAIL_ACTIVE_Base_Tracker_GA_AM_AO.COUNT)作为GA_COUNT从MAPPING_MONTH左外连接MAIL_ACTIVE_Base_Tracker_GA_AM_AO B关于A.DT = B.DATE其中((MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE) = “& ”“”” & FName参数& “GROUP BY MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE” “)”

RS.Open(ESQL),CN,ADOPENSTATIC,ADLOCKREADONLY

+0

我注意到你是别名表A和B,但只使用连接条件中的别名,而不是在select,where或group by子句中。这可能会导致问题。 – UberDoodles

+0

错误可能是由以下行引起的:''“”“”&FName&“GROUP BY MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE”“)”'...你需要在'FName'和'GROUP BY'之间有一个空格。 –

虽然有一些代码中缺少这可能是有帮助在在这里调试代码是一些改进(可能)已经解决了您的问题。如果情况并非如此,那么您可能需要考虑更新您的帖子并添加更多代码(您声明RSCN并设置ADODB.Connection)。

如此说来这里的修改建议:

esql = "  select MAPPING_MONTH.DT, " 
esql = esql & "  sum(MAIL_ACTIVE_Base_Tracker_GA_AM_AO.COUNT) as GA_COUNT " 
esql = esql & "from MAPPING_MONTH A " 
esql = esql & "left outer join MAIL_ACTIVE_Base_Tracker_GA_AM_AO B " 
esql = esql & "on  A.DT = B.DATE " 
esql = esql & "where MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE = N'" & FName & "' " 
sql = esql & "group by MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE " 

RS.Open esql, CN, adOpenStatic, adLockReadOnly 

变化:

  1. RS.Open线周围esql删除括号。
  2. 取出构造T-SQL语句
  3. 交流你的T-SQL内"'括号内包含的文件名的文本。