数据库记录更新的问题,以下是我的源代码,总是无法实现记录更新,请各位帮忙,谢谢!
Private Sub update_Click()
strsql = "update set Id=txtId from kqxx where id='" & Replace(Trim(txtId.Text), "'", "''") & "'"
ExeSql
Call msfDisplalyRecord(Recrs, msfDisplaly)
End SubPublic Function ExeSql() As BooleanOn Error GoTo PROC_ERR
Set Recrs = New ADODB.Recordset
Recrs.CursorLocation = adUseClient
Recrs.Open strsql, strCon, adOpenKeyset, adLockPessimisticPROC_ERR:
If Err.Number > 0 Then
MsgBox "数据库连接出错:" & Err.Description, vbOKOnly + vbCritical, "错误"
End If
End FunctionPrivate Sub msfDisplalyRecord(ByVal Rs As ADODB.Recordset, ByVal msfGrid As MSHFlexGrid)
On Error GoTo PROC_ERR
Dim intI As Integer
Dim intCount As Integer
Dim intJ As Integer
Dim intRecrsCount As Integer
Dim strAddItem As String
Rs.MoveFirst
Call msfDisplalyClear
intCount = msfGrid.Rows - 1
If Rs.RecordCount > 0 Then
'''循环所有的记录
For intRecrsCount = 1 To Rs.RecordCount
strAddItem = " " & vbTab & " "
'''读取列值
For intJ = 0 To Recrs.Fields.Count - 1
strAddItem = strAddItem & vbTab & Rs(intJ)
Next intJ
msfGrid.AddItem strAddItem
If intRecrsCount = 1 Then
For intI = 1 To intCount '''移除空行
msfGrid.RemoveItem 1
Next intI
End If
Rs.MoveNext
Next intRecrsCount
End If
PROC_EXIT:
Exit Sub
PROC_ERR:
End Sub
Private Sub update_Click()
strsql = "update set Id=txtId from kqxx where id='" & Replace(Trim(txtId.Text), "'", "''") & "'"
ExeSql
Call msfDisplalyRecord(Recrs, msfDisplaly)
End SubPublic Function ExeSql() As BooleanOn Error GoTo PROC_ERR
Set Recrs = New ADODB.Recordset
Recrs.CursorLocation = adUseClient
Recrs.Open strsql, strCon, adOpenKeyset, adLockPessimisticPROC_ERR:
If Err.Number > 0 Then
MsgBox "数据库连接出错:" & Err.Description, vbOKOnly + vbCritical, "错误"
End If
End FunctionPrivate Sub msfDisplalyRecord(ByVal Rs As ADODB.Recordset, ByVal msfGrid As MSHFlexGrid)
On Error GoTo PROC_ERR
Dim intI As Integer
Dim intCount As Integer
Dim intJ As Integer
Dim intRecrsCount As Integer
Dim strAddItem As String
Rs.MoveFirst
Call msfDisplalyClear
intCount = msfGrid.Rows - 1
If Rs.RecordCount > 0 Then
'''循环所有的记录
For intRecrsCount = 1 To Rs.RecordCount
strAddItem = " " & vbTab & " "
'''读取列值
For intJ = 0 To Recrs.Fields.Count - 1
strAddItem = strAddItem & vbTab & Rs(intJ)
Next intJ
msfGrid.AddItem strAddItem
If intRecrsCount = 1 Then
For intI = 1 To intCount '''移除空行
msfGrid.RemoveItem 1
Next intI
End If
Rs.MoveNext
Next intRecrsCount
End If
PROC_EXIT:
Exit Sub
PROC_ERR:
End Sub
Recrs 需要重新获取数据。还有楼主是不是太累了。
msfDisplalyRecord
用一句话就完成了,非要一个一个加进去。Set msfGrid = rs不就OK了。
是不是应该这样写
还有加入一句 datagrid.refresh
SQL語句就錯了:
strsql = "update kqxx set Id=txtId where id='" & Replace(Trim(txtId.Text), "'", "''") & "'"
我改过了,可是还是不行呀。有没有数据更新的例子?
'注意:
数值型的变量引用方法:" & 变量名 & "
字符型变量的引用方法:'"& 变量名 & "'