我用的DATA控件连的ACCESS数据库,连接好后
VB里的添加,撤消,删除,保存四个按扭的代码我写的老是有些问题,
特性如下:添加:只是在内存中添加,并不保存到数据库
         撤消:撤消不当的操作
         删除:要求有个提示,如果确定,然后再删
         保存:这个就不用再说了吧?
还有关于输入约束(一些字段不能重复,验证)
那位大虾赶快给解决一下!谢谢
谢绝灌水

解决方案 »

  1.   

    ADO连接:
    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
    Dim db As Connection
    '提数据事件
        Set db = New Connection
        db.CursorLocation = adUseClient
        db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
    '                           ##########################################
    '打开密码是1234的Access2000数据库db1.mdb
    '不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉    Set adoRS = New Recordset
        
        adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
        '赋值给 DataGrid 表
        Set DataGrid1.DataSource = adoRS
        '表刷新
        DataGrid1.Refresh
    '添加事件和保存
        adoRS.AddNew
        '保存
        adoRS![字段a] = text1.Text
        adoRS![字段b] = text2.Text
        adoRS.UpdateBatch adAffectAll'删除
        adoRS.Delete
        '重新赋值给表
        adoRS.Requery
        Set DataGrid1.DataSource = adoRS
        DataGrid1.Refresh    '其他相关操作:
        '上一条
        If Not adoRS.BOF Then adoRS.MovePrevious
        If adoRS.BOF And adoRS.RecordCount > 0 Then
             '已到最后返回
             adoRS.MoveFirst
        End If
        '下一条
        If Not adoRS.EOF Then adoRS.MoveNext    '下一条
        If adoRS.EOF And adoRS.RecordCount > 0 Then
              '已到最后返回
              adoRS.MoveLast
        End If
        '第一条
        If Not adoRS.BOF Then adoRS.MoveFirst
        '最末
        If Not adoRS.EOF Then adoRS.MoveLast
      

  2.   

    在DATA控件中,ADDNEW 和 EDIT 要与UPDATE配套使用的。
    重复性验证。。在表中建立一具关健字就可以了。
    如果你输入重复的值,程序就要报错。把报错的代码抄下来。做一个防错处理就可以了。
      

  3.   

    关心一下这个贴子
    我想继续回复但是不能回复三次请哥们帮帮忙顶一下
    http://expert.csdn.net/Expert/TopicView1.asp?id=1994682
      

  4.   

    我用的是添加
     Data1.UpdateControls 
    On Error Resume Next 
      Data1.Recordset.AddNew保存
    Data1.Recordset.Book = Data1.Recordset.LastModified这一条 Data1.UpdateControls 可以在不想加入数据时用  我是这样用的 不过我是菜鸟不知 道这样的用法合不合理 在 Data1.Recordset.AddNew前加入是为了防用户输入数据后 不想保存 又再一次点  添加
      

  5.   

    喂。csdngoodnight(居然比我还快,你真行!)  你老把那大段话COPY来粘贴去就算了每个问题针对的都不同啊!!!!!!!
      

  6.   

    老大们啊,本来我用data控件已经解决添加、删除和保存了,但是撤消就是不能实现!所以说添加删除和保存也就不能说是实现了,因为这三个功能我实现的是直接保存到数据库中了,所以撤消才会出错误的,那为大虾能不能给指点一下添加、删除是只是在内存(或者说是窗口中)实现,只有点击保存后才能保存到数据库中,还有在ACCESS中的字段约束,在连好数据库的VB窗体中怎么实现啊??
      

  7.   

    Private Sub Command1_Click()
    Data1.Recordset.AddNew
    End SubPrivate Sub Command2_Click()
    Data1.UpdateControls  '这个就是 撤消啊  
    End Sub
     
    你试试吧
      

  8.   

    Private Sub Command1_Click()
    On Error Resume Next 
      Data1.Recordset.AddNew  
    End Sub
      
    Private Sub Command2_Click()
    On Error Resume Next 
    Data1.UpdateControls  '这个就是 撤消啊  
    End Sub
      

  9.   

    晕了!我用的就是Data1.UpdateControls啊!可是不能完成撤消的功能
      

  10.   

    喂,猫1027:
    你打的cancelupdate是什么啊?方法吗?能不能解释一下,我看别人有用的但不明白什么意思?
    为什么前面会有个Cancel?另外那位大虾给解决我前面说的输入约束的问题啊
    具体如下:text的输入后验证合法性
             text的(ACCESS里称为输入掩码我不知道VB里叫什么)自动填充(时间)
    最后问一个题外话lostfocus是什么事件啊?
      

  11.   

    我已解决自动填充问题:Private Sub Text7_LostFocus()
                          text1.text=text2.text
                            end sub
    现在怎么解决text的输入后验证合法性呢??
      

  12.   

    我做好了一个简单的小程序,来实现添加、删除、撤消、保存,你看看行不行??
    把EMAIL给我
      

  13.   

    哦?现成的?太好了,我的EMAIL是:[email protected]谢谢!
    一定给分!
      

  14.   

    谢谢大家的热心帮助和积极参与,在这结帖的最后时刻,我祝上面所有的人顺心如意,HAPPY每一天!