j'ai besoin de votre aide pour gerer l'acces a une base de données (.MDB) access 97 a partir de vb6.
j'ai donc une base de données appelée PARAM.MDB contenant plusieures tables:
- TESTSTDCalibrator
- TestReagent
- TestCalibration...
toutes ces tables ont un champ commun appelé "AppCode".
Ce que je souhaiterai faire,c:
sur une form contenant des textbox, je voudrait faire apparaitre les valeurs de differents champs venant de differentes tables en fonction du champ "codeappli". Mais je sais pas faire :-(
ex: textbox1>>>> valeur du champ "calibcode" (table "TESTSTDcalibrator")
textbox2>>>> valeur du champ "SDlimite" (table "Testcalibration")
ceci afin de visualiser et modifier des parametres de configuration d' automate.
Pour accéder à plusieurs tables, il faut que l'objet Data du formulaire pointe sur une requête et non sur chacune des tables. Le code SQL à utiliser est de la forme
"SELECT Table1.Champ1, Table2.Champ2, Champ3, Champ4 FROM Table1, Table2 WHERE Table1.Champ1=Table2.Champ1[ORDER BY Champ1, Champ2];"
ou
"SELECT Table1.Champ1, Table2.Champ2, Champ3, Champ4 FROM Table1 INNER JOIN Table2 ON Table1.Champ1=Table2.Champ1[ORDER BY Champ1, Champ2];"
Dans la requête sélection, les champs de même nom qui appartiennent à plusieurs tables doivent être précédés du nom de la table propriétaire, les champs qui n'appartiennent qu'à une seule table n'ont pas à être précédés du nom de la table propriétaire.
merci pour ta reponse rapide, mais je suis debutant avec les bases de données, pourrais tu etre plus explicite en me donnant un exemple concret?
Par exemple sur une form avec:
- un objet data
- une textbox ciblant le champ "calibcode" de la table "TESTSTDcalibrator"
- une textbox ciblant le champ "SDlimite" de la table "Testcalibration"
-et une textbox ciblant le champ "bottlecode" de la table "testqualitative"
sachant que ces tables ont comme champ communs le champs "Appcode", quel code dois je mettre pour obtenir les valeurs des champs ci dessus en fonction du champ "Appcode"?
En admettant que le controle Data nommé Data1 soit placé dans le formulaire d'affichage
Propriétés de Data1 :
.BOFAction=0-MoveFirst
.Connect= Access (pour Access 97)
.DatabaseName="Chemin...\PARAM.mdb"
.RecordsetType=1-Dynaset
.RecordSource="SELECT calibcode, SDLimite, bottlecode FROM TESTSTDcalibrator, Testcalibrator, testqualitative WHERE TESTSTDcalibrator.Appcode=Testcalibrator.Appcode AND TESTSTDcalibrator.Appcode=testqualitative.Appcode;"
Ensuite, pour les contrôles TextBox :
Propriétés :
.DataSource=Data1
.DataField="calibcode"
...
idem pour les deux autres champs
L'erreur est certainement due à une mauvaise écriture du code SQL (ex un nom de champ qui est mal ortographié,..). Pour découvrir où elle se trouve, le plus simple,c'est de copier le code SQL, ouvrir la base de données avec Access, aller dans requêtes, nouvelle requête, puis venir dans SQL et coller le code en question dans la fenêtre SQL. Ensuite, lancer la requête, Access donne nettement plus d'informations sur l'erreur.