Code VBA access

Résolu
Bonjour,
Bonjour j'ai créer un code VBA pour exporter des champs de ma base de données access vers un ficheir texte sa marche bien y a pas de souci.
Seuelement je voudrais rajouter une ligne de code.
Voici le code que je voudrais rajouter : SI le code collaborateur = "" alors on ne l'exporte aps mais je ne sais pas comment on fait pour lui dire de ne pas exporte???

Voici mon code pour exporter :

Private Sub Commande30_Click()

Dim bd As Database
Dim rst As Recordset
Dim rs As Recordset
Dim ligne As String
Dim ligne1 As String

Set bd = OpenDatabase("SaisieSalariés.mdb")
Set rst = bd.OpenRecordset("Salariés")
Set rs = bd.OpenRecordset("liste des agences")

If Not (rst.EOF And rst.BOF) Then

Open "\\samba\commun\MajReg\envoimaj\TableSalaries.txt" For Binary As #1
rst.MoveFirst
Do While Not rst.EOF
ligne = rst("Code collaborateur") & ";" & rst("No salarie") & ";" & rst("Nom") & ";" & rst("Prénom") & ";" & rst("Fonction") & ";" & rst("Fonction 2") & ";" & rst("Nom Société") & ";" & rst("Site") & ";" & rst("Service/secteur") & ";" & rst("Tél Prof") & ";" & rst("Tel Fax") & ";" & rst("No Port")
Call EcritLigne(1, ligne)
rst.MoveNext
Loop
Close #1
Else
'pas d'enregistrements
End If

Merci a ceux qui pourront m'aider a rajouter le petit bout de code.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. re:
    en fait je ne sais pas vraiment ce qui se passe. Il faudra effectuer
    un déboggage en mode pas à pas ou ajouter du code !

    il serait possible que la valeur de [ rst("Code collaborateur") ] soit
    différente [ <> ] de rien [ "" ] genre un espace [ " " ] ?

    quoi qu'il en soit trace avec du contrôle et/ou du code plus explicit,
    comme :

    Dim Longueur As Long
    dim Chaine As String

            Do While Not rst.EOF
                Chaine = Trim(rst("Code collaborateur").Value)
                Longueur = Len(Chaine)
                If (Longueur > 0) Then
                    ligne = rst("Code collaborateur") & ";" & _
                                    rst("No salarie") & ";" & _
                                    rst("Nom") & ";" & _
                                    rst("Prénom") & ";" & _
                                    rst("Fonction") & ";" & _
                                    rst("Fonction 2") & ";" & _
                                    rst("Nom Société") & ";" & _
                                    rst("Site") & ";" & _
                                    rst("Service/secteur") & ";" & _
                                    rst("Tél Prof") & ";" & _
                                    rst("Tel Fax") & ";" & _
                                    rst("No Port")
                    Call EcritLigne(1, ligne)
                End If
                rst.MoveNext
            Loop
    


    Lupin
    1. Merci lupin mais ça ne marche pas, le client dont le code collaborateur est vide s'exporte tjs dans le fichier texte...
      En meme temps, je ne vois pas quelle commande tu as rajouté dans le code pour que sa ne s'exporte pas?
      Tu fais le "If" mais aprés y'a pas la commande permettant de ne pas l'exporter!
      Merci Lupin
      1. Ok j'avais pas vu le "<>"!
        J'ai donc intégré le "If" dans mon code mais les salariés dont le code collaborateur est vide s'affichent tjs dans le fichier texte...
        Merci d'avance
    2. Bonjour,

      Suggestion :

      Private Sub Commande30_Click()
      
          Dim bd As Database
          Dim rst As Recordset
          Dim rs As Recordset
          Dim ligne As String
          Dim ligne1 As String
      
          Set bd = OpenDatabase("SaisieSalariés.mdb")
          Set rst = bd.OpenRecordset("Salariés")
          Set rs = bd.OpenRecordset("liste des agences")
      
          If Not (rst.EOF And rst.BOF) Then
              Open "\\samba\commun\MajReg\envoimaj\TableSalaries.txt" For Binary As #1
              rst.MoveLast
              rst.MoveFirst
      
              Do While Not rst.EOF
                  If (rst("Code collabotateur") <> "") Then
                      ligne = rst("Code collaborateur") & ";" & rst("No salarie") & ";" & rst("Nom") & ";" & rst("Prénom") & ";" & rst("Fonction") & ";" & rst("Fonction 2") & ";" & rst("Nom Société") & ";" & rst("Site") & ";" & rst("Service/secteur") & ";" & rst("Tél Prof") & ";" & rst("Tel Fax") & ";" & rst("No Port")
                      Call EcritLigne(1, ligne)
                  End If
                  rst.MoveNext
              Loop
              Close #1
          Else
              'pas d'enregistrements
          End If
      
      End Sub
      '
      

      Lupin