一个SQL2005 =A
一个MDB =B
在A的表1里有ID字段 内容有 ID=1......ID=10
在B的表2里有ID字段 内容有 ID=1,ID=5,ID=10 要求:在B的表2里有的ID,在A表1删除没有的
应该如何写? 结果是A的表1也就ID=1,ID=5,ID=10
一个MDB =B
在A的表1里有ID字段 内容有 ID=1......ID=10
在B的表2里有ID字段 内容有 ID=1,ID=5,ID=10 要求:在B的表2里有的ID,在A表1删除没有的
应该如何写? 结果是A的表1也就ID=1,ID=5,ID=10
set Rs=Con.excute("select ID from A") 'Con为打开了的SQL2005连接
do while not Rs.eof
Conn.excute "delete from B where ID='" & RS(0) &"'" 'Conn为打开了的MDB连接
Rs.movenext
loop
rs.movenext
str = str & "," & rs(0)这样得出str类似这样的格式:
1,2,3,5,6,8然后在表a1上执行:cn.execute delete from a1 where id not in (str)
1. 连接B数据库,检索表2里的ID,用循环把存在的ID列表组成一个字符串数组。
格式大致如下。
strIDList = "1, 5, 10"
2. 连接A数据库,将上面得到字符串写入SQL语句并执行,结果SQL如下。
DELETE FROM 表1 WHERE ID NOT IN (1, 5, 10)
仅做参考。
Dim objConnA As New Connection
Dim objConnB As New Connection
objConnA.Open strConnStringA '连接A数据库
objConnA.Open strConnStringB '连接B数据库
Dim objRec As New Recordset objRec.Open "SELECT ID FROM 表2", objConnB Dim strIDList As String
strIDList = ""
Do Until objRec.EOF
If strIDList <> "" Then
strIDList = strIDList & ", "
End If
strIDList = strIDList & objRec.Fields("ID").Value
Loop
objRec.Close
Dim strSQL As String
If strIDList <> "" Then
strSQL = "DELETE FROM 表1 WHERE ID NOT IN (" & strIDList & ")"
objConnA.Execute strSQL
End If
objConnA.Close
objConnB.Close
这句的话.他运行的话.全部都是同一个ID了
把ADO引用加入工程,怎么会未找到?
如果已经引用,是哪个版本?
1、建立两个连接分别连SQL和MDB
2、对目标表循环,根据条件删除你不要的记录。
现在我自己写了一个.但是str = str & "," & RS(0)
的时候 第1个ID的前面有,不知道如何去除第1个,
str = str & RS(0)
else
str = str & "," & RS(0)
end if
前面已经写了啊。
类似下面的写法。
Dim strIDList As String
strIDList = ""
Do Until objRec.EOF
If strIDList <> "" Then
strIDList = strIDList & ", "
End If
strIDList = strIDList & objRec.Fields("ID").Value
Loop
不是ADO的
现在我自己写了一个.但是str = str & "," & RS(0)
的时候 第1个ID的前面有,不知道如何去除第1个,
str = str & "," & RS(0)去掉RS(0)
qlming判断下面还有一句strIDList = strIDList & objRec.Fields("ID").Value才是连接ID字符串
服了这位兄弟了,咋就看不明白呢。
Dim strIDList As String
strIDList = ""
Do Until … …
If strIDList <> "" Then
strIDList = strIDList & ", "
End If
strIDList = strIDList & RS(0)
Loop
Dim strIDList As String
strIDList = ""
Do Until … …
If strIDList <> "" Then
strIDList = strIDList & ", "
End If
strIDList = strIDList & RS(0)
Loop