Access 2016 VBA .FindFirst 在记录集中找不到记录

Posted

技术标签:

【中文标题】Access 2016 VBA .FindFirst 在记录集中找不到记录【英文标题】:Access 2016 VBA .FindFirst is not finding record in recordset 【发布时间】:2017-02-10 05:47:13 【问题描述】:

我是编程新手,我正在尝试编写一些 VBA 代码。我一直在搜索各种站点和论坛来帮助我实现我的最终目标,即拥有一个循环记录集并更新与表单上找到的 3 个标准列表框匹配的相应记录的代码。这些值传递到同一表单上的文本框,我可以在其中编辑它们的值。

当前的问题是即使记录在记录集中,我也会收到不匹配消息框。我在 Day 字段中寻找 BC2。不幸的是,我在我一直在搜索的网站和论坛上没有发现类似的问题。在此问题上或帮助我实现最终目标的任何帮助将不胜感激!下面是我到目前为止的代码。记录图片的链接在代码下方。

Private Sub cmdSave_Click()
    Set db = CurrentDb
    Set rs = db.OpenRecordset("LLT_TblDayInfo", dbOpenDynaset, dbSeeChanges)

    Dim strLookupValue1 As String
        strLookupValue1 = "[Day]= " = Me.lstDay.Value
    rs.FindFirst (strLookupValue1)
        If rs.NoMatch Then
            MsgBox "no records found"
        Else
            Do While Not rs.NoMatch
                MsgBox "i found it!!!"
                rs.FindNext (strLookupValue1)
            Loop
            rs.FindNext (strLookupValue1)
        End If
End Sub

enter image description here

【问题讨论】:

Day 的数据类型是数字还是文本?如果文本需要按照 Gustav 的建议添加单引号 感谢您的回复沙姆。我现在意识到我需要清楚我正在使用的数据类型。 【参考方案1】:

首先要做的是使用正确的语法引用您的文本值:

strLookupValue1 = "[Day] = '" & Me!lstDay.Value & "'"

【讨论】:

做到了!我花了几天时间寻找解决方案。我有很多要学习的。谢谢你的帮助!!

以上是关于Access 2016 VBA .FindFirst 在记录集中找不到记录的主要内容,如果未能解决你的问题,请参考以下文章

Access 2016 VBA .FindFirst 在记录集中找不到记录

MS Access 2016 VBA 导致“输入参数值”窗口

Solidworks 2016 SaveAs Access VBA运行时错误438

从 MS Access 2016 VBA 启动 Outlook 2016 触发“另一个程序正在使用 Outlook”并死掉

MS Access 2016 VBA 在组合查询条件中为空

如何使用 MS Access 2016 在 VBA 表达式中编写数字字段?