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
| Public Function test()
Dim SQL As String
Dim C As Integer, i As Integer
Dim rs01 As DAO.Recordset 'recordset pour les enregistrements
Dim db As DAO.Database
Set db = CurrentDb()
SQL = "SELECT Query1.NumMIC, Query2.numMIC, Query1.NumCD, Query2.[Autre réf], Query1.NumPIMS, Query2.[N° PIMS], Query1.NumDossier, Query2.[N° dossier], Query1.NumNotice, Query2.[N° notice], Query1.Faits, Query2.Sujet "
SQL = SQL & "FROM Query1 LEFT JOIN Query2 ON Query1.NumMIC = Query2.numMIC;"
Set rs01 = db.OpenRecordset(SQL, dbOpenDynaset)
rs01.MoveLast
MsgBox "nbr retourné = " & rs01.RecordCount
rs01.MoveFirst
For i = 0 To 10
rs01.MoveNext
Next
'Do While Not rs01.EOF
continue:
For C = 0 To (rs01.Fields().Count - 2) Step 2
If Nz(rs01.Fields(C), "1") = Nz(rs01.Fields(C + 1), "0") Then 'ca veut dire qu'il sont parfaitement identique
Else 'sinon ca veut dire qu'il y a des différences entre champs
If (IsNull(rs01.Fields(C)) And IsNull(rs01.Fields(C + 1))) Or (IsEmpty(rs01.Fields(C)) And IsEmpty(rs01.Fields(C + 1))) Then 'si les deux champs sont null ou vide
'DoCmd.OpenForm "test", , , , , acHidden
DoCmd.OpenForm "test", , , , , acDialog
Else 'ca veut dire qu'au moins un des champs n'est pas vide
'DoCmd.OpenForm "test", , , , , acHidden
DoCmd.OpenForm "test", , , , , acDialog
End If
End If
Next
i = i + 1
If i = 20 Then
GoTo quitte
Else
rs01.MoveNext
GoTo continue
End If
'Loop
quitte:
SQL = ""
rs01.Close
db.Close
Set rs01 = Nothing
Set db = Nothing
End Function |
Partager