IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Traitement lignes Txt sous access 2003


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 49
    Par défaut Traitement lignes Txt sous access 2003
    Bonjour,

    Dans ma base Access 2003 j'ai un Champ TxT dans une table. (Ce Champ provient d'une page web que j'ai copier via un copier/coller). Ce champ TxTest composée de x lignes de differentes longeurs et je désire retirer des informations à partir de differents repères (mots clefs) du texte. La fonction et la requette que j'utilise fonctionne; ok: par contre je désire recuperer les 4 lignes qui précéde mon mot clef et là je bloque...

    je pense à une solution : Compter le nombre de lignes du champ TxT et enregistrer le N° de la ligne du mot clef (Numclef), puis extraire les lignes (Numclef-4,Numclef-3,...).

    Un petit bout de code serait la bienvenue (j'apprends au fur et à mesure). Merci....

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Bonjour,
    regarde du côté des fonctions Instr() et Split().
    une nouvelle ligne est identifiée par deux caractères, LineFeed (fin de ligne) et CarriageReturn (Retour chariot) qui correspondent à une constante VBA vbCrLf (ou aux caractères Chr(13) & Chr(10).
    A chaque fois que tu as ces caractères dans ton champ, il y a une nouvelle ligne.

    Exemple : Ici une fonction qui attend en paramètre la chaine à lire, le mot clé à rechercher et le nombre de lignes précédent le mot clé à renvoyer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Function GetLignes(Chaine As String, MotClef As String, NbLigne As Integer) As string
     Dim Ligne() As String, I As Integer, J As Integer
     Dim Result as String
     Result=""
     Ligne=Split(Champ, vbcrlf)
     For i=0 to UBound(Ligne)
        If Instr(Ligne(i),MotClef)>0 Then
           J=IIF(I-NbLigne<0,0,I-NbLigne)
           Do While J<I
               Result=IIF(len(Result)=0,Ligne(j), Result & vbcrlf & Ligne(j))
               J=J+1
           Loop
           Exit For
        Endif
     Next i
     GetLignes=Result
    End Function

Discussions similaires

  1. programmer en vb .net sous access 2003
    Par rideom dans le forum Access
    Réponses: 4
    Dernier message: 20/07/2006, 15h59
  2. Taille d'une zone de texte dans un état sous Access 2003
    Par Petite grenouille dans le forum Contribuez
    Réponses: 4
    Dernier message: 15/05/2006, 20h39
  3. Problème de table liées sous Access 2003
    Par FuRioX dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 13h19
  4. Probleme formulaire sous access 2003
    Par pedrosystem dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 18h02
  5. PB importation classeur excel sous access 2003
    Par techinfo37 dans le forum Access
    Réponses: 6
    Dernier message: 04/10/2005, 21h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo