用select * into 新表名(可以是不同的外部数据库中的新建表,就是你的要求) from ....
dim con as adodb.connection Set con = New ADODB.Connection con.Provider = "Microsoft.Jet.OLEDB.3.51" con.Open mdbNameRemoteConnect = "'odbc' 'odbc;driver=sql server;uid=sa;pwd=;server=" & g_strServer & ";database=" & g_strDataBaseName & ";'"con.execute "select * into mdbTabName from sqlTabName in " & remoteconnect 注意:con是Ado的Connection,是Access的Mdb的Connection
如果目标Table已经存在的话用Insert Into就可以啦,不过似乎这种方法效率很低... set rsSource=DB.OpenRecordSet("SELECT * FROM SOURCE_TABLE")Do Until rsSource.EOF strSql="INSERT INTO TAGER_TABLE VALUES(" '"&rsSource.Fields("F1") & "'," & _ '"&rsSource.Fields("F2") & "'," & _ .... '"&rsSource.Fields("Fn") & "' ") " conn.Execute(strSql)Loop
Set con = New ADODB.Connection
con.Provider = "Microsoft.Jet.OLEDB.3.51"
con.Open mdbNameRemoteConnect = "'odbc' 'odbc;driver=sql server;uid=sa;pwd=;server=" & g_strServer & ";database=" & g_strDataBaseName & ";'"con.execute "select * into mdbTabName from sqlTabName in " & remoteconnect
注意:con是Ado的Connection,是Access的Mdb的Connection
set rsSource=DB.OpenRecordSet("SELECT * FROM SOURCE_TABLE")Do Until rsSource.EOF
strSql="INSERT INTO TAGER_TABLE VALUES(" '"&rsSource.Fields("F1") & "'," & _
'"&rsSource.Fields("F2") & "'," & _
....
'"&rsSource.Fields("Fn") & "' ") " conn.Execute(strSql)Loop
可以一次打开两个数据源吗?应该不行吧...
select * into [;database=YourMDBFileName.mdb].YourTableName from SQLServerTableName
请注意,执行该语句的database对象必须是连接在sql server上的。
本程序引用dao360.dll另外:ADO好像没有此功能,有谁知道的话告诉我一声:)详细情况可以参见VB的visdata.exe的源程序,有数据导入导出功能(即从SQL SERVER导出到ACCESS上)。
你可以先设计好一个数据传送步骤,然后存成DTS文件,只需在程序里面调用这个DTS文件,然后把本地数据库的路径修改一下即可。
注:DTS--Data Transfer Service(数据传送服务)
ado当然可以,反正是执行一个sql查询,有什么不可以的。我上面的回答就是对ado而言的。