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 :

Récupération valeur zone de liste pour zone de texte (format champ mémo pour plus de 255 caractères) [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Récupération valeur zone de liste pour zone de texte (format champ mémo pour plus de 255 caractères)
    Bonjour,

    Niveau débutant.

    Mon but est de réaliser une sorte de F.A.Q avec un moteur de recherche.

    Une table "Files" avec 3 champs :

    - FileID ; autonuméroté.
    - FName ; Type Mémo car + de 255 caractères reprennant un ensemble de questions fréquentes.
    - FPath ; Type Mémo car + de 255 caractères reprennant un ensemble de réponses aux questions fréquentes.

    Un formulaire avec :
    - Une zone de liste, "ListeServeur" de 3 colonnes lier à la table "Files" avec sur clique une récupération le la valeur de la colonne 0 via ce code :

    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
    18
    Private Sub ListeServeur_DblClick(Cancel As Integer)
    Dim ligne As Integer
    Dim Res As Variant
    Dim colonne As Integer
     
    ' Colonne de la zone de liste dans laquelle se situe l'information
    colonne = 0
     
    ' Parcours de la zone de liste
    For ligne = 0 To Me.ListeServeur.ListCount - 1
        If Me.ListeServeur.Selected(ligne) Then
            ' Si la ligne est sélectionnée, on stocke sa valeur dans la variable "valeur"
            Res = CInt(Me.ListeServeur.Column(colonne, ligne))
            ' Mettre valeur = CInt(Me.MaZoneDeListe.Column(colonne, ligne)) si la valeur est numérique
        End If
    Next ligne
     
    End Sub
    - Une zone de texte "TextRechercheServeur" pour rechercher une valeur dans la zone de liste via ce code :

    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
    Private Sub TxtRechercheServeur_Change()
    'Définie QRY comme objet
     Dim QRY As String
     'QRY définie comme étant le résultat correspondant au
     'texte tapez dans TxtRechercheRecours avec évidement les caractères générique de recherche
        QRY = "SELECT  * FROM Files " _
             & "WHERE FName Like '*" & TxtRechercheServeur.Text & "*';"
     'au bout de 10 caractères non trouver la requete de recherche se réinitialise
        If Len(TxtRechercheServeur.Text) > 10 Then
            Me.ListeServeur.RowSource = QRY
      'sinon rien
        Else
            Me.ListeServeur.RowSource = QRY
     
     
        End If
    End Sub
    - Une zone de texte " Questions " devant reprendre la valeur FName de la table Files par rapport à la valeur " Res " avec en Source contrôle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = DLookup("[FName]", "Files", "Res = '" & [FileID] & "'")
    - Une zone de texte " Réponse " devant reprendre la valeur FPath de la table Files par rapport à la valeur " Res " avec en source contrôle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = DLookup("[FPath]", "Files", "Res = '" & [FileID] & "'")
    Pour résumé :
    Les champs mémo étant trop conséquant pour être affichés dans une zone de liste (trop grand nombres de caratère et un manque de visibilité du à la hauteur des lignes) je souhaiterais que sur clique, la valeur de la colonne 0 de la zone de liste soit définie en variable " Res " afin de permettre aux zones de textes de se mettre à jour directement sur la table et non suir la zone de liste. De cette façons, l'affichage des champs mémo est complet sur les zones de textes.

    Problème :
    Les sources de contrôle ne semblent pas correct, après avoir retouné cela dans tous les sens et avoir vu passé un bon nombres de code erreur je bloque et appel à l'aide...

    Je vous remercie pour vos efforts ainsi que pour vos précédentes lumières !

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Un dessin vaut mieux qu'un long discours.
    Pourras-tu mettre une exemple de ta base de données

    Merci
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Merci de ton attention !

    Au final j'ai trouvé mon erreur ou pas véritablement mais ça marche!
    J'ai directement mis ça dans le code de ma liste serveur et je pense que cela venait du fait qu'il fallait rechercher une valeur numérique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Texte25.Value = DLookup("[FName]", "Files", "[FileID] =" & Res)
    Me.Texte21.Value = DLookup("[FPath]", "Files", "[FileID] =" & Res)
    Je joint ma base vierge de donnée si cela peut être utile à quelqu'un.

    Pratique pour réaliser un F.A.Q avec possibilité d'ajout de questions et de réponse via formulaire.

    P.S : Le code n'est pas épuré et mal commenté (c'est fait dans l'urgence et un peu bourrin...) , désolé, je nettois ça dès que j'en ai le temps...
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2011, 09h11
  2. Ordre des champs pour zone de liste
    Par benitoo dans le forum Access
    Réponses: 6
    Dernier message: 18/09/2006, 08h07
  3. Réponses: 6
    Dernier message: 06/09/2006, 14h50
  4. Réponses: 4
    Dernier message: 22/05/2006, 11h53
  5. Sélection valeur par défaut dans une zone de liste
    Par Cécile154 dans le forum IHM
    Réponses: 2
    Dernier message: 15/02/2005, 18h20

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