关于一个数据库内二个表的记录全部顺序移入同库的第三张空表内的语句优化有关问题
关于一个数据库内二个表的记录全部顺序移入同库的第三张空表内的语句优化问题?
有一个数据库(gg.mdb),内有aa、bb、cc三张表,结构(有二列:ID(实为编号)、姓名)完全一样,aa、bb全部有记录,cc为空表。目的:将aa、bb表的记录全部顺序移入cc原空表中,并把自然数填入将cc表中的ID中。问题是代码是本菜人写的,不知如何优化,请各位看看能否优化,谢谢。
------解决方案--------------------
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指针回到第一条
有一个数据库(gg.mdb),内有aa、bb、cc三张表,结构(有二列:ID(实为编号)、姓名)完全一样,aa、bb全部有记录,cc为空表。目的:将aa、bb表的记录全部顺序移入cc原空表中,并把自然数填入将cc表中的ID中。问题是代码是本菜人写的,不知如何优化,请各位看看能否优化,谢谢。
- VB code
Dim Mbookmark As String '加入此句及下面一句,可防止一个空表在第一次加入记录时出现错误 Mbookmark = Adodc1.Recordset.Bookmark Adodc1.Recordset.MoveFirst Adodc2.Recordset.MoveFirst For 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 I Adodc1.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.MoveNext Next I Adodc2.Recordset.MoveFirst Adodc3.Recordset.MoveLast Adodc3.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.MoveFirst Next I Adodc3.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指针回到第一条