Bonjour tous le monde [Résolu/Fermé]

Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
- - Dernière réponse : NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
- 17 mai 2012 à 02:11


voici mon code source
si quelqu'un peux m'aider je veux incrémenter
la colone matricule d'une table cariére(acces) et si je trouve deux matricules égaux le format d'export change
Private Sub Command1_Click()
Set MaConn = New ADODB.Connection
MaConn.Provider = "Microsoft.Jet.OLEDB.4.0;"
MaConn.Open "C:\personnel\GCP.mdb"
Set rsttable = New ADODB.Recordset
rsttable.Open "cariére", MaConn, , , adCmdTable
Open "C:\personnel\EXPORT.txt" For Output As #1
While Not rsttable.EOF
Print #1, "0000000008" & Right("0000000000" + Trim(rsttable!matricule), 10) & Left(rsttable!Nom + Space(40), 40) & Left(rsttable!Prenom + Space(40), 40) & Format$(rsttable!datenaissance, "ddMMyyyy") & rsttable!sexe & Format$(rsttable!DateDebut, "ddMMyyyy") & Format$(rsttable!DateFin, "ddMMyyyy") & Right("00" + Trim(rsttable!idq), 2) & Right("00" + Trim(rsttable!idpos), 2) & Right("0000" + Trim(rsttable!idg), 4) & Right("0000" + Trim(rsttable!idf), 4) & Right("00" + Trim(rsttable!idts), 2) ; ""
rsttable.MoveNext
Wend
Close #1
rsttable.Close
Unload Me
End Sub
***********************************************
c'est le syntaxe normale
je veux que si j'incrimente le table cariére et lorsque je trouve deux matricules agaux
ce champ:
y = Format$(rsttable!DateDebut, "ddMMyyyy") & Format$(rsttable!DateFin, "ddMMyyyy") & Right("00" + Trim(rsttable!idq), 2) & Right("00" + Trim(rsttable!idpos), 2) & Right("0000" + Trim(rsttable!idg), 4) & Right("0000" + Trim(rsttable!idf), 4) & Right("00" + Trim(rsttable!idts), 2)
s'ajoute au premier ligne c'est à dire par exemple:
voici le contenu de fichier export

00000000080000000033flen foulen 03011979M310820093108200903030033025602
00000000080000000033flen foulen 03011979M310820093108200903030033025602
00000000081236547895alen alen 13072010M310820093108200903030033025602

je veux que ça sera comme ça:

00000000080000000033flen foulen 03011979M310820093108200903030033025602310820093108200903030033025602
00000000081236547895alen alen 13072010M310820093108200903030033025602
***********************************************
            
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
26112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
313
3
Merci
Bonjour à toi également.

Dans un premier temps je me permettrai de te faire quelques remarques sur la "forme" de ton sujet :

1 - TOn tire, bien que très acceuillant, n'est pas très pertinent... si quelqu'un doit faire une recherche sur le forum sur un sujet identique au tient passera surement à côté ( tous comme les titres dont le texte est : AIDE , Help , urgent.., etc... )

2 - Il semble que le Code que tu as posté soit du VBA. Tu ne l'as donc pas mis dans la bonne section du forum.

3 - Lorsque l'on poste du code... il serait souhaitable (voir INDISPENSABLE ) d'utiliser les balises de code (3 eme Icone en partant de la droite lorsque tu rédiges un message )


Ensuite, là tout de suite je n'ai pas le temps de lire ton code ..
Pourrais tu nous indiquer ou est-ce qu'il bloque ? Ou alors.. est-ce que le résultat n'est pas correcte ?

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
3
Merci
Salut

Garde en tête que le titre d'une question sert aux autres utilisateurs pour trouver des réponses à des questions du même genre. Donc "Bonjour tous le mode" n'a aucun intérêt.

Tu auras remarqué que ton code ne ressemble à rien une fois collé.
Utilise la coloration syntaxique (3ème icone à droite) = lisible.

Dans ton code VB, pense à utiliser le symbole _ pour faire un retour à la ligne de la suite de ta commande.
Des lignes de 200 caractères de longs sont illisibles.

Je n'ai pas regardé ton code (pour les raisons citées au dessus).
Si tu dois savoir si une ligne est double, il te faut retarder l'écriture de la ligne et une fois que tu auras lu la suivante, tu décideras s'il faut, ou pas, changer le format.
- Prépare donc autant de variables texte que tu as de champs à découper
- lit une première ligne et rentre les données dans ces variables
- lit une seconde ligne
- compare avec la première :
.. si différente : format 1 avec les variables en attente
.. si identique : format 2 avec les variables en attente
- rentre les données de la deuxième ligne lue dans les variables
- recommence
En sortant de ta boucle, il faudra penser à écrire les dernières données mémorisées.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonsoir le Forum,


Pour continuer à suivre les bons conseils de Jack, exemple pour créer tes variables.


Dim MyArray(2)
MyArray(0) = "00000000080000000033Flen Moulen 03011979M310820093108200903030033025602"
MyArray(1) = "00000000080000000033Flen Moulen 03011979M310820093108200903030033025602"
MyArray(2) = "00000000081236547895Me of Fen 13072010F310820093108200903030033025602"

For i=0 To UBound(MyArray)
    var1 = Mid(MyArray(i),InStrRev(MyArray(i), Space(1))+1)
    var2 = Mid(MyArray(i),21,Len(MyArray(i))-Len(var1)-20) 
    MsgBox Left(MyArray(i), 20) &vbCrLf&_
           var2 &vbCrLf&_
           var1 &vbCrLf&_
           Mid(var1,9,1) &vbCrLf&_
           Right(var1,30)
Next





jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
0
Merci
Résurgence de cette discussion :
http://www.vbfrance.com/forum/sujet-AIDE_1591612.aspx

Il n'a toujours pas compris mes messages de ce sujet et continue ...

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
Messages postés
51
Date d'inscription
vendredi 1 juin 2007
Statut
Membre
Dernière intervention
13 octobre 2012
0
Merci
bonjour
j'ai une base de données acces contenant une table carrière avec les champs suivantes:
matricule,nom,prénom,service,direction.
je veux exporter le contenu dans un fichier
sous format
matricule(10char)&nom(40char)&prénom(40char)&service(2 char)& direction (4char)
mais avant de retourner à la ligne je vérifié la ligne suivante si le même matricule j'ajoute:
& service & direction au premier ligne et c'est ça exactement mon pb l'export sans vérification je l'ai déjà fait sans problème mais me manque la vérification. voici mon code

voici mon code source:





Private Sub Command1_Click()
Set MaConn = New ADODB.Connection
MaConn.Provider = "Microsoft.Jet.OLEDB.4.0;"
MaConn.Open "C:\personnel\GCP.mdb"
Set rsttable = New ADODB.Recordset
rsttable.Open "cariére", MaConn, , ,adCmdTable
Open "C:\personnel\EXPORT.txt" For Output As#1
While Not rsttable.EOF

Print#1,& Right("0000000000"+Trim(rsttable!matricule),10)&_ Left(rsttable!Nom+Space(40),40)&Left(rsttable!Prenom+Space(40),40)&_ Right("00"+Trim(rsttable!service,2)&Right("0000"+Trim(rsttable!direction,4);""
rsttable.MoveNext
Wend
Close #1
rsttable.Close
Unload Me
End Sub




merci
Commenter la réponse de saidmansour
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
Commenter la réponse de NHenry