收录日期:2018/06/20 09:40:05 时间:2016/05/18 03:14:40 标签:Access
Public Class AccessReplica

    Private replica As JRO.IReplica

    Public Sub New(ByVal strSourceFile As String)
        replica = New JRO.ReplicaClass()
        replica.ActiveConnection = "D:\Documents\VSP\Temp\Easedata.mdb" 
    End Sub

    Public Sub CreateReplica(ByVal strDestanceFile As String)
        replica.CreateReplica(strDestanceFile, "Replica of ", JRO.ReplicaTypeEnum.jrRepTypeFull,                                     JRO.VisibilityEnum.jrRepVisibilityGlobal, -1, JRO.UpdatabilityEnum.jrRepUpdFull)
    End Sub

End Class
===================
replica.ActiveConnection 一句老出错
wait me
查msdn不就行了?
对不起,没说清楚。

在Access下编程,代码如下,正确执行没问题:
Private Sub btnSynchronize_Click()
    Dim replica As New JRO.replica    
    replica.ActiveConnection = "D:\Documents\VSP\Temp\Easedata001.mdb"
    replica.Synchronize "D:\Documents\VSP\Temp\Easedata.edt"
End Sub

但是我要在VC#或VB.net中用,代码如下:
  JRO.Replica replica=new JRO.ReplicaClass();
  replica.ActiveConnection = "D:\Documents\VSP\Temp\Easedata001.mdb"
  replica.Synchronize("D:\Documents\VSP\Temp\Easedata.edt",...)
==>但总是在执行完replica.ActiveConnection时出现如下错误:
--------------------------------------
未处理的“System.Runtime.InteropServices.COMException”的类型的异常出现在WindowsApplication5.exe中。

其它信息:参数类型不正确,或不在可以接受的范围之内,或与其它参数冲突。
--------------------------------------

哪位知道怎么回事?或有高版本的MSJRO.dll?(我的是Access2000带的)
查了很多资料,问题解决了,ActiveConnection需要ConnectionClass:
JRO.Replica replica=new JRO.ReplicaClass();
ADODB.ConnectionClass conn=new ADODB.ConnectionClass();
conn.Open(DbClass.PROVIDER  +txtSource.Text ,"Admin","",-1);
replica.ActiveConnection=conn;