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:
Par avance, je vous remercie de vos conseils
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
Partager