Additionner une base à une autre base

Résolu/Fermé
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 8 sept. 2011 à 21:53
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 - 11 sept. 2011 à 08:33
Bonjour,

J'ai une table [stocks].
Pour cette table, les créations de nouveaux produits se font par formulaire, sur une base identique mais qui ne contient que ces seuls nouveaux produits. Ceci à cause d'un travail sur deux ordi différents.

Je me retrouve donc avec deux bases identiques en définition mais pas en contenu: l'ancienne, avec tous les produits, et la nouvelle qui ne contient, elle, que des produits nouveaux.

Mon problème est que je ne sais vraiment pas comment "ajouter" la base "nouveaux produits" à la base "Anciens produits" (mêmes champs et même définition)

Merci de vos lumières
Amicalement,
Roland

9 réponses

Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
9 sept. 2011 à 05:21
Et nous parlons de quel logiciel ?
0
Bonjour et mille excuses.
Ma demande comportait une erreur et un oubli.
Erreur: ça n'est pas une "base" que je veux ajouter à une autre base, mais une table !
Oubli: il s'agit d'Accesse 2003 sousXP

Merci du pardon
Amicalement
Roland
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 sept. 2011 à 07:43
Bonjour,

Il faut passer par la réplication si tes 2 ordis ne sont pas reliés par réseau
un tuto là dessus
http://www.info-3000.com/access/replication.php

si réseau, on peut utiliser le systeme "dorsale-frontale" avec des tables liées
http://www.self-access.com/cms/access/tutoriaux/access-reseau/
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
9 sept. 2011 à 09:10
Bonjour et merci.
Michel, je ne comrpends pas ta remarque "Pourrions nous caresser l'espoir de savoir avec quel langage ou/et logiciel comptes tu réaliser cette prouesse de l'informatique? "

Ma prouesse en question consiste à ajouter de nouveaux records (en création) à partir d'une table où ils ont déjà été saisis.

Pour cela, j'imaginais une solution VBA de ce type:

***Deux tables: Table-ancien, Table-nouveau
***Deux formulaires: Form-ancien, Form-nouveau
***Un code qui me ferait (en gros)
1 lire Table-nouveau sur son formulaire
2 transférer tous les champs de ce formulaire sur l'autre, le formulaire Form-ancien, mais positionné en "addition" (nouveau record)
3 Ensuite, boucler jusque'à la fin de Table-nouveau

Et c'est ce code-là que je ne connais pas.

Merci encore
Roland
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 9/09/2011 à 12:04
J'avais supprimé cette remarque à 7h37 (cf post 3)

post 4 à 7h43 Je t'ai indiqué les solutions classiques et éprouvées semblant répondre à ta demande ... mais apparemment à 9h10 tu n'as pas rafraichi !
Je me retrouve donc avec deux bases identiques en définition mais pas en contenu: l'ancienne, avec tous les produits, et la nouvelle qui ne contient, elle, que des produits nouveaux.
Mon problème est que je ne sais vraiment pas comment "ajouter" la base "nouveaux produits" à la base "Anciens produits" (mêmes champs et même définition)


de plus ces solutions n'oblige pas à passer par du VBA "avant de penser VBA, penser Access"

si tu veux passer par VBA, il te faudra certainement passer l'objet JRO.replica qui mettra "l'ancien" à jour ( possibilités: ajout, modif et suppressions éventuelles suivant intégrité référentielle pour une facilité d'évolution future du logiciel)
si non tu peux utiliser la technologie ADO, avec un SQL "update" et une boucle avec "move first-action-move next" tant que que l'on n'est pas en fin de table "while not eof" mais figée pour une évolution future (maintenance-évolution: 80% du temps de vie d'un logiciel)

Dans les 2 cas VBA, cela suppose que tu ais de bonnes connaissances de base en VBA

A toi de choisir d'utiliser les outils-assistants d'Access ou d'attaquer une programmation VBA
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
9 sept. 2011 à 14:10
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
9 sept. 2011 à 14:17
Bonjour et merci.
Effectivement, je n'ai vu le second message que plus tard. Je vais regarder chacune des deux solutions et je te tiens au courant.
Encore merci.
Roland
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
9 sept. 2011 à 17:00
Salut,

si c'est une table à ajouter dans une autre, une simple requête SQL fera l'affaire :

INSERT INTO table-new(champ1, champ2, champ3...) SELECT champ1, champ2, champ3... FROM table-old.

Il te suffit juste de créer table-old en tant que table attachée de la base à importer.
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
10 sept. 2011 à 09:16
Bonjour,
Désolé de vous embêter, mais je n'y arrive pas ! Je n'ai pas compris (et donc pas su) comment faire pour "créer table-old en tant que table attachée de la base à importer. "
Moi, j'ai mes deux tables, anciens et nouveaux Elles sont totalement identiques en définition. L'une comporte tous les produit "anciens". L'autre ne comporte que des produits que l'on vient de créer (chargée par clé USb depuis un autre ordi.).

J'ai tatonné et bidouillé, à partir des exemples de code que vous m'avez donnés sur ce forum. Mais j'ai régulièrement un message d'erreur, de syntaxe ou autre motif
Déja, je ne sais pas bien où placer ce code VBA qui ferait l'insertion de la seconde table sur la première !
Pour cela, j'ai fait un formulaire sur la base "nouveaux produits" et je mets mon code en évènement "sur activation" Mais ça ne marche pas !
Vous serait-il possible de m'expliquer un peu plus, svp ? Voire de me donner le développé complet du code à écrire ?
D'avance un grand gros merci,
Cordialement
Roland
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
10 sept. 2011 à 19:43
Si tes deux tables sont dans la même base, pas besoin de les créer.

Utilise la requête que j'ai donnée...
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
10 sept. 2011 à 14:19
Bonjour lecrol,


Il y a une méthode simple qui fonctionne sous Access 2000.
- D'abord ouvrir la table qui va être ajoutée
- Puis sélectionner la totalité des colonnes de cette même table, et faire
CTRL+C

- Ensuite dans la table qui va bénéficier de l'ajout
- Se positionner sur la dernière ligne de cette même table et la sélectionner
Ensuite faire CTRL+V

NB : Avant toute manipulation, une sauvegarde ne saurait nuire !

Cordialement
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 095
11 sept. 2011 à 02:50
Bonjour Roland.

* Pourquoi faire une fixation sur VBA ?

Jean_Jacques, michel_m et blux ont tous trois donné des solutions sans VBA.
Au post #9 blux t'a donné une instruction Access pour réaliser la requête ; ce n'est pas une macro et il n'est nulle part question de code ...

Reste zen (et simple).
0
lecrol Messages postés 200 Date d'inscription samedi 4 juillet 2009 Statut Membre Dernière intervention 25 juillet 2016 24
11 sept. 2011 à 08:33
Bonjour et merci, les amis J'ai découvert ce que j'ignorais, à savoir la requête addition. C'est la solution qu'il me faut, en effet.
Je ne parlais ici de code Vba que parce que je réalise cette opération via un formulaire utilisateur. Il s'agit en effet d'une appli opérationnelle en magasin (ma fille)
Encore un grand merci à vous tous
Bien cordialement
Roland
0