Bonjour,
Je suis entrain de compter le nombre d'occurrences vides dans ma base de données.
Le code VBA fonctionne à priori correctement (il n'y a pas de bug), mais le résultat est erroné. Certaines variables ont réellement des vides alors que le résultat dit le contraire ou donne moins de vide.
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Dim db As DAO.Database
Dim sqlCpt As String, sqlTab As String, cle As String
Dim i As Single, compteur As Double, nbMiss As Double
 
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim strVar As String
Dim strTable As String
 
Dim rsCpt As DAO.Recordset, rsTab As DAO.Recordset, rsMiss As DAO.Recordset
 
 
Sub miss()
On Error GoTo GestionErreur
Set db = CurrentDb
 
For Each tdf In db.TableDefs
    If Left(tdf.Name, 3) = "tmp" Then
        sqlTab = "Select * From " & tdf.Name & ""
 
        Set rsTab = db.OpenRecordset(sqlTab, dbOpenDynaset)
        rsTab.MoveLast
        Debug.Print tdf.Name & "--" & rsTab.RecordCount
        For Each fld In rsTab.Fields
            strTable = tdf.Name
            strVar = fld.Name
 
            sqlCpt = "Select * From " & strTable & " where (((" & strVar & ") Is Null));"
            Set rsCpt = db.OpenRecordset(sqlCpt, dbOpenDynaset)
            rsCpt.MoveLast
            nbMiss = rsCpt.RecordCount
 
            Debug.Print strTable & " -- " & strVar & " -- " & nbMiss
 
        DoEvents
        Next fld
 
 
 
    End If
DoEvents
Next tdf
 
db.Close
Set db = Nothing
Set tdf = Nothing
Set fld = Nothing
 
Debug.Print "****** FIN **************"
 
Exit Sub
' Gestion des erreurs
GestionErreur:
 
    strDescription = ""
    Resume Next
 
End Sub
Par avance, je vous remercie de vos conseils