Rechercher : dans
Par :

Code VBA access

Dernière réponse le 25 fév 2009 à 17:16:36 SB, le 24 fév 2009 à 17:21:38 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Code VBA access » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
VBA Ajouter commandButton et le code qui va avec VoirCode relativement simple et qui ne nécessite pas d'explication complémentaire. Coller ces deux sub dans un module général (Module1 par exemple). Sub CréerBouton() Dim Obj As Object Dim Code As String Sheets("Feuil1").Select 'crée le...

1

Lupin.A, le 24 fév 2009 à 20:48:14
  • +1

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

Répondre à Lupin.A

2

SB, le 25 fév 2009 à 09:04:13

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

Répondre à SB

3

SB, le 25 fév 2009 à 13:30:14

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

Répondre à SB

4

Lupin.A, le 25 fév 2009 à 17:09:25

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

Répondre à Lupin.A

5

 SB, le 25 fév 2009 à 17:16:36

Merci sa marche!
tavé juste zapé un petit "end if"
Merci bcppp...

Répondre à SB