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 :
- 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
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 " 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
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 " 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("[FName]", "Files", "Res = '" & [FileID] & "'")
Pour résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part = DLookup("[FPath]", "Files", "Res = '" & [FileID] & "'")
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 !
Partager