我有很多表的数据库。在第一个表格中,我有一个名为status
的字段。
table 1
idno name status
111 hjghf yes
225 hjgjj no
345 hgj yes
其他表格可以包含不同字段的idno
。
我想检查每个id no的状态,如果是,那么对于所有null和空白字段的所有表中的id号,我想将它们更新为111111.
我正在寻找一个可以适应的示例vba代码。
由于
答案 0 :(得分:0)
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首选项。< / p>
答案 1 :(得分:-1)
这是一些很大程度上未经测试的代码。希望它会给你一个开始。
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