/*************导出到Access********************/ insert into openrowset('Microsoft.Jet.OLEDB.4.0','x:\A.mdb';'admin';'',A表) select * from 数据库名..B表
/*************导入Access********************/ insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0', 'x:\A.mdb';'admin';'',A表)
OPENROWSET 包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。语法 OPENROWSET ( 'provider_name' , { 'datasource' ; 'user_id' ; 'password' | 'provider_string' } , { [ catalog.] [ schema.] object | 'query' } ) 参数 'provider_name'字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。'datasource'字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。 'user_id'字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。'password'字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。'provider_string'提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。catalog目录或数据库的名称,其中驻留着指定的对象。schema架构的名称或指定对象的对象所有者名称。object对象名称,它唯一地标识出将要操作的对象。'query'是字符串常量,发送到提供程序并由提供程序执行。Microsoft® SQL Server™ 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。有关更多信息,请参见 SQL Server OLE DB 程序员参考。
insert into openrowset('Microsoft.Jet.OLEDB.4.0','x:\A.mdb';'admin';'',A表) select * from 数据库名..B表
我临时写了个,没怎么测试,不过应该没什么问题 Private Sub Command1_Click()On Error GoTo ErrHandle
'------------------------------------------------- '从access中取出数据 Dim recAccess As New ADODB.Recordset Set connAccess = New ADODB.Connection connAccess.Provider = "Microsoft.Jet.OLEDB.4.0" connAccess.Open App.Path & "\Attendance.mdb"
'------------------------------------------------- '建立打开sql server的连接 Dim ConnSqlServer As New ADODB.Connection ConnSqlServer.CursorLocation = adUseClient ConnSqlServer.ConnectionString = "你sql server的连接字符串" ConnSqlServer.Open '-------------------------------------------------
If recAccess.RecordCount > 0 Then recAccess.MoveFirst Else Exit Sub End If
'------------------------------------------------- '开始把access的数据插入sql server ConnSqlServer.BeginTrans Do While Not recAccess.EOF strsql = "insert into Attendance (字段1,...) values (recAccess!字段1)" ConnSqlServer.Execute strsql recAccess.MoveNext Loop ConnSqlServer.CommitTrans '--------------------------------------------------
'关闭连接 If connAccess.State = 1 Then connAccess.Close If recAccess.State = 1 Then recAccess.Close If ConnSqlServer.State = 1 Then ConnSqlServer.Close
'清空内存 If Not recAccess Is Nothing Then Set recAccess = Nothing End If
ErrHandle: ConnSqlServer.RollbackTrans '关闭连接 If connAccess.State = 1 Then connAccess.Close If recAccess.State = 1 Then recAccess.Close If ConnSqlServer.State = 1 Then ConnSqlServer.Close
'清空内存 If Not recAccess Is Nothing Then Set recAccess = Nothing End If
End Sub
记住拷贝到vb中时候引用microsoft activex data object 2.x Library
insert into openrowset('Microsoft.Jet.OLEDB.4.0','x:\A.mdb';'admin';'',A表) select * from 数据库名..B表
insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A表)
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。语法
OPENROWSET ( 'provider_name'
, { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog.] [ schema.] object
| 'query' }
) 参数
'provider_name'字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。'datasource'字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。 'user_id'字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。'password'字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。'provider_string'提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。catalog目录或数据库的名称,其中驻留着指定的对象。schema架构的名称或指定对象的对象所有者名称。object对象名称,它唯一地标识出将要操作的对象。'query'是字符串常量,发送到提供程序并由提供程序执行。Microsoft® SQL Server™ 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。有关更多信息,请参见 SQL Server OLE DB 程序员参考。
Private Sub Command1_Click()On Error GoTo ErrHandle
'-------------------------------------------------
'从access中取出数据
Dim recAccess As New ADODB.Recordset
Set connAccess = New ADODB.Connection
connAccess.Provider = "Microsoft.Jet.OLEDB.4.0"
connAccess.Open App.Path & "\Attendance.mdb"
strSQLSorce = "SELECT * from Attendance"
recAccess.Open strsql, conn, adOpenStatic
'-------------------------------------------------
'-------------------------------------------------
'建立打开sql server的连接
Dim ConnSqlServer As New ADODB.Connection
ConnSqlServer.CursorLocation = adUseClient
ConnSqlServer.ConnectionString = "你sql server的连接字符串"
ConnSqlServer.Open
'-------------------------------------------------
If recAccess.RecordCount > 0 Then
recAccess.MoveFirst
Else
Exit Sub
End If
'-------------------------------------------------
'开始把access的数据插入sql server
ConnSqlServer.BeginTrans
Do While Not recAccess.EOF
strsql = "insert into Attendance (字段1,...) values (recAccess!字段1)"
ConnSqlServer.Execute strsql
recAccess.MoveNext
Loop
ConnSqlServer.CommitTrans
'--------------------------------------------------
'关闭连接
If connAccess.State = 1 Then connAccess.Close
If recAccess.State = 1 Then recAccess.Close
If ConnSqlServer.State = 1 Then ConnSqlServer.Close
'清空内存
If Not recAccess Is Nothing Then
Set recAccess = Nothing
End If
ErrHandle:
ConnSqlServer.RollbackTrans
'关闭连接
If connAccess.State = 1 Then connAccess.Close
If recAccess.State = 1 Then recAccess.Close
If ConnSqlServer.State = 1 Then ConnSqlServer.Close
'清空内存
If Not recAccess Is Nothing Then
Set recAccess = Nothing
End If
End Sub
可能系你理解错了,我要的是C/S结构的, 在服务器上装SQL Server2000数据库,在客户端安装Access数据库,我想将SQl Server2000数据库中的表,导出到Access数据库中!
可能系你理解错了,我要的是C/S结构的, 在服务器上装SQL Server2000数据库,在客户端安装Access数据库,我想将SQl Server2000数据库中的表,导出到Access数据库中!
在客户端安装这个程序
lxcc(虫子|专注于抢分)