我点击删除按钮,就删除鼠标指定的行,并更新数据库。但运行时出现了对象关闭的错误,大虾们,帮我看一下啦,我在线等,很急的!原代码如下:
Private Sub Command4_Click()
Dim i As Long
Dim SQL As String
Dim msgtext As String
Dim r As New ADODB.Recordset
If MsgBox("确定要删除鼠标选中行吗?", vbExclamation + vbYesNo + vbDefaultButton2) = vbNo Then
Exit Sub
Else
i = MSHFlexGrid1.Row
Me.MSHFlexGrid1.RemoveItem (i)
SQL = "delete from attendance where ID=" & MSHFlexGrid1.TextMatrix(i, 0) & " "
Set r = TransactSQL(SQL, msgtext)
r.Update
r.Close
End If
End Sub注:ID是自动编号,即数字型。
Private Sub Command4_Click()
Dim i As Long
Dim SQL As String
Dim msgtext As String
Dim r As New ADODB.Recordset
If MsgBox("确定要删除鼠标选中行吗?", vbExclamation + vbYesNo + vbDefaultButton2) = vbNo Then
Exit Sub
Else
i = MSHFlexGrid1.Row
Me.MSHFlexGrid1.RemoveItem (i)
SQL = "delete from attendance where ID=" & MSHFlexGrid1.TextMatrix(i, 0) & " "
Set r = TransactSQL(SQL, msgtext)
r.Update
r.Close
End If
End Sub注:ID是自动编号,即数字型。
要看TransactSQL这个函数里面是怎么包装的连接串ADODC使用不当就会有这样的问题(能删除记录但报错)
ADODB打开连接之前也可能出现对象关闭。好好看看你这网上抄来的TransactSQL函数吧
Remove放在最后
ADODB打开连接之前也可能出现对象关闭。好好看看你这网上抄来的TransactSQL函数吧
[/Quote]
这个函数就是在教科书中和各类参考书中相当流行的ExecuteSQL公共函数啦!怎么改都有错误,呃……
Me.MSHFlexGrid1.RemoveItem (i)
SQL = "delete from attendance where ID=" & MSHFlexGrid1.TextMatrix(i, 0) & " "你都RemoveItem(i)了, 还能取到TextMatrix(i,0)?????????
Dim i As Long
Dim SQL As String
Dim msgtext As String
Dim r As New ADODB.Recordset
If MsgBox("确定要删除鼠标选中行吗?", vbExclamation + vbYesNo + vbDefaultButton2) = vbNo Then
Exit Sub
Else
i = MSHFlexGrid1.Row
'Me.MSHFlexGrid1.RemoveItem (i) '如果这里就删除了,下面那句找谁去呀?
SQL = "delete from attendance where ID=" & MSHFlexGrid1.TextMatrix(i, 0) & " "
Set r = TransactSQL(SQL, msgtext)
r.Update
r.Close
Me.MSHFlexGrid1.RemoveItem (i)
End If
End Sub
Me.MSHFlexGrid1.RemoveItem (i)
SQL = "delete from attendance where ID=" & MSHFlexGrid1.TextMatrix(i, 0)
...别的且不说, 你都把这一行内容从表格中删掉了,那你后面还MSHFlexGrid1.TextMatrix(i, 0)取原来的内容??