Access Mix Excel et Access

Calvus

XLDnaute Barbatruc
Bonsoir à tous,

Après avoir écumé internet et ce forum pendant 3 jours, je suis un peu dépité..

J'ai un fichier excel, qui a tendance à devenir gros mais qui me donne entière satisfaction quant à son utilisation, ou presque.
Ce fichier me sert à gérer des tableaux de prospects, clients, commandes, commandes fournisseurs, gestion de stock livraisons et factures. En passant par quelques outils d'analyse.

Là où l'ergonomie n'est pas parfaite, c'est sur le partage du fichier en réseau, et sur la gestion de plusieurs commandes simultanées et donc la gestion de stock.
Les recherches, sur d'anciennes occurrences ne sont pas non plus les plus faciles (par exemple les anciennes factures, où il faut que j'ouvre le classeur d'archives et cherche manuellement toutes les factures pour un client)

Je me demandais donc s'il n'était pas opportun d'utiliser Acces.
En tout cas pour certaines tâches.
En revanche, vu le temps que m'a pris la construction de ce fichier, comprenant des dizaines de macros et une quarantaine de feuilles, je n'ai pas envie de devoir tout reconstruire, surtout que mes connaissances d'Access sont assez limitées et que l'utilisation d'excel et son ergonomie conviennent parfaitement à mon "désir visuel et de traitement".

Pensez vous donc que je pourrais mixer le travail des 2 logiciels afin d'obtenir ce que je souhaite ?
Par exemple en continuant à travailler comme je le fais, mais en intégrant une macro qui irait alimenter la base de données Access afin d'y retrouver toutes mes informations ?

J'ai lu sur le net plusieurs articles incitant à le faire, mais sans l'explication du comment ou du pourquoi.

J'espère que quelqu'un parmi vous pourra m'apporter un début de réponse.
Chris peut être qui semble calé dans ces 2 domaines (et qui m'avait conseillé au début de mon projet encore vague... ;) )

En vous remerciant
 

chris

XLDnaute Barbatruc
Re
...Pourrais-je lier 2 tables, de 2 fichiers Excels distincts, et en faire une 3ème à partir de là sur Access, et donc indépendante et consultable en ligne ?
Il est possible de faire la chose suivante :
  • lier la table client
  • lier la table prospect
  • créer une structure clients/prospects
  • créer les requête suivantes :
    1. requête de type équi-jointure mettant à jour la table Access des infos ayant pu changer dans Excel
    2. idem avec la table prospects
    3. requête de non correspondance ajoutant les clients Excel inexistant dans la table Access (et remplissant le champs type)
    4. idem avec prospects
La 1ère fois on ne lance que les requêtes 3 et 4
Ensuite on chaîne les 4 requêtes dans une macro Access (2mn chrono) afin de lancer la MAJ régulièrement d'un clic.

Reste la question des codes clients et prospects qui diffèrent dans Excel : il faut réfléchir à l'ID unique...
 

Calvus

XLDnaute Barbatruc
Bonjour Chris,

J'ai essayé de faire ça hier, mais plantages....

Je vais tenter de digérer ce que tu viens d'indiquer, et avancer un peu. Je te dirai.

créer une structure clients/prospects
Dans Access ? Qu'appelles tu structure ? Une table ?
Ensuite on chaîne les 4 requêtes dans une macro Access (2mn chrono) afin de lancer la MAJ régulièrement d'un clic.
Existe t'il un enregistreur de macro dans Access ?

En tout cas, merci.
 

chris

XLDnaute Barbatruc
Re

Dans une base de données on distingue
Contenant = structure de table. Nom de la table, liste des champs, type et taille des champs et autres propriétés (clé unique, index, liste de contrôle...)
Contenu : les données
Présentation : on ne voit pas les données telles que stockées dans la base mais à travers des formulaires ou des états.

Ce qui est très différent du tableur où les 3 se confondent et ce qui donne une souplesse et une puissance aux SGBDR (système de gestion de bases de données).

Non pas d'enregistreur mais chaîner 4 requêtes consiste à écrire 6 lignes :
une pour désactiver les messages de confirmation,
une par requête à exécuter (de mémoire il y a des liste déroulantes pour les choisir),
une pour rétablir les messages.

Quand il n'y aura plus que cela on reparlera de cette macro...

"plantages...." c'est vague pour un diagnostic...
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Bonsoir Chris,

Pour la requête équi jointure, quelle option dois-je sélectionner, si c'est bien ici qu''il faut le faire ?
Etape 1 de ta liste.

Merci
upload_2018-1-3_0-38-43.png
 

chris

XLDnaute Barbatruc
Bonjour

Par défaut on est en équijointure, donc la première option.

Les champs doivent avoir des noms : si tu as F1, F2 etc c'est quasi impossible de travailler et cela montre que la liaison n'est pas bonne.

Les requêtes que j'évoquais se font entre la table Excel liée et la table Access dont la structure est à créer
 

Calvus

XLDnaute Barbatruc
Bonjour Cris, le forum,

Bon, je crois que j'ai avancé un peu...difficilement tout de même.

Je joins 3 fichiers qui semblent fonctionner.
Une BD Access, et 2 fichiers Excel.

Dans Access, j'ai lié 2 tables, une à chacun des fichiers.
J'ai fait une requête Union :
VB:
SELECT Num, Société, Nom, Prénom FROM Clients1
UNION SELECT Num,Société, Nom, Prénom FROM Clients2;

Et dans le fichier Clients 1, en Feuil2, j'ai importé ma requête en faisant :
Données
A partir d'autres sources
Microsoft Query
MS Database

Ça fonctionne maintenant, à savoir que le mix des 2 tables se fait en feuille 2 de mon Clients 1, si ce n'est que pour mettre les données à jour, Actualiser ne suffit pas, il faut fermer Excel et le ré-ouvrir.

Idem pour la base d'ailleurs, il faut parfois fermer les tables pour que les mises à jour se fassent.

Maintenant, j'ai une question subsidiaire, penses tu qu'en fonction de ma demande globale, je n'ai pas plutôt intérêt à tout passer sous Access ? C'est ce que tu semblais dire dans un message précédant me semble t'il.
A savoir gestion de stock, facturation, etc...

Bonne journée
 

Pièces jointes

  • Exemple BD Forum.zip
    41.3 KB · Affichages: 53

chris

XLDnaute Barbatruc
Bonjour

C'est un 1er exercice...

Cependant ce n'est pas ce que j'avais conseillé pour être opérationnel au moins sur ces données là car si les fichiers Excel ne sont pas en ligne ou bien ouverts, tu ne pourras consulter.
En plus tu n'as aucune info permettant de différencier clients et prospects dans ta requête union : il faudrait au moins un champ ajouté dans la requête...
Code:
SELECT Num, Société, Nom, Prénom, "Client" as Type FROM Clients1
UNION SELECT Num,Société, Nom, Prénom, "Prospect" as Type FROM Clients2;

Sans structure Access, cela a peu d'intérêt...
Je t'invite à relire mes post #16 #18 et les étapes proposées.

Prendre aussi l'habitude de bien nommer tout : tables, requêtes... pas des noms auto qui n'ont aucun sens...
 

Calvus

XLDnaute Barbatruc
Bonsoir Chris, le forum,

Je n'ai pas répondu tout de suite, car je suis un peu dépité par ce projet.

Je suis en train de me prendre la tête sur Access, pour tout passer dessus finalement.
Cela me désole aussi à cause du temps passé sur mon fichier Excel (des centaines d'heures en fait, mais qui m'ont permis de parfaire mon Vba), et aussi parce que je vais laisser tomber ce fichier au moment où j'ai enfin toutes mes fonctionnalités sur mesure qui fonctionnent parfaitement. Sauf ce p****** de réseau !
Je trouve aussi l'interface moins sympa que mes formulaires, et moins visuelle comme tu l'as dit.

Je suis donc en train de refaire tout le travail avec Access, tout l'apprentissage également et qui se révèle plus long que prévu. Déjà des galères de code et de relations.

Je vais donc laisser ce post en suspens pour le moment, et vais certainement poster d'autres demandes pour Access.

A bientôt.
 

chris

XLDnaute Barbatruc
Bonjour

Attention à ne pas avoir une approche Excellienne dans Access (ou autres SGBDR).

Nombre de choses qui demandent des heures de boulot et du VBA dans Excel se font très simplement dans Access.

Notamment faire des formulaires et stocker les données dans la base ne nécessite pas de code, hormis les contrôles multi champs (genre pas de nom de jeune fille obligatoire si champ genre=homme et inversement), les autres contrôles n'étant que du paramétrage reposant sur la bonne structure de la base.
L'important n'est donc pas le code, souvent limité, mais la conception d'une bonne structure de la base et des relations.

Je me souviens avoir formé sur Access de jeunes cracks en Excel VBA, qui projetaient des semaines voire des mois sur Access pour un projet, avoir été estomaqués quand je leur ai montré qu'on obtenait le résultat voulu en 3 requêtes. Il ne restait plus qu'à bien affiner mais ils avaient le squelette de leur projet...
 

Statistiques des forums

Discussions
315 106
Messages
2 116 269
Membres
112 706
dernier inscrit
Pierre_98