Code VBA access

Résolu
SB -  
 SB -
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. Utilisateur anonyme
     
    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
    1
  2. SB
     
    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
    0
    1. SB
       
      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
      0
  3. Utilisateur anonyme
     
    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
    0
  4. SB
     
    Merci sa marche!
    tavé juste zapé un petit "end if"
    Merci bcppp...
    0