Überprüfen / Aktualisieren eine Reihe von Werten basierend auf einem einzelnen Spaltenüberschrift
-
04-07-2019 - |
Frage
Ich habe Datenbank mit vielen Tabellen. In der ersten Tabelle habe ich ein Feld namens status
.
table 1
idno name status
111 hjghf yes
225 hjgjj no
345 hgj yes
Andere Tabellen gleiche idno
mit verschiedenen Bereichen haben könnten.
Ich mag den Status für jede ID nicht überprüfen und, falls ja, dann für die ID-Nummer in allen Tabellen für alle null und leere Felder Ich mag sie als 111111 aktualisieren.
Ich suche nach einer Probe VBA-Code für diese, die ich anpassen kann.
Danke
Lösung
Hier finden Sie einige weitgehend ungetestet Code. Hoffentlich wird es geben Ihnen einen Start.
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
Andere Tipps
Multi-Table-Update-Syntax für 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
Sie können für eine Abfrage in SQL-Ansicht gehen, fügen Sie diese in, und dann die Abfrage aus, oder es in eine Zeichenfolge zuweisen und verwenden CurrentDb.Execute oder CurrentProject.Connection.Execute, abhängig von Ihrer DAO / ADO bevorzugt.