簡體   English   中英

如何更新記錄集? 如何將數據值從數據網格傳遞到文本框並在VB6中進行編輯?

[英]How to update recordset? How to pass data value from a datagrid to textbox and edit in VB6?

我在系統中使用VB6。 我想將數據網格的選定行值傳遞到文本框並編輯記錄。 但是每次運行代碼時都會遇到此錯誤。 “ BOF或EOF為True,或者當前記錄已被刪除。請求的操作需要當前記錄。” 這是我在更新按鈕中的代碼。 請幫忙。 提前致謝! :D

Private Sub cmdEdit_Click()
Dim conn As New Connection
Dim myRS As New Recordset
Dim sql As Integer

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Users\FSCNDCIT\Desktop\GSTD\GSTDdb.mdb"
myRS.CursorLocation = adUseClient
myRS.Open "SELECT * FROM Table1 WHERE ID = '" & DataGrid1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic

frmGoSee.txtID.Text = myRS!ID  'This line was highlighted.
frmGoSee.txtGSTD.Text = myRS!GSTDCode
frmGoSee.txtGSTDCode.Text = myRS!WorkGroup
frmGoSee.txtTL.Text = myRS!TL
frmGoSee.txtDeptHead.Text = myRS!DeptHead
frmGoSee.txtParticipants.Text = myRS!Participants
frmGoSee.txtCoach.Text = myRS!Coach
frmGoSee.txtProblem_Des.Text = myRS!Problem_Des
frmGoSee.txtMI.Text = myRS!MI
frmGoSee.txtInter_Correction.Text = myRS!Inter_Correction
frmGoSee.txtICWho.Text = myRS!ICWho
frmGoSee.txtICWhen.Text = myRS!ICWhen
frmGoSee.txtICStatus.Text = myRS!ICStatus
frmGoSee.lblpicture.Caption = myRS!Picture
frmGoSee.Image1.Picture = LoadPicture(lblpicture)

myRS.Update
Set myRS = Nothing
conn.Close

End Sub

錯誤告訴您該查詢未帶回任何記錄。 您的代碼只是假設會有記錄。 在嘗試分配值之前,應檢查是否有空的記錄集。

Private Sub cmdEdit_Click()
    Dim conn As New Connection
    Dim myRS As New Recordset
    Dim sql As Integer

    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Users\FSCNDCIT\Desktop\GSTD\GSTDdb.mdb"
    myRS.CursorLocation = adUseClient
    myRS.Open "SELECT * FROM Table1 WHERE ID = '" & DataGrid1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic

    If myRS.EOF = False Then
        frmGoSee.txtID.Text = myRS!ID  'This line was highlighted.
        frmGoSee.txtGSTD.Text = myRS!GSTDCode
        frmGoSee.txtGSTDCode.Text = myRS!WorkGroup
        frmGoSee.txtTL.Text = myRS!TL
        frmGoSee.txtDeptHead.Text = myRS!DeptHead
        frmGoSee.txtParticipants.Text = myRS!Participants
        frmGoSee.txtCoach.Text = myRS!Coach
        frmGoSee.txtProblem_Des.Text = myRS!Problem_Des
        frmGoSee.txtMI.Text = myRS!MI
        frmGoSee.txtInter_Correction.Text = myRS!Inter_Correction
        frmGoSee.txtICWho.Text = myRS!ICWho
        frmGoSee.txtICWhen.Text = myRS!ICWhen
        frmGoSee.txtICStatus.Text = myRS!ICStatus
        frmGoSee.lblpicture.Caption = myRS!Picture
        frmGoSee.Image1.Picture = LoadPicture(lblpicture)

        'Commented because nothing in the record has changed
        'There is nothing to update
        'myRS.Update
    End If

    'checking the state of your objects here before closing would be good practice
    If Not myRS Is Nothing Then
        If myRS.State = adStateOpen Then
            myRS.Close
        End If
        Set myRS = Nothing
    End If
    If Not conn Is Nothing Then
        If conn.State = adStateOpen Then
            conn.Close
        End If
        Set conn = Nothing
    End If

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM