detection rst!mail=Null Excel-access-ADO

  • Initiateur de la discussion Initiateur de la discussion fredl
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredl

XLDnaute Impliqué
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
 
Re : detection rst!mail=Null Excel-access-ADO

Bonjour Fred,

Code:
IF IsNull(rst!Mail) Then


D'ailleurs je mettrais plutôt ceci:

Code:
If not IsNul(rst!Mail) then
.....Traitement
End if
rst.moveNext
Loop
A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
3 K
Réponses
4
Affichages
1 K
Réponses
2
Affichages
6 K
Retour