cs_tombal
Messages postés212Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention25 juillet 2005
-
24 juil. 2005 à 22:56
hindhinf
Messages postés50Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention27 juillet 2007
-
26 juil. 2005 à 13:13
Bonjour,
Voila j'utilise du DAO pour ouvrir des enregistrement et donc un recordset comme ceci
Set db1 = DBEngine.OpenDatabase("c:\fichier.mdb")
sql1 = "SELECT FROM TStock;"
Set record1 = db1.OpenRecordset(sql1, dbOpenDynaset)
Ca ne pose pas de probleme si toute les table que je veux utiliser se trouve dans le meme fichier (ici c:\fichier.mdb)
Par contre parfois je voudrais creer une requete sql mettant en jeux plusieures table de plusieur fichier
Comment doit'je faire ???
par exemple :
TStock est dans le fichier c:\fichier.mdb
TInventaire est dans le fichier c:\fichier2.mdb
Comment doit'je faire pour creer un recodset qui pourrais m'afficher une liaison entre les deux (avec des inner join dans le sql)
hindhinf
Messages postés50Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention27 juillet 20072 26 juil. 2005 à 13:13
salut :
je pense que c'est trés simple .tu peus créer une seul bd et puis tu va liée les tables des autres bd que tu veus utilisés comme ca tu manipuler plusieur tables des bd differentes.
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 24 juil. 2005 à 23:17
Salut,
Premiere idée qui me viens :
Set db1 = DBEngine.OpenDatabase("c:\fichier.mdb")
sql1 = "SELECT * FROM TStock;"
Set rst1= db1.OpenRecordset(sql1, dbOpenDynaset)
dim max1 as integer
max = rst1.RecordCount
For i=1 to max1
Set db2 = DBEngine.OpenDatabase("c:\fichier2.mdb")
sql2 = "SELECT * FROM TInventaire WHERE TInventaire.StockID=" & rst1("idStock")
Set record2 = db2.OpenRecordset(sql2, dbOpenDynaset)
Dim max2 as Integer
max2 = rst2.RecordCount
For j=1 to max2
' Traitement de tes infos ...
Next J
rst2.Close
db2.Close
Next i
rst1.Close
db1.Close
Sinon tu peux te répliquer les infos dans une même base à chaque fois
que tu en as besoin (par exmple importer les infos de fichier2 vers
fichier1) mais tu va consommer du temps et de l'espace
disque...donc pas viable... Sinon fusionner directement tes tables dans
une base unique et travailler tout le temps avec une unique base ... Vu
que j'ignore pourquoi tes données sont éclatées dans deux bases, je ne
peux pas trancher...
En esperant avoir répondu à ta question... J'ai pas testé ce code, donc
faut faire les déclarations d'usage, voir le corriger... c'est plus le
principe qui est presenté ...
cs_tombal
Messages postés212Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention25 juillet 2005 24 juil. 2005 à 23:54
Salut, merci d'avoir repondu rapidement
Sinon ton code m'a l'air bien compliqué...et surtout il risque de pomper beaucoups de resource......ce sont de grosse base de donné que j'utilise....
donc je n'utilise jamais de For j=1 to max2 ...
Mes données sont eclater dans plusieurs tables ca me permet de les actualier facilement sans touchez aux autres données...
Sinon j'ai entendu parler de TransferDatabase en faisant des recherche mais impossible de le faire marcher =(
cs_tombal
Messages postés212Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention25 juillet 2005 24 juil. 2005 à 23:57
Salut, merci d'avoir repondu rapidement
Sinon ton code m'a l'air bien compliqué...et surtout il risque de pomper beaucoups de resource......ce sont de grosse base de donné que j'utilise....
donc je n'utilise jamais de For j=1 to max2 ...
Mes données sont eclater dans plusieurs tables ca me permet de les actualier facilement sans touchez aux autres données...
Sinon j'ai entendu parler de TransferDatabase en faisant des recherche mais impossible de le faire marcher =(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 24 juil. 2005 à 23:58
Salut,
Mais je pige pas
l'interet d'avoir pleins de bases ... surtout que manifestement les
données sont liées...pourquoi ne pas mettre les tables qui ont un lien
logique dans la même base ?
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20108 25 juil. 2005 à 00:02
Salut,
Hors mis la methode
que je t'ai indiqué je ne vois pas par quel tour de passe passe tu peux
lier des données provenant de deux fichiers distincts...
C'est pas ne methode de barabare c'est juste une jointure, à la seul
différence c'est qu'il faut deux connexions ... si tu trouve mieux, je
suis curieux de savoir comment tu vas proceder ...
cs_tombal
Messages postés212Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention25 juillet 2005 25 juil. 2005 à 01:16
J'ai plusieurs base parceque certaine doivent etre mis a jour depuis un autre fichier (ca me permet de mettre a jour en copiant collant le fichier plutot que de passer par un code)
et ca permet aussi de mieux s'y retrouver (j'ai 5 bases de données et au total presque 20 tables)
Sinon g trouvé comment faire :
suffisait de lier les tables via access
pk j'y ai aps pensé plus tot =)