Dim adoOracleConnect As New ADODB.Connection
Dim adoOracleRecord As New ADODB.Recordset
Dim cnstr As Stringcnstr = "Provider=MSDAORA.1;User ID=" & connect_user & ";Password=" & connect_pwd & ";Data Source=" & connect_name & ";Persist Security Info=True"
adoOracleConnect.ConnectionString = cnstr
adoOracleConnect.OpenadoOracleRecord.CursorLocation = adUseClient
sql_str = "select * from DRV_PREASIGN"      ' DRV_PREASIGN这个是服务端的一个表
adoOracleRecord.Open sql_str, adoOracleConnect, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = adoOracleRecord  '通过datagrid显示DRV_PREASIGN的内容上面的代码很简单:从服务端oracle库中查询表DRV_PREASIGN的内容,并且在datagrid控件中显示,而且也已经实现了...问题是:我怎么把我需要的服务端的东西(就是datagrid的内容)转到本地库(access)呢?   也就是说怎么把服务端oracle的东西通过vb的代码转到本地的access库中来...望达人指点,无限感激

解决方案 »

  1.   

    简单方法:
    1、建立一个ACCESS数据库,假如为D:\ACCEDATA\ACCE.MDB ,即保存到D:\accedata目录下的acce.mdb
    2、根据DataGrid1显示的adoOracleRecord记录集的内容,在 acce.mdb中建立与之对应的表,表名为:“表1”,字段类型和字段数与adoOracleRecord相匹配(包括顺序)。
    3、在你的窗体上家一个按钮command1,Private Sub Command1_Click()
    Dim AdoOracleConnect As New ADODB.Connection
    Dim AdoOracleRecord As New ADODB.Recordset
    Dim cnstr As Stringcnstr = "Provider=MSDAORA.1;User ID=" & connect_user & ";Password=" & connect_pwd & ";Data Source=" & connect_name & ";Persist Security Info=True"
    adoOracleConnect.ConnectionString = cnstr
    adoOracleConnect.OpenadoOracleRecord.CursorLocation = adUseClient
    sql_str = "select * from DRV_PREASIGN"      ' DRV_PREASIGN这个是服务端的一个表
    adoOracleRecord.Open sql_str, adoOracleConnect, adOpenStatic, adLockOptimistic
    Set DataGrid1.DataSource = AdoOracleRecord  '通过datagrid显示DRV_PREASIGN的内容Dim AcceCNN As New ADODB.Connection
    Dim AcceRST As New ADODB.Recordset
    AcceCNN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\accedata\acce.mdb;Persist Security Info=False"
    SQL = "select * from 表1"
    AcceCNN.Open
    AcceRST.Open SQL, AcceCNN, 3, 2n = AdoOracleRecord.RecordCount
    m = AdoOracleRecord.Fields.Count
    AdoOracleRecord.MoveFirstIf n > 0 Then
    For i = 1 To n
        AcceRST.AddNew
        For j = 1 To m
            AcceRST(j - 1) = AdoOracleRecord(j - 1)
        Next
        
        AcceRST.Update
        AdoOracleRecord.MoveNext
    Next
    End IfAcceRST.Close
    Set AcceRST = Nothing
    AcceCNN.Close
    Set AcceCNN = Nothing
    AdoOracleRecord.Close
    Set AdoOracleRecord = Nothing
    AdoOracleConnect.Close
    Set AdoOracleConnect = Nothing
    End Sub已测试通过。
      

  2.   

    AcceCNN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\accedata\acce.mdb;Persist Security Info=False"
    是一行写下的,贴上去自动换行。
    看在分数的面子上,我用SQL2000的连接代替AdoOracleConnect ,SQL2000的记录集代替AdoOracleRecord,已经测试通过,仔细按我的步骤,不会有问题的。