Sql &引用;运行时错误';1004';:没有当前记录。”;如何访问DAO.Recordset中的数据以及如何使用;其中;条款

Sql &引用;运行时错误';1004';:没有当前记录。”;如何访问DAO.Recordset中的数据以及如何使用;其中;条款,sql,vba,ms-access,Sql,Vba,Ms Access,1.我得到“运行时错误'1004':没有当前记录。” 我试过了!客户,地址 我试过了。字段(5) 我也试过了![客户地址] 但它们都不起作用。 在尝试访问数据之前,我先打印数据。 这是成功的,我打印出了我所期望的,报价公司的地址 2.我试图一次做一个报价,并且使用输入的报价编号。。因此,我在代码中添加了一个“WHERE”子句(它已被注释掉) 但是,它不起作用 下面是代码(我在复制代码时一直遇到格式问题,所以我使用了图像): 在每行末尾留出一个空格 SQL = "SELECT Customer

1.我得到“运行时错误'1004':没有当前记录。” 我试过了!客户,地址 我试过了。字段(5) 我也试过了![客户地址] 但它们都不起作用。 在尝试访问数据之前,我先打印数据。 这是成功的,我打印出了我所期望的,报价公司的地址

2.我试图一次做一个报价,并且使用输入的报价编号。。因此,我在代码中添加了一个“WHERE”子句(它已被注释掉) 但是,它不起作用

下面是代码(我在复制代码时一直遇到格式问题,所以我使用了图像):


在每行末尾留出一个空格

SQL = "SELECT Customers.[Short Name], Customers.Company, Customers.Person, Customers.Telefone, Customers.[E-Mail]," & _
"Customers.Address , Customers.City, Customers.Postcode, Customers.Province, Customers.[USCI Num]," & _
"[Quotation Query1].Buyer , [Quotation Query1].[Our Reference]," & _
"[Quotation Query1].[Quotation Date] , [Quotation Query1].Revision, [Quotation Query1].Info," & _
"[Quotation Query1].Article_No , [Quotation Query1].Quantity, [Quotation Query1].Matchcode," & _
"[Quotation Query1].RMB_price , [Quotation Query Query].[Quotation No], [Quotation Query Query].[Sum Of total]" & _
" FROM (Customers INNER JOIN ([Quotation Query Query] INNER JOIN Quotation ON [Quotation Query Query].[Quotation No] = Quotation.[Quotation No]) ON Customers.[Short Name] = Quotation.[Buyer]) INNER JOIN [Quotation Query1] ON Customers.[Short Name] = [Quotation Query1].[Buyer] " & _
" WHERE [Quotation Query Query].[Quotation No] = '" & Myvalue & "'  "
连接到sql角色时,存在错误的空间。如果可能,在连接字符时,最好在末尾留一个空格

[Quotation Query Query]. [Sum Of total]FROM (Customers INNER JOIN
因为是这样写的,所以会发生错误

此外,由于您通过EOF调试记录集,因此再也无法获得记录集。 因此,您应该删除调试代码,或者第一次将记录集移到下面

Do While Not rsl.EOF
    Debug.Print rsl(5)
    rsl.MoveNext
Loop
rsl.MoveFirst '<~~ this code needs
Do While Not rsl.EOF
调试。打印rsl(5)
rsl.MoveNext
环

rsl.MoveFirst“请不要发布代码的图片。取而代之的是,在你的问题中加入实际的代码,这样人们可以复制/粘贴它。请发布代码-选择你的代码,然后按编辑框上方的工具栏按钮,标签为
{}
。感谢您让我知道拥有实际代码的重要性以及发布代码的提示。我对stackoverflow有点陌生。谢谢您的回答。但它仍然不起作用。我收到运行时错误“3265”:在此集合中找不到项。但是,我仍然可以成功打印rsl(5)。我想在VBA中,空间并不重要。当您进行调试时,记录集将转到eof。所以不要调试。或者在调试记录集之后先移动。谢谢你,Dy.Lee。现在我了解了调试打印循环的问题。光标转到eof。现在它可以工作了!但我在myvalue前后尝试了单一报价。现在它给了我运行时错误“3464”:条件表达式中的数据类型不匹配。我想我的值原来已经是一个字符串了。谢谢,李迪。你是对的。单报价是必需的。我的[Quotence Query1]。[Quotence No]不是字符串。我通过str([报价单查询1]。[报价单编号])将其转换为str。没有错误,但我的rsl.RecordCount=0。在我更改为“WHERE[quote Query]。[quote No]=”&MyValue&“”,之后,我得到了“错误号:3061=参数太少。应为1”。
Do While Not rsl.EOF
    Debug.Print rsl(5)
    rsl.MoveNext
Loop
rsl.MoveFirst '<~~ this code needs