数据库间记录复制

hu_vane 2009-10-21 10:20:39
意图:将车间库、员工表中记录 拷入 行政库、员工表中
数据库的结构一致

Set DB_db1 = OpenDatabase("d:\行政库")
Set DB_db2 = OpenDatabase("d:\车间库")

DB_db1.Execute ("INSERT INTO 员工(姓名,性别,生日) " & DB_db2 & "[SELECT 姓名,性别,生日 FROM 员工]")

提示 编译错误 类型不匹配 光标指示在 DB_db2

这个错在哪儿?


...全文
165 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2009-10-21
  • 打赏
  • 举报
回复
getemail 2009-10-21
  • 打赏
  • 举报
回复
苍天哪,大地哪,这是哪位神仙姐姐给我出了这口恶气!

[Quote=引用 18 楼 king06 的回复:]
引用 14 楼 jhone99 的回复:
dao试验成功,呵呵

VB codePrivateSub Command1_Click()Dim db1As DatabaseDim db2As DatabaseSet db1= OpenDatabase(App.Path&"\a.mdb")
   
    db1.Execute ("INSERT INTO  [;database="& App.Path&"\b.mdb;].[员工]([姓名],[性别],[生日]) SELECT [姓名],[性别],[生日] FROM [员工]")End Sub

不要忘记结贴哦

呵呵,你这个同LZ的复制方向刚好相反,不过如果你这样可行,那么LZ改成你这样也该可以
Set DB_db1 = OpenDatabase("d:\行政库")
Set DB_db2 = OpenDatabase("d:\车间库")
DB_db2.Execute ("INSERT INTO [;database=d:\行政库.mdb;].[员工]([姓名],[性别],[生日]) select [姓名],[性别],[生日] FROM 员工]")
[/Quote]
king06 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jhone99 的回复:]
dao试验成功,呵呵

VB codePrivateSub Command1_Click()Dim db1As DatabaseDim db2As DatabaseSet db1= OpenDatabase(App.Path&"\a.mdb")

db1.Execute ("INSERT INTO [;database="& App.Path&"\b.mdb;].[员工]([姓名],[性别],[生日]) SELECT [姓名],[性别],[生日] FROM [员工]")End Sub

不要忘记结贴哦
[/Quote]
呵呵,你这个同LZ的复制方向刚好相反,不过如果你这样可行,那么LZ改成你这样也该可以
Set DB_db1 = OpenDatabase("d:\行政库")
Set DB_db2 = OpenDatabase("d:\车间库")
DB_db2.Execute ("INSERT INTO [;database=d:\行政库.mdb;].[员工]([姓名],[性别],[生日]) select [姓名],[性别],[生日] FROM 员工]")
getemail 2009-10-21
  • 打赏
  • 举报
回复
就不结贴
都两个星星了还在这里争分
也许LZ的问题就是1#答复的问题

[Quote=引用 14 楼 jhone99 的回复:]
dao试验成功,呵呵

VB codePrivateSub Command1_Click()Dim db1As DatabaseDim db2As DatabaseSet db1= OpenDatabase(App.Path&"\a.mdb")

db1.Execute ("INSERT INTO [;database="& App.Path&"\b.mdb;].[员工]([姓名],[性别],[生日]) SELECT [姓名],[性别],[生日] FROM [员工]")End Sub

不要忘记结贴哦
[/Quote]
jhone99 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 hu_vane 的回复:]
意图:将车间库、员工表中记录 拷入 行政库、员工表中
数据库的结构一致

Set DB_db1 = OpenDatabase("d:\行政库")
Set DB_db2 = OpenDatabase("d:\车间库")

DB_db1.Execute ("INSERT INTO 员工(姓名,性别,生日) " & DB_db2 & "[SELECT 姓名,性别,生日 FROM 员工]")

提示  编译错误  类型不匹配  光标指示在 DB_db2

这个错在哪儿?



[/Quote]

类型不匹配是因为这里期待的是字符串,DB_db2是database类型,当让有问题了
jhone99 2009-10-21
  • 打赏
  • 举报
回复
按lz的修改一下
Private Sub Command1_Click()
Dim db1 As Database
Dim db2 As Database

Set db1 = OpenDatabase("d:\车间库.mdb")

db1.Execute ("INSERT INTO [;database=d:\行政库.mdb;].[员工]([姓名],[性别],[生日]) SELECT [姓名],[性别],[生日] FROM [员工]")
end sub
jhone99 2009-10-21
  • 打赏
  • 举报
回复
dao试验成功,呵呵

Private Sub Command1_Click()
Dim db1 As Database
Dim db2 As Database

Set db1 = OpenDatabase(App.Path & "\a.mdb")

db1.Execute ("INSERT INTO [;database=" & App.Path & "\b.mdb;].[员工]([姓名],[性别],[生日]) SELECT [姓名],[性别],[生日] FROM [员工]")



End Sub


不要忘记结贴哦
getemail 2009-10-21
  • 打赏
  • 举报
回复
我有个代码,不在这个机器上,下午贴上来
getemail 2009-10-21
  • 打赏
  • 举报
回复
那还是用Select into 吧
否则每次都自动产生一个表
[Quote=引用 11 楼 hu_vane 的回复:]
是两个数据库,各有一张结构相同的表(“员工”),目的是在两个数据库之间复制。
[/Quote]
hu_vane 2009-10-21
  • 打赏
  • 举报
回复
是两个数据库,各有一张结构相同的表(“员工”),目的是在两个数据库之间复制。
jhone99 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jhone99 的回复:]
引用 5 楼 getemail 的回复:
("INSERT INTO [DB_db2].[员工](姓名,性别,生日) [SELECT 姓名,性别,生日 FROM 员工]")


DB_db2.Execute ("INSERT INTO  [" & DB_db2 & "].员工(姓名,性别,生日) SELECT 姓名,性别,生日 FROM 员工]")
[/Quote]

没有这么用过,纯粹猜测,呵呵

DB_db2.Execute ("INSERT INTO  [" & DB_db2 & "].员工(姓名,性别,生日) SELECT 姓名,性别,生日 FROM 员工")
getemail 2009-10-21
  • 打赏
  • 举报
回复
没注意到
[Quote=引用 8 楼 jhone99 的回复:]
引用 5 楼 getemail 的回复:
("INSERT INTO [DB_db2].[员工](姓名,性别,生日) [SELECT 姓名,性别,生日 FROM 员工]")


DB_db2.Execute ("INSERT INTO  [" & DB_db2 & "].员工(姓名,性别,生日) SELECT 姓名,性别,生日 FROM 员工]")
[/Quote]
jhone99 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 getemail 的回复:]
("INSERT INTO [DB_db2].[员工](姓名,性别,生日) [SELECT 姓名,性别,生日 FROM 员工]")
[/Quote]

DB_db2.Execute ("INSERT INTO [" & DB_db2 & "].员工(姓名,性别,生日) SELECT 姓名,性别,生日 FROM 员工]")
getemail 2009-10-21
  • 打赏
  • 举报
回复
不错,收藏了

[Quote=引用 6 楼 jhone99 的回复:]
你的貌似dao的,这儿有一个ado的
VB codePrivateSub Command1_Click()Dim cnAs ADODB.ConnectionSet cn=New ADODB.Connection

cn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& App.Path&"\b.mdb;Jet OLEDB:Database Password=b"
cn.Execute"Select * Into [tbla] From [;database="& App.Path&"\a.mdb;pwd=a].tbla"

cn.CloseSet cn=NothingEnd Sub
[/Quote]
jhone99 2009-10-21
  • 打赏
  • 举报
回复
你的貌似dao的,这儿有一个ado的
Private Sub Command1_Click()
Dim cn As ADODB.Connection

Set cn = New ADODB.Connection

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\b.mdb;Jet OLEDB:Database Password=b"
cn.Execute "Select * Into [tbla] From [;database=" & App.Path & "\a.mdb;pwd=a].tbla"

cn.Close
Set cn = Nothing

End Sub
getemail 2009-10-21
  • 打赏
  • 举报
回复
("INSERT INTO [DB_db2].[员工](姓名,性别,生日) [SELECT 姓名,性别,生日 FROM 员工]")
hu_vane 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 king06 的回复:]
看看是不是少一个空格.
DB_db1.Execute ("INSERT INTO 员工(姓名,性别,生日) " & DB_db2 &" [SELECT 姓名,性别,生日 FROM 员工]")
[/Quote]
有空格的
getemail 2009-10-21
  • 打赏
  • 举报
回复
可以考虑用Select into
两者有点差别
一个可以建立表格
一个能追加记录
king06 2009-10-21
  • 打赏
  • 举报
回复
看看是不是少一个空格.
DB_db1.Execute ("INSERT INTO 员工(姓名,性别,生日) " & DB_db2 & " [SELECT 姓名,性别,生日 FROM 员工]")
getemail 2009-10-21
  • 打赏
  • 举报
回复
检查一下生日表是不是格式不一样?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧