首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于一个数据库内二个表的记录全部顺序移入同库的第三张空表内的语句优化有关问题

2012-09-21 
关于一个数据库内二个表的记录全部顺序移入同库的第三张空表内的语句优化问题?有一个数据库(gg.mdb),内有a

关于一个数据库内二个表的记录全部顺序移入同库的第三张空表内的语句优化问题?
有一个数据库(gg.mdb),内有aa、bb、cc三张表,结构(有二列:ID(实为编号)、姓名)完全一样,aa、bb全部有记录,cc为空表。目的:将aa、bb表的记录全部顺序移入cc原空表中,并把自然数填入将cc表中的ID中。问题是代码是本菜人写的,不知如何优化,请各位看看能否优化,谢谢。

VB code
Dim Mbookmark As String '加入此句及下面一句,可防止一个空表在第一次加入记录时出现错误Mbookmark = Adodc1.Recordset.BookmarkAdodc1.Recordset.MoveFirstAdodc2.Recordset.MoveFirstFor I = 1 To Adodc1.Recordset.RecordCount '此段意思为:表3以新建记录的方式将表1的内容加入进来  Adodc3.Recordset.AddNew  Adodc3.Recordset.Fields("姓名") = Adodc1.Recordset.Fields("姓名")  Adodc3.Recordset.Update  If Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst '如果表1到底了,表1指针则回到第一条  If Adodc3.Recordset.BOF Then Adodc1.Recordset.MoveLast '如果表1到底了,表3指针则到末条,等待表2的记录以新建方式加入进表3    Adodc1.Recordset.MoveNext '此语句为在循环体未结束时,表1指针指向下一条    Adodc3.Recordset.MoveNext '此语句为在循环体未结束时,表3指针指向下一条,准备以新建方式将表1的记录加入进来Next IAdodc1.Recordset.MoveFirst '此语句为在循环体结束后,表1指针指向其表的第一条Adodc3.Recordset.MoveLast '指针指向最后一条,等待表3以新建记录的方式再将表2的内容加入进来For I = 1 To Adodc2.Recordset.RecordCount '此段意思为:表2以新建记录的方式将表1的内容加入进来  Adodc3.Recordset.AddNew  Adodc3.Recordset.Fields("姓名") = Adodc2.Recordset.Fields("姓名")  Adodc3.Recordset.Update  If Adodc2.Recordset.BOF Then Adodc2.Recordset.MoveFirst  If Adodc3.Recordset.BOF Then Adodc1.Recordset.MoveLast    Adodc2.Recordset.MoveNext    Adodc3.Recordset.MoveNextNext IAdodc2.Recordset.MoveFirstAdodc3.Recordset.MoveLastAdodc3.Recordset.MoveFirst '此段为给新表的记录加上序号Text3 = Adodc3.Recordset.RecordCount '此句为临时用For I = 1 To Adodc3.Recordset.RecordCount  Adodc3.Recordset.Fields("ID") = I      Adodc3.Recordset.MoveNext  If Adodc3.Recordset.BOF Then Adodc3.Recordset.MoveFirstNext IAdodc3.Recordset.MoveFirst '全部有记录的表的记录加入到表3后,表3指针回到第一条
 


[解决办法]
Adodc1.Recordset.ActiveConnection.Execute "Insert Into cc Select * From aa"
Adodc1.Recordset.ActiveConnection.Execute "Insert Into cc Select * From bb"

Adodc3.Recordset.Requery

Adodc3.Recordset.MoveLast 
Adodc3.Recordset.MoveFirst '此段为给新表的记录加上序号
Text3 = Adodc3.Recordset.RecordCount '此句为临时用
I = 1
Do Until Adodc3.Recordset.EOF
Adodc3.Recordset.Fields("ID") = I
Adodc3.Recordset.MoveNext
I = I +1
Loop

Adodc3.Recordset.MoveFirst '全部有记录的表的记录加入到表3后,表3指针回到第一条

热点排行