Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Access 2007 VBA SQL选择错误“;在此集合中找不到项目“;_Sql_Vba_Ms Access 2007 - Fatal编程技术网

Access 2007 VBA SQL选择错误“;在此集合中找不到项目“;

Access 2007 VBA SQL选择错误“;在此集合中找不到项目“;,sql,vba,ms-access-2007,Sql,Vba,Ms Access 2007,修复错误后返回,现在返回一个新错误。我在Access 2007中使用VBA创建了一条SQL语句,出现错误“此集合中未找到项”。表中确实存在字段,并且拼写正确。我甚至将SQL语句复制到一个查询中,结果成功了。我假设错误与这部分代码有关 Dim strCMCID As Long'(这是一个键字段自动编号) strCMCID=我!CMCID_Txt 及 “WHERE commonments\u Tbl.CMCID=“&strCMCID&” 完整代码发布在下面。这是我第一次使用VBA将SQL语句放入

修复错误后返回,现在返回一个新错误。我在Access 2007中使用VBA创建了一条SQL语句,出现错误“此集合中未找到项”。表中确实存在字段,并且拼写正确。我甚至将SQL语句复制到一个查询中,结果成功了。我假设错误与这部分代码有关

Dim strCMCID As Long'(这是一个键字段自动编号)
strCMCID=我!CMCID_Txt

“WHERE commonments\u Tbl.CMCID=“&strCMCID&”
完整代码发布在下面。这是我第一次使用VBA将SQL语句放入。我试图做的是让SQL语句从当前表单的特定记录中提取两个电子邮件地址

Public Sub SendConfirm()
在出现错误时转到Err\u send确认\u单击
Dim借款人为字符串,LOEmail为字符串,ProcEmail为字符串,ClsMail为字符串,Caution为字符串,LNumber为长,File为字符串,Name为字符串
'SQL语句以获取处理器和更紧密的电子邮件
Dim数据库作为DAO.Database
将rst设置为DAO.Recordset
作为字符串的Dim strSQL
Dim strCMCID为长“自动编号”
作为字符串的Dim strMWS
作为字符串的Dim strProcEM
将strcsem设置为字符串
strCMCID=我!CMCID_Txt自动编号
strSQL=“选择承诺\u Tbl.CMCID、状态\u Tbl.MWStatus、DBUsers\u Tbl.EMail、DBUsers\u Tbl\u 1.EMail”&_
“FROM((commonments\u Tbl LEFT JOIN Status\u Tbl ON commonments\u Tbl.LoanNumber=Status\u Tbl.LoanNumber)LEFT JOIN DBUsers\u Tbl作为DBUsers\u Tbl\u 1 ON Status\u Tbl.Processor=DBUsers\u Tbl\u 1.MWName)LEFT JOIN DBUsers\u Tbl ON Status\u Tbl.Closer=DBUsers\u Tbl.MWName”&_
“WHERE commonments_Tbl.CMCID=“&strCMCID&”
设置dbs=CurrentDb
Set rst=CurrentDb.OpenRecordset(strSQL)
strMWS=rst!MWStatus
strProcEM=Nz(rst!DBUsers_Tbl.EMail),John。Doe@CWork.com")
strcsem=Nz(rst!DBUsers_Tbl_1.EMail),“John。Doe@Work.com")
'消息框
Dim消息、样式、标题、响应
LOEmail=我!OrigID_Cbo.栏(3)
借款人=我!博尔纳梅尔
LNumber=Nz(Me!LoanNumber_Txt,0)
Msg=“是否要发送电子邮件进行设置?”
Style=vbYesNo
Title=“取消设置电子邮件”
响应=MsgBox(消息、样式、标题)
如果响应=vbYes,则
后藤3号线
其他的
后藤4号线
如果结束
第3行:
名称=“借款人&&”“编号&”
TheFile=“P:\mortgage\prodcenters\LOAN ITEMS(SW)\\费率锁定\u和\u变更\”&TheName&“.rtf”
DoCmd.OutputTo acOutputReport,“确认电子邮件2”,acFormatRTF,文件,False
如果新西兰(Me!InvestorID_Cbo,“Blank”)=“Blank”,那么
DoCmd.SendObject,”CommerceMortgage@CommerceBank.com“,”新锁定:“&fower&“:”&LNumber,“已将利率锁定确认保存到服务器上的P:\mortgage\prodcenters\LOAN ITEMS(SW)\_RateLocks_和_更改为word文档,其名称和贷款编号与此电子邮件的主题行相同。请将其上载到GDR。“,-1
其他的
DoCmd.SendObject,”CommerceMortgage@CommerceBank.com“,”期限变更“&“&“&借款人&“:”&编号”,已将利率锁定确认保存到服务器的P:\mortgage\prodcenters\LOAN ITEMS(SW)\_RateLocks_和_更改为word文档,其名称和贷款编号与此电子邮件的主题行相同。请将其上载到GDR。“,正确
如果结束
第4行:
ClsEmail=Nz(StrClsEM),约翰。Doe@Work.com")
ProcEmail=Nz(strProcEM),约翰。Doe@Work.com")
如果我!RateExpDate_Txt=日期+8然后
警告=“停止:”
其他的
注意=“”
如果结束
如果我!InvestorID_Cbo=”“然后
DoCmd.SendObject acSendReport,“确认电子邮件”、“快照格式(*.snp)”、LOEmail、ProcEmail&“;”和ClsEmail、警告和“新锁:”&借款人&“:”&编号,True
其他的
DoCmd.SendObject acSendReport,“确认电子邮件”,“快照格式(*.snp)”,LOEmail,ProcEmail&“;”和ClsEmail,注意事项&“&”和“条款变更”&“:”和借款人&“:”和LNumber,True
如果结束
rst.关闭
设置rst=无
设置dbs=Nothing
退出\u发送确认\u单击:
出口接头
错误\u发送确认\u单击:
MsgBox错误说明
继续退出\u发送确认\u单击
端接头

如果我们在Access中创建一个查询,从两个不同的表中提取两个同名字段,则Access将命名结果列
Table1.Field
Table2.Field
,以消除歧义。当使用“bang(
)符号”引用记录集中的那些字段时,必须在整个字段名周围放上方括号。例如,在您的情况下,您需要使用

rst![DBUsers\u Tbl.EMail]
而不是

rst!DBUsers\u Tbl.EMail