【问题标题】:How to modify the records如何修改记录
【发布时间】:2011-10-27 08:33:14
【问题描述】:

使用 VB6

我正在为用户保存数据库中的条目。

代码。

rst.Open "SELECT * FROM ShiftMaster WHERE Shift_Code = '" & Trim(txtCode.Text) & "'", adoPunching, adOpenDynamic, adLockBatchOptimistic
    If (rst.BOF And rst.EOF) Then
        rst.AddNew
    End If


    rst!Shift_Code = "" & txtCode.Text
    rst!Shift_Name = "" & txtName.Text
    rst!Start_Time = "" & Format(dtpFrom.Value, "HH:mm")
    rst!End_Time = "" & Format(dtpTo.Value, "HH:mm")
    rst.UpdateBatch
    rst.Requery
    rst.Close
    MsgBox "Data successfully saved.", vbInformation
    lvdvendor

上面的代码是用来保存的,但是如果用户输入相同的txtcode意味着它应该修改记录,它应该添加新的行。

举例

ID 值

001 200

如果用户在文本框中输入相同的 id,如 001,并且用户更改了值,如 500,则意味着它应该只更改该值,它应该再添加一行具有相同 id 的行。

如何做到这一点。

需要 VB6 代码帮助

【问题讨论】:

  • 您可能需要清理查询的输入。将 ' 放入代码中的人会很好地破坏事情。
  • 我已经为你的问题添加了一些合适的标签,如果你没有使用 ADO,你可以更新一下。

标签: database vb6 ado


【解决方案1】:

您如何知道查询后指向的是哪条记录?答案是你没有,所以你需要移动到第一条记录:

rst.movefirst
'then add new if no records exist:
If (rst.BOF And rst.EOF) Then
    rst.AddNew
End If

需要注意的一点是,当您进行查询时,您可能会返回多条记录,因此它只会更新它找到的第一个记录。您想考虑使用TOP 1 *,因此请确保您只检索 1 或 0 条记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多