Liée access à excel

Fermé
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011 - 21 avril 2011 à 13:48
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 28 avril 2011 à 13:56
Bonjour,

Je travaille sur la mise en place d'une base de donnée dans access 2003. Je me base sur des fichiers excel sous forme de tableur. J'ai réussi à importer les données d'excel sous access mais le problème est que les fichiers d'excel se mettent à jour régulièrement mais cela ne se répercute pas dans les tables d'access. Quelqu'un saurait-il comment liée excel à acces pour que lorsqu'on importe un tableur excel sous access, ce dernier se modifira automatiquement si on modifie le dit tableur d'excel ? Pour que la table access soit liée au tableur excel en quelque sorte.
Merci d'essayer de me donner une réponse. Si jamais je ne suis pas assez clair n'hésitez pas à me demander des précisions, MERCI !!!

A voir également:

13 réponses

Jean_Jacques
21 avril 2011 à 16:51
Benjamin1803,

Pour établir la fluidité des informations entre ACCESS et EXCEL, la manipulation
consiste, depuis ACCESS, à relier les feuilles EXCEL avec ACCESS.

Pour y parvenir il suffit, depuis ACCESS, de faire Fichier/Données Externes/Lier les tables ...
Ensuite la démarche en pas à pas est bien faite ....

Cordialement

La science ne fait que découvrir ce qui existe depuis toujours.
REEVES Hubert
1
Bonjour Benjamin1803,
Démarrons sans fioritures

- Affichage du formulaire
- Puis menu affichage (dans la barre menu) et sélection du mode création
- Alors : Clic droit sur le champ texte créé précédemment
- Sélectionner propriétés dans la liste
- Puis sélectionner l'onglet Évènements
- Cliquer sur la ligne : Après MAJ
- Dans la liste, sélectionner : Procédure évènementielle
- Puis complètement à droite : activer le petit bouton avec 3 points ...

Copier/coller le texte ci-dessous entre les 2 lignes de texte affichées par défaut :


'------------------------------------------------------------
' Champ_de_Saisie_AfterUpdate()
'
'------------------------------------------------------------


With CodeContextObject
DoCmd.GoToControl "[Référence_Facture]"
DoCmd.FindRecord Champ_de_Saisie, , True, , True



End With


NB : Entre les 2 [ ] remplacer <Référence_Facture> par le nom de votre champ de référence.
Enfin : Notez bien les incidents éventuels pour me les faire remonter
A+
1
Jean_Jacques
27 avril 2011 à 13:49
Benjamin1803,

Ce qu'il vous fallait, c'est une requête paramétrée ! !
J'étais hors sujet.

Je vous retourne le fichier que j'ai pu manipuler sans aucune difficulté.
http://www.cijoint.fr/cjlink.php?file=cj201104/cijM2Qx58E.zip

J'ai créé un bouton à la va-vite dans votre formulaire nommé : Unités
Je vous laisse découvrir son fonctionnement.


Par ailleurs je note que vos tables semblent avoir la même structure. C.à.d. qu'elles contiennent les mêmes informations.
Toutes vos tables devraient se résumer à une seule. C'est un des principes des bases de données.

Bonne découverte
1
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
26 avril 2011 à 11:45
Merci bien pour ta réponse !
Un autre problème se pose maintenent, je souhaite créer une sorte de moteur de recherche de sorte que si on tape la référence du produit puis sur "entré" access cherche dans la base de donnée correspondante et nous sort tous les résultats liés à la référence, j'entends par là les champs correspondants. Est-ce possible ? Si oui pouvez-vous m'indiquer un site ou une méthode à suivre pour réaliser ce "moteur de recherche" ? Merci bien !
0

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

Posez votre question
Bonjour Benjamin1803,

Fastoche !

Depuis des années? je garde de côté une petite base pédagogique, faite à la va-vite, à télécharger, qui contient le grand secret ...
Bien sûr il faudra l'adapter à ce cas précis !

http://www.cijoint.fr/cjlink.php?file=cj201104/cijWwdrtak.zip

NB : Dans le champ saisie, Lorsque l'on tape un code connu dans la base, les informations correspondantes s'affichent dans le formulaire...
En passant, il faut neutraliser/adapter le message d'alerte qui est, ici, incongru.
****
Cordialement
- La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
26 avril 2011 à 14:27
Merci pour votre réponse aussi rapide. J'ai regarder votre fichier access, le problème est que je suis débutant dans access. A vrai dire c'est même la première fois que je l'utilise.... J'ai compris en gros comment former les tables, formulaires, requêtes, etc... grâce à ce tutorial : http://www.ybet.be/access/formation_access.htm . Enfaite j'ai plusieurs tables et ces dernières ont toutes un champs en commun et c'est en tapant ce champs que j'aimerai avoir l'affichage des autres champs en relation avec ce dernier. Pouvez-vous m'indiquez, si possible, la marche à suivre pour faire cela à partir d'un formulaire en mode création vierge ?
Merci beaucoup de vous penchez sur le sujet !
0
Jean_Jacques
26 avril 2011 à 15:55
Benjamin1803,

Pour moi, et on peut me contre-dire, la notion de formulaire vierge n'a pas de sens.

Un formulaire a vocation a afficher des informations (au sens large). Ces informations proviennent de plusieurs sources ... Table, requête....

Autrement dit : Commencez par créer une requête basée soit sur une table, soit sur une requête.
Et puis nous en reparlons

A+
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
26 avril 2011 à 16:02
Les requêtes et tables sont toutes formées, mon seul prolème est dans le formulaire ; comment faire pour mettre en place une option qui, lorsque on passe en affichage formulaire, nous permet de rentrer la référence du produit au clavier, puis en cliquant sur entrée access va chercher dans les tables et nous sortir les informations liées à cette référence.
Merci beaucoup de votre gentillesse (et votre patience !)
0
J'ai bien compris, rassurez-vous. Je me borne simplement à procéder méthodiquement pas-à-pas.

Ceci dit, maintenant, vous créez une zone de texte dans votre formulaire ....
Vous nommerez cette zone de texte (strictement) : Champ_de_Saisie

A+ pour la prochaine et, je pense, dernière étape..
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
27 avril 2011 à 08:51
C'est chose faite. Quelle en est la dernière étape ? ^^
Merci
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
Modifié par Benjamin1803 le 27/04/2011 à 10:46
Je fais tout comme vous m'avez dit mais lorsque je tape le nom de la référence, ça m'affiche un message d'erreur "erreur d'execution 2109" me disant qu'il n'y a pas de champs "reference" (c'est le nom du champs commun à mes tablesque j'ai mis entre les 2 []) dans l'enregistrement en cours. J'ai donc essayer de mettre une clef primaire à ce champs me disant que c'était peut être ça le problème, mais là un autre message d'erreur intervient en disant "Modifications non effectuées: risque de doublons dans champs index, clé principale ou relation interdisant les doublons. Modifiez les données des champs contenant les doublons, enlevez ou redéfinissez l'index pour permettre les doublons et recommencez." C'est surement parceque mon champ référence contient plusieurs fois la même référence puisque pour une référence j'ai des sous parties.
Cordialement
0
Jean_Jacques
27 avril 2011 à 11:23
Benjamin1803,
Votre explication est plausible. Mais vérifiez tout de même si vous avez bien respecté les accents .... Dans ses contrôles Access est impitoyable ... Un accent aigu alors qu'il attend un accent grave, et c'est la punition ....

Sinon, déposez votre fichier (sous forme compressée) sur ci-joint.com et communiquez moi le lien qui vous sera communiqué.
Toutefois je ne suis pas sûr de pourvoir l'ouvrir car je ne dispose que de ACCESS 2000.
A+
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
27 avril 2011 à 11:52
Voila je vous envois le lien donc comme vous pouvez le voir il y a le menu boms et dans ce menu plusieur untié avec les tables associées. Dans chaque table il y a un Bulk Dode c'est ça ma référence. Le but serait donc de créer dans le formulaire unité le moteur de recherche pour que l'utilisateur ai le choix de soit rechercher par unité soit en tapant le bulk dcode


http://www.cijoint.fr/cjlink.php?file=cj201104/cijUAswoT4.zip


Merci de ton aide
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
27 avril 2011 à 14:48
Merci beaucoup mon problème est résolu ! Il y a un dernier prolème maintenant lorsque j'importe des tables excel dans access. Le problème est que lorsque j'importe le fichier excel en liant les tables, les cases comportants des chiffres + lettres ne sont pas affichées, il y a ceci qui est écrit à la place: #Nombre ! . J'ai fait la même chose sans lier les tables, et dans ce cas là les données s'affichent correctement. Avez-vous déjà rencontré ce problème ?
0
Jean_Jacques
27 avril 2011 à 18:59
Benjamin1803,

Je n'ai, je crois, jamais rencontré ce message d'erreur.

Toutefois, j'ai pu constater via google que ce code #Nombre ! est bien connu (trop) par les utisateurs qui lient des feuilles Excel à ACCESS.
En saisissant : #Nombre ! ACCESS Excel comme argument de recherche sur Google vous en saurez davantage....

Cordialement
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
Modifié par Benjamin1803 le 28/04/2011 à 09:09
Merci de votre aide en tout cas. Une petite question me vient tout de même ; est-il possible de faire, comme une requête paramétrée, un formulaire paramétré ? Lorsqu'on tape la référence c'est un formulaire qui s'ouvre et non la requête.
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
28 avril 2011 à 10:12
Benjamin1803,
La réponse est oui.
Dans ce cas, il faut créér un formulaire basé sur la requête.
Il faut aussi modifier le bouton afin qu'il appelle le formulaire au lieu de la requête.
Après saisie du critère de listage, les informations seront affichées dans le formulaire appelé.
Cordialement
0
Benjamin1803 Messages postés 11 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 28 avril 2011
28 avril 2011 à 10:51
C'est bon j'ai réussi ! Un autre problème se pose maintenant et oui encore et toujours. Enfaite j'ai plusieurs tables qui ont toutes en commun une référence. Je voulais afficher toutes ces informations dans un formulaire, j'ai donc créer une requete relationelle en reliant tout les champs "référence" ensemble. Cela marche plutot bien, en effet ça me met ensemble les références avec toutes les informations mais ça me perd les références qui ne sont pas comunes aux tables... Cette requête est ensuite affiché dans le formulaire (avec la référence demandée à l'ouverture) et je voulais savoir si c'était possible de quand même afficher les références, dans le formulaire, qui ne sont pas communes aux tables (en clair qui ne sont pas affichées dans la requete relationnelle) ?
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
28 avril 2011 à 13:56
Benjamin1803,

Un exemple de requête qui permet de lister les [Bulk Dcode] présents dans une table et absents dans une autre. Ce n'est qu'un exemple .... Nota : Je n'ai pas vérifié la cohérence du résultat obtenu. Une aberration a pur m'échapper car j'ignore tout de ces codes ...

SELECT [Boms F14].Product, Count([Boms F25].Product) AS CompteDeProduct
FROM [Boms F14] LEFT JOIN [Boms F25] ON [Boms F14].[Bulk Dcode] = [Boms F25].[Bulk Dcode]
GROUP BY [Boms F14].Product;

A+
0