表1 表2 字段1 字段2 字段1 字段2 a 1 a b 2 b c 3 a c c a 我想得到的结果是: 表2 字段1 字段2 a 1 b 2 a 1 c 3 c 3 a 3
我想得到的结果是: 表2 字段1 字段2 a 1 b 2 a 1 c 3 c 3 a 1
Dim rs1 As New Recordset Dim rs2 As New Recordset Dim i%, j% rs1.Open 表一记录,数据库连接,adOpenDynamic, adLockBatchOptimistic rs2.Open 表二记录,数据库连接,adOpenDynamic, adLockBatchOptimistic Do While Not rs2.EOF For i = 0 To rs2.Fields.Count - 1 For j = 0 To rs1.Fields.Count - 1 If rs1(i).Name = rs2(j).Name Then rs2(i) = rs1(j) End If Next Next rs2.UpdateBatch rs2.MoveNext Loop
以下是我对两个表打开,不知道有没有错啊 还有你说的"rs1.Open 表一记录,数据库连接"是怎么个意思啊Private Sub Form_Load() Dim strConnect As String Dim a As Integer Dim strProvider As String Dim strDataSource As String Dim strDataBaseName As String strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;" strDataSource = App.Path '得到应用程序所在的路径 strDataBaseName = "\text.mdb;" strDataSource = "Data Source=" & strDataSource & _ strDataBaseName '得到数据库的完整路径 strConnect = strProvider & strDataSource Set connConnection = New ADODB.Connection connConnection.CursorLocation = adUseClient connConnection.Open strConnect '打开数据库 Set rsRecordSet = New ADODB.Recordset rsRecordSet.CursorType = adOpenStatic '设置记录集的属性 rsRecordSet.CursorLocation = adUseClient rsRecordSet.LockType = adLockPessimistic
rsRecordSet.Source = "Select * From biao1" rsRecordSet.Source = "Select * From biao2" rsRecordSet.ActiveConnection = connConnection rsRecordSet.Open '打开记录集
为了同时操作,我做了2个结果集做比较 Set rsRecordSet = New ADODB.Recordset rsRecordSet.CursorType = adOpenStatic '设置记录集的属性 rsRecordSet.CursorLocation = adUseClient rsRecordSet.LockType = adLockPessimistic
rsRecordSet.Source = "Select * From biao1" rsRecordSet.Source = "Select * From biao2" rsRecordSet.ActiveConnection = connConnection rsRecordSet.Open '打开记录集 替换一下应该就可以了 dim rsRecordSet1 = New ADODB.Recordset dim rsRecordSet2 = New ADODB.RecordsetrsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic Do While Not rsRecordSet2.EOF For i = 0 To rsRecordSet2.Fields.Count - 1 For j = 0 To rsRecordSet1.Fields.Count - 1 If rsRecordSet1(i).Name = rsRecordSet2(j).Name Then rsRecordSet2(i) = rsRecordSet1(j) End If Next Next rsRecordSet2.UpdateBatch rsRecordSet2.MoveNext Loop
谢谢啊 大哥 不过编译发生错误 Dim rsRecordSet1 As New ADODB.Recordset Dim rsRecordSet2 As New ADODB.Recordset rsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic 不知道怎么了 编译结果: compile error syntax error
以下是我的所有程序 请大哥给看看 非常谢谢 Option Explicit Private connConnection As ADODB.Connection Private rsRecordSet As ADODB.Recordset Dim mblnAddMode As BooleanPrivate Sub cmdedit_Click() Dim i%, j% Dim rsRecordSet1 As New ADODB.Recordset Dim rsRecordSet2 As New ADODB.Recordset rsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic Do While Not rsRecordSet2.EOF For i = 0 To rsRecordSet2.Fields.Count - 1 For j = 0 To rsRecordSet1.Fields.Count - 1 If rsRecordSet1(i).Name = rsRecordSet2(j).Name Then rsRecordSet2(i) = rsRecordSet1(j) End If Next Next rsRecordSet2.UpdateBatch rsRecordSet2.MoveNext LoopEnd SubPrivate Sub cmdexit_Click() Unload Me End End SubPrivate Sub Form_Load() Dim strConnect As String Dim a As Integer Dim strProvider As String Dim strDataSource As String Dim strDataBaseName As String strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;" strDataSource = App.Path '得到应用程序所在的路径 strDataBaseName = "\text.mdb;" strDataSource = "Data Source=" & strDataSource & _ strDataBaseName '得到数据库的完整路径 strConnect = strProvider & strDataSource Set connConnection = New ADODB.Connection connConnection.CursorLocation = adUseClient connConnection.Open strConnect '打开数据库 Set rsRecordSet = New ADODB.Recordset rsRecordSet.CursorType = adOpenStatic '设置记录集的属性 rsRecordSet.CursorLocation = adUseClient rsRecordSet.LockType = adLockPessimistic rsRecordSet.Source = "Select * From biao1" rsRecordSet.Source = "Select * From biao2" rsRecordSet.ActiveConnection = connConnection rsRecordSet.Open '打开记录集
End Sub
Private Sub Form_Load() Dim strConnect As String Dim a As Integer Dim strProvider As String Dim strDataSource As String Dim strDataBaseName As String strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;" strDataSource = App.Path '得到应用程序所在的路径 strDataBaseName = "\text.mdb;" strDataSource = "Data Source=" & strDataSource & _ strDataBaseName '得到数据库的完整路径 strConnect = strProvider & strDataSource Set connConnection = New ADODB.Connection connConnection.CursorLocation = adUseClient connConnection.Open strConnect '打开数据库 Dim rsRecordSet1 As New ADODB.Recordset Dim rsRecordSet2 As New ADODB.Recordset rsRecordSet1.Open "Select * From biao1", connConnection, adOpenDynamic, adLockBatchOptimistic rsRecordSet2.Open "Select * From biao2", connConnection, adOpenDynamic, adLockBatchOptimistic Do While Not rsRecordSet2.EOF Do While Not rsRecordSet1.EOF If rsRecordSet1(0) = rsRecordSet2(0) Then rsRecordSet2(1) = rsRecordSet1(1) rsRecordSet2.UpdateBatch End If rsRecordSet1.MoveNext Loop rsRecordSet2.MoveNext Loop End Sub你试试
才那个代码有点问题,我执行了一下,下面的好用 Private Sub Form_Load() Dim strConnect As String Dim a As Integer Dim strProvider As String Dim strDataSource As String Dim strDataBaseName As String strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;" strDataSource = App.Path '得到应用程序所在的路径 strDataBaseName = "\text.mdb;" strDataSource = "Data Source=" & strDataSource & _ strDataBaseName '得到数据库的完整路径 strConnect = strProvider & strDataSource Set connConnection = New ADODB.Connection connConnection.CursorLocation = adUseClient connConnection.Open strConnect '打开数据库 Dim rsRecordSet1 As New ADODB.Recordset Dim rsRecordSet2 As New ADODB.Recordset rsRecordSet1.Open "Select * From biao1", connConnection, adOpenDynamic, adLockBatchOptimistic rsRecordSet2.Open "Select * From biao2", connConnection, adOpenDynamic, adLockBatchOptimistic Do While Not rsRecordSet2.EOF Do While Not rsRecordSet1.EOF If rsRecordSet1!字段名 = rsRecordSet2!字段名 Then'将要比较的字段名替换 rsRecordSet2!字段名 = rsRecordSet1!字段名’将要赋值的字段名替换 rsRecordSet2.UpdateBatch End If rsRecordSet1.MoveNext Loop rsRecordSet1.MoveFirst rsRecordSet2.MoveNext Loop End Sub
字段1 字段2 字段1 字段2
a 1 a
b 2 b
c 3 a
c
c
a
我想得到的结果是:
表2
字段1 字段2
a 1
b 2
a 1
c 3
c 3
a 3
表2
字段1 字段2
a 1
b 2
a 1
c 3
c 3
a 1
Dim rs2 As New Recordset
Dim i%, j%
rs1.Open 表一记录,数据库连接,adOpenDynamic, adLockBatchOptimistic
rs2.Open 表二记录,数据库连接,adOpenDynamic, adLockBatchOptimistic
Do While Not rs2.EOF
For i = 0 To rs2.Fields.Count - 1
For j = 0 To rs1.Fields.Count - 1
If rs1(i).Name = rs2(j).Name Then
rs2(i) = rs1(j)
End If
Next
Next
rs2.UpdateBatch
rs2.MoveNext
Loop
还有你说的"rs1.Open 表一记录,数据库连接"是怎么个意思啊Private Sub Form_Load()
Dim strConnect As String
Dim a As Integer
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;"
strDataSource = App.Path '得到应用程序所在的路径
strDataBaseName = "\text.mdb;"
strDataSource = "Data Source=" & strDataSource & _
strDataBaseName '得到数据库的完整路径
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Set rsRecordSet = New ADODB.Recordset
rsRecordSet.CursorType = adOpenStatic '设置记录集的属性
rsRecordSet.CursorLocation = adUseClient
rsRecordSet.LockType = adLockPessimistic
rsRecordSet.Source = "Select * From biao1"
rsRecordSet.Source = "Select * From biao2" rsRecordSet.ActiveConnection = connConnection
rsRecordSet.Open '打开记录集
Set rsRecordSet = New ADODB.Recordset
rsRecordSet.CursorType = adOpenStatic '设置记录集的属性
rsRecordSet.CursorLocation = adUseClient
rsRecordSet.LockType = adLockPessimistic
rsRecordSet.Source = "Select * From biao1"
rsRecordSet.Source = "Select * From biao2" rsRecordSet.ActiveConnection = connConnection
rsRecordSet.Open '打开记录集
替换一下应该就可以了
dim rsRecordSet1 = New ADODB.Recordset
dim rsRecordSet2 = New ADODB.RecordsetrsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic
rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic
Do While Not rsRecordSet2.EOF
For i = 0 To rsRecordSet2.Fields.Count - 1
For j = 0 To rsRecordSet1.Fields.Count - 1
If rsRecordSet1(i).Name = rsRecordSet2(j).Name Then
rsRecordSet2(i) = rsRecordSet1(j)
End If
Next
Next
rsRecordSet2.UpdateBatch
rsRecordSet2.MoveNext
Loop
大哥
不过编译发生错误
Dim rsRecordSet1 As New ADODB.Recordset
Dim rsRecordSet2 As New ADODB.Recordset
rsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic
rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic
不知道怎么了
编译结果:
compile error
syntax error
请大哥给看看
非常谢谢
Option Explicit
Private connConnection As ADODB.Connection
Private rsRecordSet As ADODB.Recordset
Dim mblnAddMode As BooleanPrivate Sub cmdedit_Click()
Dim i%, j%
Dim rsRecordSet1 As New ADODB.Recordset
Dim rsRecordSet2 As New ADODB.Recordset
rsRecordSet1.Open "Select * From biao1",connConnection,adOpenDynamic, adLockBatchOptimistic
rsRecordSet2.Open "Select * From biao2",connConnection,adOpenDynamic, adLockBatchOptimistic
Do While Not rsRecordSet2.EOF
For i = 0 To rsRecordSet2.Fields.Count - 1
For j = 0 To rsRecordSet1.Fields.Count - 1
If rsRecordSet1(i).Name = rsRecordSet2(j).Name Then
rsRecordSet2(i) = rsRecordSet1(j)
End If
Next
Next
rsRecordSet2.UpdateBatch
rsRecordSet2.MoveNext
LoopEnd SubPrivate Sub cmdexit_Click()
Unload Me
End
End SubPrivate Sub Form_Load()
Dim strConnect As String
Dim a As Integer
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;"
strDataSource = App.Path '得到应用程序所在的路径
strDataBaseName = "\text.mdb;"
strDataSource = "Data Source=" & strDataSource & _
strDataBaseName '得到数据库的完整路径
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Set rsRecordSet = New ADODB.Recordset
rsRecordSet.CursorType = adOpenStatic '设置记录集的属性
rsRecordSet.CursorLocation = adUseClient
rsRecordSet.LockType = adLockPessimistic
rsRecordSet.Source = "Select * From biao1"
rsRecordSet.Source = "Select * From biao2"
rsRecordSet.ActiveConnection = connConnection
rsRecordSet.Open '打开记录集
End Sub
Dim strConnect As String
Dim a As Integer
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;"
strDataSource = App.Path '得到应用程序所在的路径
strDataBaseName = "\text.mdb;"
strDataSource = "Data Source=" & strDataSource & _
strDataBaseName '得到数据库的完整路径
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Dim rsRecordSet1 As New ADODB.Recordset
Dim rsRecordSet2 As New ADODB.Recordset
rsRecordSet1.Open "Select * From biao1", connConnection, adOpenDynamic, adLockBatchOptimistic
rsRecordSet2.Open "Select * From biao2", connConnection, adOpenDynamic, adLockBatchOptimistic
Do While Not rsRecordSet2.EOF
Do While Not rsRecordSet1.EOF
If rsRecordSet1(0) = rsRecordSet2(0) Then
rsRecordSet2(1) = rsRecordSet1(1)
rsRecordSet2.UpdateBatch
End If
rsRecordSet1.MoveNext
Loop
rsRecordSet2.MoveNext
Loop
End Sub你试试
Private Sub Form_Load()
Dim strConnect As String
Dim a As Integer
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
strProvider = "Provider= Microsoft.Jet.OLEDB.3.51;"
strDataSource = App.Path '得到应用程序所在的路径
strDataBaseName = "\text.mdb;"
strDataSource = "Data Source=" & strDataSource & _
strDataBaseName '得到数据库的完整路径
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Dim rsRecordSet1 As New ADODB.Recordset
Dim rsRecordSet2 As New ADODB.Recordset
rsRecordSet1.Open "Select * From biao1", connConnection, adOpenDynamic, adLockBatchOptimistic
rsRecordSet2.Open "Select * From biao2", connConnection, adOpenDynamic, adLockBatchOptimistic
Do While Not rsRecordSet2.EOF
Do While Not rsRecordSet1.EOF
If rsRecordSet1!字段名 = rsRecordSet2!字段名 Then'将要比较的字段名替换
rsRecordSet2!字段名 = rsRecordSet1!字段名’将要赋值的字段名替换
rsRecordSet2.UpdateBatch
End If
rsRecordSet1.MoveNext
Loop
rsRecordSet1.MoveFirst
rsRecordSet2.MoveNext
Loop
End Sub