Private Sub Command16_Click() Dim db As New ADODB.Connection db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb" db.Open db.Execute "INSERT INTO A SELECT * FROM USERTABLE" '将USERTABLE表中的内容全部插入A表 End Sub
不好意思,请问USERTABLE要如何打开?我是菜鸟,学VC的,被老板逼迫用VB开发。
打开表??Private Sub Command2_Click() Dim db As New ADODB.Connection Dim rs As New ADODB.Recordset db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb" db.Open rs.Open "select * from USERTABLE", db'打开表Do While Not rs.EOF Debug.Print rs.Fields(0).Value rs.MoveNext Loop End Sub
tztz520答错帖了吧,这是插入的,楼主问的是不删除重复记录
多谢逛街兄Dim Record As Database Dim rcdsetTemp As Recordset Set rcdsetTemp = Record.OpenRecordset("select distinct * from task")task是record中的一个表。在已经有以上表达式的情况下,如何将rcdsetTemp表代替task表。 这样就不用删除重复记录那么麻烦了。
最终我自己搞定了,用最烂的方法,把有重复记录的表整个删除,再重新添加记录。代码如下: '删除重复记录的代码 Dim rcdsetTemp As Recordset Set rcdsetTemp = Record.OpenRecordset("select distinct * from task") If rcdsetTemp.RecordCount < rcdsetTask.RecordCount Then rcdsetTask.MoveFirst Do Until rcdsetTask.EOF rcdsetTask.Delete rcdsetTask.MoveNext Loop
源表不在固定位置,要通过对话框来选择。如何实现,能给例子最好了。
Dim db As New ADODB.Connection
db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
db.Open
db.Execute "INSERT INTO A SELECT * FROM USERTABLE" '将USERTABLE表中的内容全部插入A表
End Sub
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset
db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
db.Open
rs.Open "select * from USERTABLE", db'打开表Do While Not rs.EOF
Debug.Print rs.Fields(0).Value
rs.MoveNext
Loop
End Sub
Dim rcdsetTemp As Recordset
Set rcdsetTemp = Record.OpenRecordset("select distinct * from task")task是record中的一个表。在已经有以上表达式的情况下,如何将rcdsetTemp表代替task表。
这样就不用删除重复记录那么麻烦了。
所以导出数据也成了唯一可行的办法了:D
select distinct name_info,cat,qty from task
insert into rcdsetTemp
select * from task
where name_info in (select distinct name_info from task)
'删除重复记录的代码
Dim rcdsetTemp As Recordset
Set rcdsetTemp = Record.OpenRecordset("select distinct * from task")
If rcdsetTemp.RecordCount < rcdsetTask.RecordCount Then
rcdsetTask.MoveFirst
Do Until rcdsetTask.EOF
rcdsetTask.Delete
rcdsetTask.MoveNext
Loop
rcdsetTemp.MoveFirst
Do Until rcdsetTemp.EOF
rcdsetTask.AddNew
rcdsetTask("¿¨ºÅ") = rcdsetTemp("¿¨ºÅ")
rcdsetTask("ÉÌ»§±àºÅ") = rcdsetTemp("ÉÌ»§±àºÅ")
rcdsetTask("ÉÌ»§Ãû³Æ") = rcdsetTemp("ÉÌ»§Ãû³Æ")
rcdsetTask("½»Ò×ÈÕÆÚ") = rcdsetTemp("½»Ò×ÈÕÆÚ")
rcdsetTask("½»Ò×ʱ¼ä") = rcdsetTemp("½»Ò×ʱ¼ä")
rcdsetTask("Öն˺Å") = rcdsetTemp("Öն˺Å")
rcdsetTask.Update
rcdsetTemp.MoveNext
Loop
End If有何不妥之处,还请各位指教。虽然问题我自己解决了,但分还是要给还各位支持者。但首先看看这段代码有什么改进之处也不迟........