Überprüfen / Aktualisieren eine Reihe von Werten basierend auf einem einzelnen Spaltenüberschrift

StackOverflow https://stackoverflow.com/questions/239278

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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top