各位好:请教一个问题,vb通过ado执行access中的查询语句(有更新或追句查询,有点类似于SQL Server中的存储过程),要用什么对象才行?(用RecordSet好象不好)可否给出例子代码?多谢!

解决方案 »

  1.   


    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
        CN.Open    Rs.CursorLocation = adUseClient
        Rs.Open "select * from orders", CN, adOpenDynamic, adLockOptimistic    Set DataGrid1.DataSource = Rs
    ------------------------
    添加更新:
        Rs.AddNew
        Rs.Fields("col") = "cxxxx"
        Rs.Update
    --------------执行SQL 语句
      CN.Execute "insert into orders(orderdate) values(null)"
      

  2.   

    Option ExplicitDim WithEvents adoRS As Recordset
    Dim db As Connection
    '提数据事件
        Set db = New Connection
        db.CursorLocation = adUseClient
        db.Open"Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;"    Set adoRS = New Recordset
        
        adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
        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
      

  3.   

    两位可能误会了,我是说我在Access中写好了“更新语句”或“追加语句”,是属于一种不返回结果的特殊查询,不能用一般的查询方法执行,在VB中应该如何调用此类查询呢?
      

  4.   

    笨,谁说VB中就一定要返回结果才行?
    查询完毕,不输出不就得了1非要搞个不必要的什么“数据库查询”,多余。
    那还要VB干什么,直接在Access上建个窗就行了。
      

  5.   

    RecordSet是可以实现的,但是要设置属性
     .CursorType = adOpenStatic
     .LockType = adLockOptimistic   '(不要设成adLockReadOnly)
      

  6.   

    执行SQL 语句
      CN.Execute "你的SQL 语句"  CN.Execute "你的存储过程"
      

  7.   

    比如我在Access以下做了如下的更新查询update_report:
    UPDATE drPDDailyReport AS a LEFT JOIN drBlockTurnOutRate AS b ON a.Block_ID=b.Block_ID SET a.Final_Turn_Out_Rate = b.Turn_Out_Rate我在VB中该如何调用?以下rsDest是RecordSet对象  If rsDest.State = adStateOpen Then rdDest.Close
      rsDest.Source = "Select * from update_report" //这里不知道怎么调用???出错了
      rsDest.Open该用什么方法执行在Access中已经创建好的更新查询
      

  8.   

    奶奶的,抢分都这么快啊~~~~
    算你们狠....都给你们说去了~~~
    Dim Rs As adodb.Recordset
    Dim Connect As adodb.Connection
    '提数据事件
        Set Connect = New adodb.Connection
        db.Open"Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;"sql语句的执行:select语句用adodb.Recordset.open方法, update,delete,insert等语句用adodb.Connection.execute方法 例:open方法:
        Set RS = New adodb.Recordset
        RS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
        Set DataGrid1.DataSource = adoRS
        DataGrid1.Refresh
        execute方法:
        Connect.Execute "insert into orders(orderdate) values(null)"
    '添加事件
        RS.AddNew
        RS![字段a] = text1.Text
        RS![字段b] = text2.Text
        RS.UpdateBatch adAffectAll'删除
        RS.Delete
        RS.Requery
        Set DataGrid1.DataSource = RS
        DataGrid1.Refresh
      

  9.   

    执行SQL 语句
      CN.Execute "你的SQL 语句"  CN.Execute "你的存储过程"
      

  10.   

    执行SQL 语句
      CN.Execute "你的SQL 语句"  CN.Execute "你的存储过程"
      

  11.   

    你说的应该就是这个了(注意,我上面的有点小错误db.Open应该是Connect.Open)Dim Connect As adodb.Connection
    Set Connect = New adodb.Connection
    Connect.Open"Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;"update,delete,insert等语句用adodb.Connection.execute方法execute方法:
        Connect.Execute "insert into orders(orderdate) values(null)"
      

  12.   

    snail39(蜗牛) :
    没关,大家都是一个共同的目标嘛!
      

  13.   

    snail39(蜗牛):
    你以前的帖子未结,到期了,给强制抓去啦,哈哈哈哈,爽吗?我以前的帖子,有好多都没解决,只好带着怨气结了。恩。