Besoin d'aide pour une recherche !

cs_OZx Messages postés 8 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 19 novembre 2002 - 14 juin 2002 à 14:52
skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014 - 14 juin 2002 à 16:17
OZx@911

J'aurais besoin d'aide, je ne suis pas encore un pro en VB et je suis entrien de monter un prog avec une base de donnée ACCESS. Je voudrais inclure un moteur de recherche. J'ai un aide avec un onglet recherche et je voudrais que le mot que l'utilisateur qui entre un mot dans mon TEXTBOX,
que se mot sois recherché dans la base de donnée.

SVP si quelqu'un peut m'aider sa serais bien apprécier.

OZx merci d'avance.

1 réponse

skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014
14 juin 2002 à 16:17
Ton truc est assez insolite parceque une base de données est supposée contenir des données 'organisées', 'structurées'. Donc faire une recherche total ça voudrait dire que c'est pas organisé.

Mais bon, voici quand même un truc si tu as besoin de scanner toutes les tables tous les champs et toutes les lignes de la base :

Si tu as Access 2000 ou 2002, le mieux est d'utiliser ADODB.
Fais une boucle sur le liste de toutes les tables. Elles figurent toutes dans CurrentData.AllTables().
Mais attention : les tables dont le nom commence par 'MSys' sont des tables système que tu ferais mieux de passer.

Pour chaque table donc, ouvre un Recordset qui ne routourne aucune ligne afin d'avoir la liste des champs. Exemple
MonRs.Open "SELECT * FROM [" MaTable & "] WHERE 0=1"

Mainteant scanne les liste des champs pour renseigner une variable String qui contiendra la liste des champde type Text ou Memo séparés par une virgule.

For i = 0 to (MonRs.Fields.Count-1)
If MonRs.Fields(i).Type=... Then
LstChp = LstChp & MonRs.Fields(i).Name & ","
End If
Next i

Attention : y'a plusieurs types de champs qui contiennent du texte. Il faut consulter l'aide en ligne pour voir les valeurs de la propriété .Type que tu dois conserver.

Maintenant réouvre le Rs avec seulement les champs Texte ou Mémo et toutes les données.

MonRs.Close
MonRs.Open "SELECT " & LstChp & " FROM [" & MaTable & "]"

Attention : si tu as bien suivi, tu dois d'abord retirer la dernière virgule de la variable LstChp.

Puis tu scannes un à un les enreg et un à un les champs du Rs pour rechercher le texte voulu.

Et voilà.
--------------------
Skrol 29
www.skrol29.com
--------------------
0
Rejoignez-nous