首先给你个例子,是在datagrid显示数据 你试试吧,好用的 记得要引用adoDim WithEvents adoPrimaryRS As Recordset '数据库连接对象 Private Sub Command1_Click() 'strsql 是你的查询语句 你可以order by 排序的字段 'strsql="select id as ID,xh as 学号 from 表" 这里的学号就是你数据表中字段的标题 strsql="select 字段 from 表" Set Db = New Connection Db.CursorLocation = adUseClient '下面的连接数据字符串你要修改一下 Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = adoPrimaryRS '这样就看不到id了,但是是存在的 DataGrid1.Columns(0).Visible = Falseend sub 'datagrid显示数据后,选择一条记录,然后按键盘键Delete,就可以删除了 Private Sub DataGrid1_BeforeDelete(Cancel As Integer) on error resume next Dim msg If DataGrid1.Columns(0)="" Then msg = MsgBox("您确定要删除本条记录吗?", vbOKCancel, "提示") If msg = vbCancel Then Cancel = True Else Cancel = False MsgBox "该记录删除成功", 48, "信息" End If Else MsgBox "请选择要删除的记录!", 48, "信息" Exit Sub End If
End Sub
首先给你个例子,是在datagrid显示数据 你试试吧,好用的 记得要引用adoDim WithEvents adoPrimaryRS As Recordset '数据库连接对象 Private Sub Command1_Click() 'strsql 是你的查询语句 你可以order by 排序的字段 'strsql="select id as ID,xh as 学号 from 表" 这里的学号就是你数据表中字段的标题 strsql="select 字段 from 表" Set Db = New Connection Db.CursorLocation = adUseClient '下面的连接数据字符串你要修改一下 Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = adoPrimaryRS '这样就看不到id了,但是是存在的 DataGrid1.Columns(0).Visible = Falseend sub 'datagrid显示数据后,选择一条记录,然后按键盘键Delete,就可以删除了 Private Sub DataGrid1_BeforeDelete(Cancel As Integer) on error resume next Dim msg If DataGrid1.Columns(0)="" Then msg = MsgBox("您确定要删除本条记录吗?", vbOKCancel, "提示") If msg = vbCancel Then Cancel = True Else Cancel = False MsgBox "该记录删除成功", 48, "信息" End If Else MsgBox "请选择要删除的记录!", 48, "信息" Exit Sub End If
End Sub
'引用ADO(Microsoft ActiveX Data Objects 2.X Library) Dim rs As New ADODB.RecordSet Private Sub Form_Load() On Error GoTo err Dim cn As New ADODB.Connection '连接Access,如果是SQL数据库,请改一下连接 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Persist Security Info=False" cn.Open rs.CursorLocation=adUseClient'设置客户端游标 rs.Open "select * from 表1", cn, 3, 2 Set DataGrid1.DataSource = rs Exit Sub err: MsgBox err.Description End Sub'删除某条选中的记录 Private Sub Command1_Click() rs.Delete adAffectCurrent End Sub
這樣好像只實現了在DataGrid中刪除了,實際sql中還存在,我刷新一下又出來了.
Dim adoRecordset As New ADODB.Recordset'定义成模块级变量Private Sub Command1_Click()'删除某条选中的记录 adoRecordset.Delete adAffectCurrent 'adoRecordset.Update End Sub
這樣好像只實現了在DataGrid中刪除了,實際sql中還存在,我刷新一下又出來了. // datagrid反映recordset,所以直接用recordset.delete就可以 之所以数据之中还有这条记录是因为只是在内存中间删除,你需要把结果update进数据库dim Rs as new adodb.recordset '删除 Private Sub Command1_Click()' rs.delete end sub private sub datagrid1_LostFocus() '在离开datagrid的事件中间加一句 rs.update end sub总之,你可以使用移动update都是可以的
删除某条选中的记录 Private Sub Command1_Click() rs.Delete adAffectCurrent rs.UpdateBatch '把所做的所有修改保存到数据库 End Sub
你试试吧,好用的
记得要引用adoDim WithEvents adoPrimaryRS As Recordset '数据库连接对象
Private Sub Command1_Click()
'strsql 是你的查询语句 你可以order by 排序的字段
'strsql="select id as ID,xh as 学号 from 表" 这里的学号就是你数据表中字段的标题
strsql="select 字段 from 表"
Set Db = New Connection
Db.CursorLocation = adUseClient
'下面的连接数据字符串你要修改一下
Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = adoPrimaryRS
'这样就看不到id了,但是是存在的
DataGrid1.Columns(0).Visible = Falseend sub
'datagrid显示数据后,选择一条记录,然后按键盘键Delete,就可以删除了
Private Sub DataGrid1_BeforeDelete(Cancel As Integer)
on error resume next
Dim msg
If DataGrid1.Columns(0)="" Then
msg = MsgBox("您确定要删除本条记录吗?", vbOKCancel, "提示")
If msg = vbCancel Then
Cancel = True
Else
Cancel = False
MsgBox "该记录删除成功", 48, "信息"
End If
Else
MsgBox "请选择要删除的记录!", 48, "信息"
Exit Sub
End If
End Sub
你试试吧,好用的
记得要引用adoDim WithEvents adoPrimaryRS As Recordset '数据库连接对象
Private Sub Command1_Click()
'strsql 是你的查询语句 你可以order by 排序的字段
'strsql="select id as ID,xh as 学号 from 表" 这里的学号就是你数据表中字段的标题
strsql="select 字段 from 表"
Set Db = New Connection
Db.CursorLocation = adUseClient
'下面的连接数据字符串你要修改一下
Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\计划管理系统.mdb;Persist Security Info=False"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open strsql, Db, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = adoPrimaryRS
'这样就看不到id了,但是是存在的
DataGrid1.Columns(0).Visible = Falseend sub
'datagrid显示数据后,选择一条记录,然后按键盘键Delete,就可以删除了
Private Sub DataGrid1_BeforeDelete(Cancel As Integer)
on error resume next
Dim msg
If DataGrid1.Columns(0)="" Then
msg = MsgBox("您确定要删除本条记录吗?", vbOKCancel, "提示")
If msg = vbCancel Then
Cancel = True
Else
Cancel = False
MsgBox "该记录删除成功", 48, "信息"
End If
Else
MsgBox "请选择要删除的记录!", 48, "信息"
Exit Sub
End If
End Sub
Dim rs As New ADODB.RecordSet
Private Sub Form_Load()
On Error GoTo err
Dim cn As New ADODB.Connection
'连接Access,如果是SQL数据库,请改一下连接
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;Persist Security Info=False"
cn.Open
rs.CursorLocation=adUseClient'设置客户端游标
rs.Open "select * from 表1", cn, 3, 2
Set DataGrid1.DataSource = rs
Exit Sub
err:
MsgBox err.Description
End Sub'删除某条选中的记录
Private Sub Command1_Click()
rs.Delete adAffectCurrent
End Sub
adoRecordset.Delete adAffectCurrent
'adoRecordset.Update
End Sub
//
datagrid反映recordset,所以直接用recordset.delete就可以
之所以数据之中还有这条记录是因为只是在内存中间删除,你需要把结果update进数据库dim Rs as new adodb.recordset
'删除
Private Sub Command1_Click()'
rs.delete
end sub private sub datagrid1_LostFocus()
'在离开datagrid的事件中间加一句
rs.update
end sub总之,你可以使用移动update都是可以的
Private Sub Command1_Click()
rs.Delete adAffectCurrent
rs.UpdateBatch '把所做的所有修改保存到数据库
End Sub