Accès à une base de donnée Access sous VB

lolo - 16 févr. 2000 à 05:13
faraj_o Messages postés 1 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 12 mars 2005 - 12 mars 2005 à 19:03
J'aimerais réaliser une sorte de moteur de recherche en VB :

il y a différents champs à remplir par l'utilisateur; une fois ces
derniers remplis l'application recherche les infos qui correspondent
à la requête de l'utilisateur

Ce dernier chercherait les données dans une base Access auquel
il est lié. Actuellement j'essaye de mélanger du code VB
et des requêtes SQL. Malheuresement je ne rencontre que des problèmes.
Aidez moi, svp

4 réponses

Ce code tente de montrer la base, aucune erreur n'est traitée.

Pour cet exemple, tu as besoin d'une Common Dialog et
de ton fichier Access:

Dim BDDefinitions as Database
Dim RSTemp1 as Recordset
Dim SQLQry as String
Dim DonneeX as Variant 'c'est juste un exemple, utilise le bon type pour ta donnée...

CommonDialog1.FileName = vbNullString
CommonDialog1.InitDir = "C:"
CommonDialog1.DialogTitle = App_ProductName & " -- Ouvrir Base de Données"
CommonDialog1.Filter = "MS-Access (*.mdb)|*.mdb"
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNPathMustExist Or cdlOFNHideReadOnly
CommonDialog1.ShowOpen

SQLQry = "SELECT * FROM TableX;" 'Ici tu peux lire le contenu de tes contrôle et composer ta requête.

Set BDDefinitions = DBEngine.OpenDatabase(DBPath, True, True)
Set RSTemp1 = BDDefinitions.OpenRecordset(SQLQry, dbOpenSnapshot)

If RSTemp1.RecordCount > 0 Then 'Au cas pas de résultats
RSTemp1.MoveLast 'Pour décompte exact
RSTemp1.MoveFirst


Do While (Not RSTemp1.EOF) 'Tant que non rendu en fin de l'ensemble résultat
DonneeX = RSTemp1.Fields("ChampsX")
'Maintenant tu utilise ta DonneX

RSTemp1.MoveNext 'Passer à l'enregistrement suivant
Loop

Else
msgbox "Aucune données correspondants à la requête trouvés!"
End If
RSTemp1.Close 'Optionnel si on ne réutilise pas la variable dans la procédure.
0
Addendum à mon code :

dans la ligne
Set BDDefinitions = DBEngine.OpenDatabase(DBPath, True, True)

DBPath égale CommonDialog1.FileName, elle pourrait donc se lire
Set BDDefinitions = DBEngine.OpenDatabase(CommonDialog1.FileName, True, True)
0
labynocle Messages postés 9 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 mars 2003
1 mars 2003 à 16:02
je realise actuellement un serveur sql et je veux le faire communiquer avec ma base de donnees gerees sous access... mais je ne comprends pas grand chose de ton code :(

si tu peux etre plus explicite je t en serai grandement reconnaissant :)

++

Newbi
0
faraj_o Messages postés 1 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 12 mars 2005
12 mars 2005 à 19:03
tu peut le faire juste grace aux controle filedriver and dirdriver
en utilisant bien sur les instructions : repertoire.path qui donne le chemin de
repertoire courant et repertoire.list(i) qui liste tous les repertoire
de repertoire courant ,avec i le numero de repertoire en ajoutant
repertoire.listcout
R/q : utiliser les fonctions recursives jusqu'à vous trouivez le numero des
repertoires courant esteagale à 0
0
Rejoignez-nous