基于单个列标题检查/更新一行值



我有很多表的数据库。在第一个表中,我有一个名为 status 的字段。

table 1
idno   name    status
111    hjghf   yes
225    hjgjj   no
345    hgj     yes

其他表可以具有具有不同字段的相同idno

我想检查每个 id no 的状态,如果它是肯定的,那么对于所有空字段和空白字段的所有表中的该 ID 号,我想将它们更新为111111。

我正在寻找可以适应的示例 vba 代码。

谢谢

MS Access 的多表更新语法:

UPDATE Table2
INNER JOIN Table1
  ON Table2.idno = Table1.idno
SET Table2.salary = 111111
WHERE Table1.status = 'yes'
AND Table2.salary Is Null

您可以进入 SQL View 进行查询,将其粘贴到其中,然后运行查询,或将其分配给字符串并使用 CurrentDb.Execute 或 CurrentProject.Connection.Execute,具体取决于您的 DAO/ADO 首选项。

这里有一些基本上未经测试的代码。希望它能给你一个开始。

Sub UpdateNulls()
Dim strSQL As String
Dim rs As DAO.Recordset
For Each tdf In CurrentDb.TableDefs
    If Left(tdf.Name, 4) <> "Msys" And tdf.Name <> "Table1" Then
        strSQL = "Select * From [" & tdf.Name & "] a Inner Join " _
        & "Table1 On a.idno = Table1.idno Where Table1.Status = 'Yes'"
        Set rs = CurrentDb.OpenRecordset(strSQL)
        Do While Not rs.EOF
            For i = 0 To rs.Fields.Count - 1
                If IsNull(rs.Fields(i)) Then
                    rs.Edit
                    rs.Fields(i) = 111111
                    rs.Update
                End If
            Next
            rs.MoveNext
        Loop
    End If
Next
End Sub

最新更新