Public Sub ProcessTables()
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim strTableName As String
Set db = CurrentDb()
For Each td In db.TableDefs
strTableName = td.Name
Debug.Print td.Name
Call ProcessTableDef(db, td)
Next
ExitProc:
Set db = Nothing
Set td = Nothing
Exit Sub
End Sub
Private Sub ProcessTableDef(db As DAO.Database, td As DAO.TableDef)
Dim fld As DAO.Field
Dim strSQL As String
Dim strTableName As String
Dim strColumnName As String
Dim rst As DAO.Recordset
Dim lngRecordCount As Long
strTableName = td.Name
If Left$(strTableName, 4) = "MSys" Then
'do nothing
Else
For Each fld In td.Fields
strColumnName = fld.Name
strSQL = "SELECT COUNT(*) FROM " & strTableName & " WHERE " & "[" & strColumnName & "]" & _
" IS NULL "
If fld.Type = 101 Or fld.Type = 104 Then
Else
Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot)
If Not rst.EOF() Then
lngRecordCount = CLng(rst.Fields(0).Value)
If lngRecordCount > 0 Then
Debug.Print strTableName, strColumnName, lngRecordCount, strSQL
End If
End If
End If
Next
End If
Debug.Print ""
End Sub
No comments:
Post a Comment