Dim ssql As String
Dim rs As New ADODB.Recordset
Dim i As Long
Dim newnum As Long
rs.Open "表2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 1 To rs.RecordCount
If DCount("*", "表1", "姓名='" & rs!姓名.Value & "'") = 0 Then
'新增
newnum = DMax("编号", "表1") + 1
ssql = "insert into 表1 (编号,姓名,联系方式) values (" & newnum & ",'" & rs!姓名.Value & "','" & rs!联系方式.Value & "')"
Else
'更新
ssql = "update 表1 set 联系方式='" & rs!联系方式.Value & "' where 姓名='" & rs!姓名.Value & "'"
End If
CurrentDb.Execute ssql
rs.MoveNext
Next
rs.Close: Set rs = Nothing
更新查询 老客户的联系方式更新到表1
UPDATE 表1 INNER JOIN 表2 ON 表1.姓名 = 表2.姓名 SET 表1.联系方式 = 表2.联系方式;
追加查询 追加的内容是 表2的姓名 不在 表1 中,也就是新客户
INSERT INTO 表1 ( 编号, 姓名, 联系方式 ) SELECT 表2.编号, 表2.姓名, 表2.联系方式 FROM 表2
WHERE (((表2.姓名) Not In (SELECT 表1.姓名 FROM 表1 INNER JOIN 表2 ON 表1.姓名 = 表2.姓名)));
单击事件用代码
DOCMD.RUNSQL "UPDATE 表1 INNER JOIN 表2 ON 表1.姓名 = 表2.姓名 SET 表1.联系方式 = 表2.联系方式"
DOCMD.RUNSQL "INSERT INTO 表1 ( 编号, 姓名, 联系方式 )
SELECT 表2.编号, 表2.姓名, 表2.联系方式
FROM 表2
WHERE (((表2.姓名) Not In (SELECT 表1.姓名
FROM 表1 INNER JOIN 表2 ON 表1.姓名 = 表2.姓名)))"
请教1 楼:表2中新客户编号大于表1的编号,代码可行。如果表2中编号也是1-5该如何处理??
1楼的太高级用不来啊,二楼的我建了个宏运行下,实现功能了
总记录:3篇 页次:1/1 9 1 :