无法通过表单访问2007通过传递文本值来编辑记录

时间:2018-10-05 19:28:44

标签: ms-access-2007

我有一个名为"BreedingTable"的第一张表,其主键为"ID""TransactionStatus" = "Active"

我有从组合框填充到“文本”字段的“竞争表单”数据 Text2.value = "ID"中的BreedingTable

当我完成所有过程后,我想更改繁殖表的TransactionStatus = 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

1 个答案:

答案 0 :(得分:0)

不需要循环:

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