首页 > 解决方案 > 无法通过表单访问 2007 传递文本值来编辑记录

问题描述

我有一个"BreedingTable"用主键"ID""TransactionStatus" = "Active".

我将组合框中的“开玩笑表格”数据填充到文本字段 Text2.value = "ID"BreedingTable

完成所有过程后,我想更改TransactionStatusBreeding table = Closed

我正在使用下面的代码,但它永远不会工作。

注意”如果我给出确切的事务 ID 号,它可以正常工作,但如果我要求根据text2它进行查找则不起作用。

我的代码如下:

Private Sub exitprograme3()
    Me.Text2.SetFocus
    Dim i As Integer
    Dim db As Database
    Dim rs As Recordset
    Dim Trn As Integer
    Set db = CurrentDb
    Set rs = db.OpenRecordset("BreedingTable")
    For i = 0 To rs.RecordCount - 1
    Me.Text2.SetFocus    
    If rs.Fields("ID") = Me.Text2.Value Then
        rs.Edit
        rs.Fields("BreedingStatus") = "Closed"
        rs.Update
    End If
    rs.MoveNext
    Next i
    rs.Close
    Set rs = Nothing
    db.Close
    DoCmd.Close
End Sub

请协助 ...

如果我在下面的 if 语句中输入准确的交易 ID 号,它就可以工作

If rs.Fields("ID") = "323" Then

这很好用。

但是如果我像下面这样输入它就不起作用

If rs.Fields("ID") = Me.Text2.Value Then

标签: ms-access-2007

解决方案


不需要循环:

Private Sub exitprograme3()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs = db.OpenRecordset("Select * From BreedingTable")

    rs.FindFirst "[ID] = " & Me!Text2.Value & ""
    ' If ID is text, then quotes:
    ' rs.FindFirst "[ID] = '" & Me!Text2.Value & "'"
    If Not rs.NoMatch Then
        rs.Edit
            rs.Fields("BreedingStatus").Value = "Closed"
        rs.Update
    End If
    rs.Close

    Set rs = Nothing
    Set db = Nothing

    DoCmd.Close

End Sub

推荐阅读