J'ai 2 db's : une sur le pc(D:\), et une sur un disque réseau (F:\).
Celle du F:\ devra contenir tous les enregistrements de toutes les db du D:\ => superdb
Je suppose qu'il faut ouvrir 2 connexions, mais comment faire en VB ? via le modèle ado par exemple.
Query du genre - insert into table_affaires (F:\)
select * from table_affaires (D:\)
Merci
Publicité
Posté le 15-02-2005 à 13:49:53
steevi2307
Posté le 15-02-2005 à 14:43:54
help please c'est super important
latruffe
Bdovore
Posté le 15-02-2005 à 14:45:29
Tu pourras ouvrir deux connexions mais tu ne pourras pas faire un INSERT / SELECT qui porte sur les deux à la fois.
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
steevi2307
Posté le 15-02-2005 à 14:45:54
je pensais faire un truc du genre:
Do while not controle_ado_local.Recordset_local.EOF
controle_ado_reseau.Recordset_reseau.addNew
controle_ado_reseau.Recordset_reseau!Name =
controle_ado_local.field(nom)
controle_ado_reseau.Recordset_reseau.Update
controle_ado_reseau.Recordset_local.MoveNext
loop
mais sachant qu'il y a +/- 45 champs, c'est lourd non ?
steevi2307
Posté le 15-02-2005 à 14:46:29
que faire alors ???
latruffe
Bdovore
Posté le 15-02-2005 à 14:53:06
c'est un truc que tu dois faire une seule fois ?
Message édité par latruffe le 15-02-2005 à 14:53:37
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
steevi2307
Posté le 15-02-2005 à 17:58:24
Des qu'une personne clique sur "fusionner", l'ensemble de la table doit etre COPIé vers la table fusion.
Seules les enregistrements nécéssaires doivent etre rajoutés forcement, mais ca je suppose qu'access bloque ca.
Merci
latruffe
Bdovore
Posté le 15-02-2005 à 18:03:57
Bah alors, je proposerais : - tu fais un select (*)
- tu parcours le recordset
- pour chaque ligne, tu effectues un INSERT dans l'autre base
(même si ça me plait moyen quand même).
Autre solution : tu fais des tables liées dans access et alors plus besoin de 2 connexions.
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
steevi2307
Posté le 15-02-2005 à 18:05:31
oui, mais, la db sur le pc à pas besoin de cette table_fusion .
latruffe
Bdovore
Posté le 15-02-2005 à 18:07:08
Le fait que la table apparaisse signifie pas forcément que l'utilisateur doit aller trifouiller dedans
Si tu veux que ce soit transparent, 1ere méthode
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
Publicité
Posté le 15-02-2005 à 18:07:08
steevi2307
Posté le 15-02-2005 à 18:09:53
t'as pas compris à mon avis
Sur chaque portable, il y aura la db du gars
Et puis en cliquant sur fusion, ben toutes ces données vont compléter "la grosse table" fusion => la seule table de la db sur le disque reseau.
latruffe
Bdovore
Posté le 15-02-2005 à 18:19:14
Si si, j'ai bien compris. C'est pour ça que je suggérais de faire une table lié sur le portable (ie de faire un lien avec la table qui figure sur le réseau).
Mais sinon, reste la solution qui consiste à travailler avec une succession de requetes "INSERT" ou, comme tu le mettais un peu plus haut, naviguer en parallele sur deux recordset (methode que j'aime moins).
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
steevi2307
Posté le 15-02-2005 à 18:22:27
moi je prefererais faire le mieux possible, mais comment faire un lien entre ces deux tables ?
comment dire "la table_fusion" qui est ds une db sur le portable est = à "la table_fusion" sur le reseau qui est dans une autre db
Donc qd j'ajoute dans l'une, j'ajoute dans l'autre
latruffe
Bdovore
Posté le 15-02-2005 à 18:27:31
T'as pas regardé du coté de la synchronisation sur access non plus ?
Parce que qu'est-ce qui se passe si tu te contente de modifier un enregistrement ?
---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
steevi2307
Posté le 15-02-2005 à 18:30:48
comment ca ?
steevi2307
Posté le 15-02-2005 à 18:41:09
et est-ce que ca passe sous access 97 aussi ?
latruffe
Bdovore
Posté le 15-02-2005 à 18:46:06
Y'a un truc pour synchroniser des tables entre elles sous accès. Maintenant, ce que ça vaut
et tu m'as pas répondu : si y'a juste une modif sur la table ?
steevi2307
Posté le 15-02-2005 à 18:52:11
ben en fait, viens de me renseigner, les données sont ecrasées forcement chaque mois, qd ils font cette table_fusion puisque les données sont pt changées, suprimées .... et le tout retourne dans cette table fusion qui sera vidée
latruffe
Bdovore
Posté le 15-02-2005 à 18:53:35
Bah alors te prends pas la tête :
- tu fais un select (*) - tu parcours le recordset - pour chaque ligne, tu effectues un INSERT dans l'autre base
steevi2307
Posté le 16-02-2005 à 09:13:43
Do While Not rs.EOF
rs.moveFirst
'parcours d'une ligne de la table_locale
For i = 1 To tableau.length Step 1
'copiage des champs de cette ligne dans un tableau
tableau(i) = rs.Fields(i)
Next i
'insertion d'une ligne dans l'autre db !!!!!
rs2.AddNew
'copiage des champs du tableau dans les champs de la nouvelle ligne for i = 1 To tableau.length Step 1
rs2.Fields(i) = tableau(i)
next i