新手学VB(insert into)怎么用?

xxmxx 2003-11-22 10:05:02
有 SJK.MDB 内有"表1",
有 SJK02.MDB 内有"表2",
想将SJK02.MDB 内的"表2",导入到 SJK.MDB 内的"表1"
原本使用:
Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK.MDB")
DB.Execute "SELECT * into TEMP FROM [;DATABASE=SJK02.mdb].表2"
'将表2导入到SJK.MDB的"TEMP"表,再将"TEMP"表导入到"表1",再删除TEMP表.
但用 insert into好象是可以直接将表2导入到表1的.
试了一下如下语句:
Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "Insert into 表1 in SJK.MDB select * from 表2"
不行啊!请教怎么用呢?还是有更好的办法?????
...全文
942 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxmxx 2003-11-27
  • 打赏
  • 举报
回复
揭贴了!
zhangying7725(本世纪最大谎言!) 5分,因不是VB,且不对题啊!
zhangying7725(本世纪最大谎言!) 10分,再给分,虽然还是不对题,但很感谢!
simanh() 10分,不对题
ysyan(竹馨) 10分,语法错误!
lemonchen(浪迹天涯) 10分,不错的方法,但也太不清楚了吧!
hx(乱云山风) 5分,不对
yoki(小马哥) 20分,语法错误!但仅有一点错误了!
lsj1982(流浪虫) 10分,太麻烦了!,不对题
xxmxx 2003-11-27
  • 打赏
  • 举报
回复
继续UP
shisanjin 2003-11-27
  • 打赏
  • 举报
回复
study
xxmxx 2003-11-27
  • 打赏
  • 举报
回复
自己UP一下
xxmxx 2003-11-25
  • 打赏
  • 举报
回复
现在有点怀疑我的系统是否有点问题了!!
哪位高手在自己的电脑上运行一下,看看是否有错!!
谢谢!
xxmxx 2003-11-25
  • 打赏
  • 举报
回复
根据我的资料显示 INSERT INTO…SELECT 是可以新增多个记录的。
但我怎么都无法正确使用

···········以下是我收集的资料请大家参考参考···········
Insert可以使一个表新增一个或多个记录:
INSERT INTO:新增一个记录。
INSERT INTO…SELECT:新增多个记录。
一、INSERT INTO
新增一个记录的INSERT INTO语法如下:
INSERT INTO 表 [(字段1[,字段2[, ...]])] VALUES (值1[,值2[, ...])
二、Insert Into...Select
若要新增多个记录,可以使用INSERT INTO…SELECT,语法如下:
INSERT INTO 表 [IN 外部资料库] [(字段1[,字段2[, ...]])] SELECT [表.]字段1[,字段2[, ...] FROM 表
如果表包含一个主索引,须确定新增到主索引字段的值是唯一的且不可为Null值。
原表的字段为自动编号类型时,如果您要将新增记录重新编号,就不要在查询之中包含自动编号字段。若要保持原字段中的值,则将自动编号加在查询之中。
INSERT INTO将所新增的记录加入原有的表之中。若要建立一个新的表,可以使用 SELECT... INTO 的语句。

根据以上的资料采用以下语句:
Set db = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
db.Execute "insert into 表1 IN SJK.mdb select * from 表2"
同样运行无报错,但打开SJK.MDB SJK02.MDB 都没有任何变化!!!!!????????
怎么办??????????????????????????????
怎么办??????????????????????????????
怎么办??????????????????????????????
lsj1982 2003-11-25
  • 打赏
  • 举报
回复
insert into 只能插入一条记录
试试用循环语句
set rs=db.execute("select * from 表2")
do until rs.eof
insert into [;database=sjk.mdb;].表1 values ("此处列举所有字段")
rs.movenext
loop
xxmxx 2003-11-25
  • 打赏
  • 举报
回复
数据库没有密码的!
使用楼上 yoki(小马哥) 的
Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "insert * into [c:\SJK.mdb].[表1] from [表2]"
提示:
实时错误'3134': INSERT INTO 语句的语法错误。
insert * into 不行吧!?

实际上以下语句应该是没错的!
Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "insert into [;database=sjk.mdb;].表1 select * from 表2"
照理说应该可以直接将"表2" 输出到 "表1",
但运行无报错!也无任何反应!什么事也没发生??????????

我用VB6.0引用了: Microsoft DAO 3.6 Object Libarary
以及 Microsoft Jet and Replication Objects 2.6
数据库是用 Access 2000建立的!
是不是有什么错误!!!!??????????????
yoki 2003-11-24
  • 打赏
  • 举报
回复
try:

Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "insert * into [c:\SJK.mdb].[表1] from [表2]"
hx 2003-11-24
  • 打赏
  • 举报
回复
不要设置密码。
lemonchen 2003-11-24
  • 打赏
  • 举报
回复
直接在Access的查询中去调试一下就知道了
xxmxx 2003-11-24
  • 打赏
  • 举报
回复
使用楼上的 ysyan(竹馨)的
Set DB1 = DBEngine.Workspaces(0).OpenDatabase("SJK.MDB")
Set DB2 = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "Insert into db1.表1 select * from db2.表2"
运行报错!!!!!!!!!!!!!!!
提示:实时错误'424',要求对象!

请帮忙!!!!!!!!!!!!!!!!!!!!!!!
怎么办!!!!!!!!!!!????????????
simanh 2003-11-23
  • 打赏
  • 举报
回复
Insert into table1(Fields[]) Values( select Fields[] from table2 )
zhangying7725 2003-11-23
  • 打赏
  • 举报
回复
Insert into table1(n1,n2,n3....nn) Values( select m1,m2,m3...mn from table2 )
zhangying7725 2003-11-23
  • 打赏
  • 举报
回复
SQL = "INSERT INTO [W_搭載/取卸情報編集ワーク] (搭載位置, " _
& "主要交換部品区分, " _
& "搭載項番, " _
& "取卸対象P, " _
& "取卸対象S, " _
& "部品番号, " _
& "製造番号, " _
& "搭載航空機, " _
& "搭載年月日, " _
& "現況区分, " _
& "搭載作業者)"
'-----------------------------------------------------------------------------
SQL = SQL & " SELECT DISTINCTROW [T_航空機S/N部品マスタ].搭載位置, "
'--- 1998/09/30(追加)沖本 --------------------------------------
SQL = SQL & " [T_航空機P/N部品マスタ].主要交換部品区分, "
SQL = SQL & " [T_航空機S/N部品マスタ].搭載項番, "
'---------------------------------------------------------------
SQL = SQL & " [T_航空機S/N部品マスタ].取卸対象P, "
SQL = SQL & " [T_航空機S/N部品マスタ].取卸対象S, "
SQL = SQL & " [T_航空機S/N部品マスタ].部品番号, "
SQL = SQL & " [T_航空機S/N部品マスタ].製造番号, "
SQL = SQL & " [T_航空機S/N部品マスタ].搭載航空機, "
SQL = SQL & " [T_航空機S/N部品マスタ].搭載年月日, "
SQL = SQL & " [T_航空機S/N部品マスタ].現況区分, "
SQL = SQL & " [T_航空機S/N部品マスタ].搭載作業者 "
'--- 1998/09/30(変更)沖本 ----------------------------------------------------
'SQL = SQL & " FROM [T_航空機S/N部品マスタ]"
SQL = SQL & " FROM [T_航空機S/N部品マスタ] INNER JOIN [T_航空機P/N部品マスタ] ON [T_航空機S/N部品マスタ].部品番号 = [T_航空機P/N部品マスタ].部品番号"
'--------------------------------------
SQL = SQL & " WHERE (([T_航空機S/N部品マスタ].搭載航空機 ='" & Me.[航空機番号] & "')"
SQL = SQL & " And ([T_航空機S/N部品マスタ].搭載年月日 =#" & Format(Me.[交換年月日], "yyyy/mm/dd") & "#)" 'Y2K1
SQL = SQL & " And ([T_航空機S/N部品マスタ].現況区分 = '3')"
SQL = SQL & " And ([T_航空機S/N部品マスタ].搭載作業者 = " & Me.[搭載作業者] & "))"
SQL = SQL & " ORDER BY [T_航空機S/N部品マスタ].搭載航空機, [T_航空機S/N部品マスタ].搭載年月日;"
ysyan 2003-11-23
  • 打赏
  • 举报
回复
Set DB1 = DBEngine.Workspaces(0).OpenDatabase("SJK.MDB")

Set DB2 = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "Insert into db1.表1 select * from db2.表2"
xxmxx 2003-11-23
  • 打赏
  • 举报
回复
自己 up
xxmxx 2003-11-23
  • 打赏
  • 举报
回复
抱歉!
没说清楚,是要直接使用单行命令将 "SJK02.MDB" 的 “表2” 导入到 "SJK.MDB" 的 “表1”,

是使用单行命令,不同的MDB文件哦! ^_^!

例如以下语句:
Set DB = DBEngine.Workspaces(0).OpenDatabase("SJK02.MDB")
DB.Execute "insert into [;database=sjk.mdb;].表1 select * from 表2"
照理说应该可以直接将"表2" 输出到 "表1",
但运行无报错!也无任何反应!什么事也没发生??????????
为什么!!!!!??????????????
为什么!!!!!??????????????
为什么!!!!!??????????????

1,216

社区成员

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

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