Ms access 删除不同表中的相关记录
Ms access 删除不同表中的相关记录,ms-access,asp-classic,while-loop,Ms Access,Asp Classic,While Loop,我有这三个表[订单、订单项目、订单注释] | -Orders- | | -Order_Items- | | -Order_comment- | | order_id | | order_RegCode | | order_id | | order_RegCode | 如您所见,这三个表通过两个唯一的键关联在一起订单id和订单代码 注意:order\u RegCode不是主键,而是字符串 我希望在通过order\
我有这三个表[订单、订单项目、订单注释]
| -Orders- | | -Order_Items- | | -Order_comment- |
| order_id | | order_RegCode | | order_id |
| order_RegCode |
如您所见,这三个表通过两个唯一的键关联在一起<代码>订单id和订单代码
注意:order\u RegCode
不是主键,而是字符串
我希望在通过order\u id
删除任何订单时,删除存储在其他两个表中的所有相关信息。但是当我使用Do While i get时,对象关闭时不允许执行错误操作
请引导我
代码是:
Dim Order_ID
Order_ID = Int(Request.Form("ID"))
Set Conn = server.createobject("adodb.connection")
Conn.open StrConn
Set Rs = Conn.execute("SELECT * From orders WHERE order_id="& Order_ID &"")
If NOT Rs.EOF then
RegCode = Rs("order_RegCode")
'//== Delete Order
Set Rs = Conn.execute("Delete From orders where order_id = "& orderID &"")
'//== Delete All Comments Belong to Order
Set Rs = Conn.execute("Select * From order_comment where order_id = "& Order_ID &"")
If NOT Rs.EOF then
Do While NOT Rs.EOF
Set Rs = Conn.execute("Delete From order_comment where order_id = "& Order_ID &"")
Rs.MoveNext
Loop
End if
'//== Delete All Items Belong to Order
Set Rs = Conn.execute("Select * From order_items where order_code = '"& RegCode &"'")
If NOT Rs.EOF then
Do While NOT Rs.EOF
Set Rs = Conn.execute("Delete From order_items where order_code = '"& RegCode &"'")
Rs.MoveNext
Loop
End if
End if
不能将记录集用于操作查询。这些线路:
Set Rs = Conn.execute("Delete ...
应该是:
Conn.execute("Delete ...
不能对所有记录集使用同一对象。外部循环需要一个记录集,内部循环需要另一个记录集。不过,我建议:
Dim Order_ID
Order_ID = Int(Request.Form("ID"))
Set Conn = server.CreateObject("adodb.connection")
Conn.Open StrConn
Set rs = Conn.Execute("SELECT * From orders WHERE order_id=" & Order_ID)
If Not rs.EOF Then
RegCode = rs("order_RegCode")
'//== Delete Order
Conn.Execute ("Delete From orders where order_id = " & orderID)
Conn.Execute ("Delete From order_comment where order_id = " & Order_ID)
Conn.Execute ("Delete From order_items where order_code = '" & RegCode & "'")
End If
您必须显示您的代码。如果不查看您的代码,就无法知道问题出在哪里,只能说对象关闭时不允许执行
操作。
此代码是否可以删除与此订单相关的所有注释?我看不到任何循环?看看你的代码。您只能在一个位置设置RegCode。除非正则代码发生更改,否则不需要循环。非常感谢。你引导我,伙计。谢谢你花时间