RT

解决方案 »

  1.   

    首先给你个例子,是在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
      

  2.   

    首先给你个例子,是在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
      

  3.   

    '引用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
      

  4.   

    這樣好像只實現了在DataGrid中刪除了,實際sql中還存在,我刷新一下又出來了.
      

  5.   

    Dim adoRecordset As New ADODB.Recordset'定义成模块级变量Private Sub Command1_Click()'删除某条选中的记录
    adoRecordset.Delete adAffectCurrent
    'adoRecordset.Update
    End Sub
      

  6.   

    這樣好像只實現了在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都是可以的
      

  7.   

    删除某条选中的记录
    Private Sub Command1_Click()
        rs.Delete adAffectCurrent
        rs.UpdateBatch '把所做的所有修改保存到数据库
    End Sub