|
不知是不是和你所述是一样的:
Private Sub DAO远程链接_Click()
Call linktable("D:\ACCESS\OTHER\ACCESS.MDB", "版号本", "\\Master\三维资料\版号本.MDB", "Switchboard Items", "ADP")
'本例中是将\\Master\三维资料\版号本.MDB中的Switchboard Items表链接至D:\ACCESS\OTHER\ACCESS.MDB中,并命名为adp。
End Sub
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
'* *
'* 下例过程用来实现远程表的连接,它有5个参数,其中strrodb是要访问的远程数据库名(包括路径); *
'* strtdf是该数据库中的表名;strdb是要链接的本地数据库(包括路径); *
'* linktdfname是本地数据库的一个新表名,用来建立远程表的链接; *
'* strcn是指定连接信息的字符串。需要特别注意的是,除了在访问远程microsoft jet数据库时, *
'* 连接字符串要以分号(;)开头外,指定连接信息的字符串都必须以所访问的远程数据库类型开头。 *
'* DAO可以访问的远程数据源有以下三类: *
'* 1.Microsoft jet数据源,如:Access数据。 *
'* 2.iisam(可安装的索引化顺序访问方法)格式数据源,如:foxpro、paradox、dbase数据。 *
'* 3.ODBC数据源,如:SQLServer数据、Oracle数据。 *
'* 例如:设网络服务器名为server,共享目录为c:\sales的foxpro3.0数据库,连接字符串应为 *
'* strcn = "foxpro3.0;database=\\server\c$\sales\region1" *
'* *
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Public Sub linktable(strdb As String, strrodb As String, strcn As String, strtdf As String, linktdfname As String)
Dim linktdf As New TableDef
Set dbs = OpenDatabase(strdb)
linktdf.name = linktdfname
100
temptable = UCase(linktdf.name)
For i = 0 To dbs.TableDefs.COUNT - 1
If UCase(dbs.TableDefs(i).name) = temptable Then
If MsgBox(linktdfname + " 已存在,是否删除 ?", vbQuestion + vbYesNo) = vbYes Then
dbs.TableDefs.Delete linktdf.name
Exit For
Else: MsgBox " 重新输入新表名"
linktdfname = InputBox(" 新表名")
GoTo 100
End If
End If
Next i
Set linktdf = dbs.CreateTableDef(linktdfname) ' 链接远程表
linktdf.Connect = ";database=" + strcn
linktdf.SourceTableName = strtdf
dbs.TableDefs.Append linktdf
End Sub
|
|