Bonjour à tous,
j'interroge une table dans une base access par ADO et souhaite ne pas prendre en compte les lignes dont le champ "mail" est vide.
J'ai écris le code ci dessous qui fonctionne bien , sauf pour la reconnaissance du champ "Mail" lorsqu'il n'est pas renseigné.
la valeur de rst!Mail lorsque la macro tourne est : Null
comment la detecter?
J'ai essayé : if rst!Mail = Null ,if rst!Mail = 0, if rst!Mail = "", mais rien n'y fait....
Merci d'avance pour vos eventuels réponses.
///////////////////////////////////////////////////////////////////////////
Dim cnx As ADODB.Connection 'variable de connexion
Dim rst As ADODB.Recordset 'jeu d'enregistrement-ex:table
Set cnx = New ADODB.Connection 'creation objet cnx
Set rst = New ADODB.Recordset 'creation recordset
Dim vsql As String
Dim NomBaseDeDonnées As String
NomBaseDeDonnées = VChemin & "DistributionInterfaces\Prouesse.mdb"
cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & NomBaseDeDonnées & ";" 'spécifique base access
rst.CursorLocation = adUseClient 'lieu de travail
rst.ActiveConnection = cnx
vsql = "SELECT T_Ressources.*, T_Rattachement.* " & _
"FROM T_Rattachement INNER JOIN T_Ressources ON T_Rattachement.NumRattachement=T_Ressources.NumRattachement;"
rst.Open vsql, cnx, , adLockOptimistic
Do While Not rst.EOF 'end of file -tant que le record set n'est pas vide
if rst!Mail = Null Then
GoTo 15
End If
ActiveCell.Offset(0, 0).FormulaR1C1 = rst!NomRes
ActiveCell.Offset(0, 1).FormulaR1C1 = rst!Prénom
ActiveCell.Offset(0, 2).FormulaR1C1 = rst!Labo
ActiveCell.Offset(0, 3).FormulaR1C1 = rst!Téléphone
ActiveCell.Offset(0, 4).FormulaR1C1 = rst!Pièce
ActiveCell.Offset(0, 5).FormulaR1C1 = rst!Batiment
'If len(rst!Bip) <> 0 Then ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Bip
If Right(rst!Fin, 4) <> "2020" Then ActiveCell.Offset(0, 6).FormulaR1C1 = rst!Fin
'ActiveCell.Offset(0, -1).FormulaR1C1 = rst!login
'ActiveCell.Offset(0, 13).FormulaR1C1 = rst!Commentaire
'ActiveCell.Offset(0, 14).FormulaR1C1 = rst!Annexe
'ActiveCell.Offset(0, 2).FormulaR1C1 = rst!Début
'ActiveCell.Offset(0, 4).FormulaR1C1 = rst!Affect
'ActiveCell.Offset(0, 5).FormulaR1C1 = rst!NumRattachement
'ActiveCell.Offset(0, 6).FormulaR1C1 = rst!FamilleSalarié
'ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Statut
'ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Temps
'ActiveCell.Offset(0, 15).FormulaR1C1 = rst!droits
'ActiveCell.Offset(0, 16).FormulaR1C1 = rst!fichier
'ActiveCell.Offset(0, 17).FormulaR1C1 = rst!lp
ActiveCell.Range("A1:Q1").Select
Select Case rst!FamilleSalarié
Case "TH": Selection.Font.ColorIndex = 3 'rouge thesard
Case "PT": Selection.Font.ColorIndex = 5 'bleu post doc
Case "IN": Selection.Font.ColorIndex = 10 'vert
Case "DR": Selection.Font.ColorIndex = 44 'orange
'Case "TH": Selection.Font.ColorIndex = 13 'violet
End Select
ActiveCell.Offset(1, 0).Select
15 rst.MoveNext
Loop
rst.Close
Set rst = Nothing
cnx.Close
Set cnx = Nothing
j'interroge une table dans une base access par ADO et souhaite ne pas prendre en compte les lignes dont le champ "mail" est vide.
J'ai écris le code ci dessous qui fonctionne bien , sauf pour la reconnaissance du champ "Mail" lorsqu'il n'est pas renseigné.
la valeur de rst!Mail lorsque la macro tourne est : Null
comment la detecter?
J'ai essayé : if rst!Mail = Null ,if rst!Mail = 0, if rst!Mail = "", mais rien n'y fait....
Merci d'avance pour vos eventuels réponses.
///////////////////////////////////////////////////////////////////////////
Dim cnx As ADODB.Connection 'variable de connexion
Dim rst As ADODB.Recordset 'jeu d'enregistrement-ex:table
Set cnx = New ADODB.Connection 'creation objet cnx
Set rst = New ADODB.Recordset 'creation recordset
Dim vsql As String
Dim NomBaseDeDonnées As String
NomBaseDeDonnées = VChemin & "DistributionInterfaces\Prouesse.mdb"
cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=" & NomBaseDeDonnées & ";" 'spécifique base access
rst.CursorLocation = adUseClient 'lieu de travail
rst.ActiveConnection = cnx
vsql = "SELECT T_Ressources.*, T_Rattachement.* " & _
"FROM T_Rattachement INNER JOIN T_Ressources ON T_Rattachement.NumRattachement=T_Ressources.NumRattachement;"
rst.Open vsql, cnx, , adLockOptimistic
Do While Not rst.EOF 'end of file -tant que le record set n'est pas vide
if rst!Mail = Null Then
GoTo 15
End If
ActiveCell.Offset(0, 0).FormulaR1C1 = rst!NomRes
ActiveCell.Offset(0, 1).FormulaR1C1 = rst!Prénom
ActiveCell.Offset(0, 2).FormulaR1C1 = rst!Labo
ActiveCell.Offset(0, 3).FormulaR1C1 = rst!Téléphone
ActiveCell.Offset(0, 4).FormulaR1C1 = rst!Pièce
ActiveCell.Offset(0, 5).FormulaR1C1 = rst!Batiment
'If len(rst!Bip) <> 0 Then ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Bip
If Right(rst!Fin, 4) <> "2020" Then ActiveCell.Offset(0, 6).FormulaR1C1 = rst!Fin
'ActiveCell.Offset(0, -1).FormulaR1C1 = rst!login
'ActiveCell.Offset(0, 13).FormulaR1C1 = rst!Commentaire
'ActiveCell.Offset(0, 14).FormulaR1C1 = rst!Annexe
'ActiveCell.Offset(0, 2).FormulaR1C1 = rst!Début
'ActiveCell.Offset(0, 4).FormulaR1C1 = rst!Affect
'ActiveCell.Offset(0, 5).FormulaR1C1 = rst!NumRattachement
'ActiveCell.Offset(0, 6).FormulaR1C1 = rst!FamilleSalarié
'ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Statut
'ActiveCell.Offset(0, 7).FormulaR1C1 = rst!Temps
'ActiveCell.Offset(0, 15).FormulaR1C1 = rst!droits
'ActiveCell.Offset(0, 16).FormulaR1C1 = rst!fichier
'ActiveCell.Offset(0, 17).FormulaR1C1 = rst!lp
ActiveCell.Range("A1:Q1").Select
Select Case rst!FamilleSalarié
Case "TH": Selection.Font.ColorIndex = 3 'rouge thesard
Case "PT": Selection.Font.ColorIndex = 5 'bleu post doc
Case "IN": Selection.Font.ColorIndex = 10 'vert
Case "DR": Selection.Font.ColorIndex = 44 'orange
'Case "TH": Selection.Font.ColorIndex = 13 'violet
End Select
ActiveCell.Offset(1, 0).Select
15 rst.MoveNext
Loop
rst.Close
Set rst = Nothing
cnx.Close
Set cnx = Nothing