如何通过具有vba访问权限的多表添加/更新/删除数据

问题描述 投票:0回答:1

我有4张桌子:

  1. 表OrderA链接文本文件中的外部数据
  2. 来自文本文件的表OrderB链接外部数据
  3. 表OrderDetail是合并表2的OrderA和OrderB(OrderA和追加OrderB)
  4. 表RecTable

表1和表2中的数据发生变化。如果将数据添加到表1和2:以及也添加到表3。

如果表1和表2中的数据被更新,表3也将被更新。

如果从表1和表2中删除数据,则将其从表3中删除并添加到表4中。

ِ Dlookup对于这项工作而言很低。我该如何使用记录集?

编辑:我写这段代码,但不能在删除中工作。

运行时错误3135JOIN操作中的语法错误。

Dim strSqlAddtoHazf As String
Dim strFindDelete As String    
Dim rsOrderHazf As DAO.Recordset
   strFindDelete = "SELECT IDPhotoO ,  jensO , vazeiatO , dateaddO ,  
 customeridO , orderidO , usernameO , tedadO , FileNameO   FROM  
 OrderDetail  LEFT JOIN RataPhotoOrderDetail ON (OrderDetail.IDPhotoO =  
 RataPhotoOrderDetail.id) WHERE (RataPhotoOrderDetail.id Is Null and  
 OrderDetail.IDGharardadO Is Null);"    
 strSqlAddtoHazf = " insert into OrderHazf (IDPhotoH ,  jensH , vazeiatH ,  
dateaddH , customeridH , orderidH , usernameH , tedadH , FileNameH ) " &  
strFindDelete
 DoCmd.SetWarnings False
DoCmd.RunSQL strSqlAddtoHazf
DoCmd.SetWarnings True
 strFindDelete = "SELECT IDPhotoO ,  jensO , vazeiatO , dateaddO , customeridO , orderidO , usernameO , tedadO , FileNameO   FROM OrderDetai  LEFT JOIN OrderHazf ON (OrderDetail.IDPhotoO = orderHazf.IDPhotoH) WHERE (Orderhazf.IDPhotoH Is Null and OrderDetail.IDGharardadO Is Null);"
Set rsOrderHazf = CurrentDb().OpenRecordset(strFindDelete)

Do Until rsOrderHazf.EOF()

rsOrderHazf.Delete

Loop

''''

vba ms-access recordset
1个回答
0
投票

i建议您将所有查询放在宏中,并将每个查询放在宏行中,将它们按照您希望查询运行的顺序放置,第一个查询位于最上面一行。例如,如果查询1首先运行,结果将确定查询2将执行的操作,然后]

将查询1作为要在宏条件下运行的第一个查询,将查询2作为要运行的第二个查询,等等。

然后将宏名称附加到命令按钮。

© www.soinside.com 2019 - 2024. All rights reserved.