Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 删除不同表中的相关记录_Ms Access_Asp Classic_While Loop - Fatal编程技术网

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。除非正则代码发生更改,否则不需要循环。非常感谢。你引导我,伙计。谢谢你花时间