gon_ak
Messages postés197Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention17 novembre 2006
-
14 juin 2006 à 16:56
erefdatacomputing
Messages postés165Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention24 avril 2018
-
15 juin 2006 à 16:20
Bonjour les amis,
J'ai un petit souci:
Quelles sont les différentes méthodes pour afficher les données extraites de ma base de donnée dans un tableau Type excel? C'est assez urgent SVP
Merci d'avance pour vos réponses
erefdatacomputing
Messages postés165Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention24 avril 2018 14 juin 2006 à 23:32
je sais qu'avec ACCESS tu peux importer une table de ta Base de Données dans une DataGrid, en passant par un ADODC.
1°) tu poses un ADODC et une DataGrid sur une Form
2°) dans les propriétés du ADODC tu cliques sur 'Personnalisé'
'Utiliser une chaîne de connexion' ... 'Créer' ....
'Selectionner ou Taper un nom de base de données' ...
tu indique le chemin et le nom de la Base de données ACCESS
qui t'intéresse .... 'Tester la Connexion' ....
'Test de Connexion réussi' ... 'Ok' ... 'Ok' ... selectionne l'onglet
'RecourdSource' ... 'Type de Commande' .... '2 - adCmdTable'
... 'Nom de procédure stockée ou de Table' ... 'Ok' .
3°) dans les propriétés de la DataGrid tu cliques sur 'DataSource' ...
tu selectionnes 'ADODC1'.
4°) fais un click Droit sur la DataGrid et cherche dans le menu qui
s'ouvre la ligne 'Extraire les Champs'..... cliques dessus, et tu
réponds 'Oui' à la question qui t'est posée.
5°) lance l'application et normalement, toute ta table est présente dans
la DataGrid.
Voilà !!! Je ne sais pas si ça peut t'aider ? Mais c'est bon à savoir !!
Non ??
à plus et bonne prog !!
Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 14 juin 2006 à 17:19
Heu, qu'est ce que tu entends par Méthodes ?
Parce que pour présenter tes données dans Excel, il y a un truc très simple : Tu ouvres ta table ou ta requête et par le magique copier/coller, hop, tu as un tableau Excel hein :)
Ou tu as 2 possibilités :
- A partir d'ACCESS:
Tu crées un formulaire et tu crées une macro. L'exécution de la macro transférant ce que tu veux dans un tableau Excel.
- A partir d'EXCEL :
Menu Données\Données externes\Importer les données et tu suis les menus
Tu peux aussi le faire toi même en code VBA, que ce soit à partir d'ACCESS ou d'EXCEL, plutôt que d'utiliser les différents assistants ... Mais pour avoir une réponse pertinente, il va falloir beaucoup plus de précision dans ta question ^^
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 14 juin 2006 à 17:39
Sans doute oui ...
Si tu veux absolument une méthode avec ADO, précise le ^^
Personnellement, je suis pour le truc tout simple, le moins compliqué, le moins d'effort possible donc :)
Première question : ta base de données, c'est quoi ? ACCESS, SQL Server, autre chose ?
Deuxième question : Comment extrais tu les données ? Requête SQL, ...
Troisième question : Besoin d'extraire ça dans Excel ?
Parce qu'en fonction des réponses, on peut même faire encore plus simple !
Données ACCESS = Formulaire ACCESS qui présente les données sous forme de tableau dans un datagrid. Avec les assistants, 2 mn chrono en main.
Après, si tu détailles un peu plus ce que tu as et ce que tu veux obtenir, ça sera plus facile d'avoir des infos.
Molenn
Vous n’avez pas trouvé la réponse que vous recherchez ?
Molenn:C'est exactement ce que je veux. Ma base de données est du Access et je veux exploiter celle-ci en l'affichant dans une datagrid.Voudrais-tu bien m'expliquer en détail le protocole à suivre STP
Merci beaucoup
=713763 erefdatacomputing : Je pense que tu a répondu à ma question merci beaucoup. Je souhaite savoir est-ce-qu'il est possible de modifier les propriétés de ma Datagrid:lorsque j'affiche ma datagrid elle occupe tout le formulaire. J'aimerais qu'elle représente seulement le tiers de mon formulaire, comment puis-je faire
Merci beaucoup.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 15 juin 2006 à 11:20
Pour répondre à ta question, tu veux juste afficher les données de ta/tes table(s) dans un DataGrid ? C'est juste une question d'affichage ?
Il y a 3 choses à faire pour que ça soit très simple, rapide, et totatlement intuitif (à peine besoin de connaitre ACCESS, et rien à coder :
- Créer les tables bien entendu
- Déclarer les relations entre tes tables dans l'interfacte graphique Relations (si tu as plus d'une table ^^)
- Aller dans le menu Formulaires, et créer un formulaire à l'aide de l'assistant.
1ère page de l'assistant : Choisir les champs que tu veux faire apparaître dans ton datagrid. Suivant
2ème page : Cocher Feuille de données.
Et c'est tout (bon, tu as quelques autres options si tu veux, mais à toi de voir si tu utilises ou non).
Quand une table est bien crée et les relations bien définies, créer un formulaire simple est vraiment facile. Ici, 30 secondes parce que mon PC rame :)
Par contre, à voir parce que, quand tu dis que tu veux exploiter le datagrid, ce n'est pas forcément la façon la plus simple.
erefdatacomputing
Messages postés165Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention24 avril 2018 15 juin 2006 à 16:20
avant de répondre à ta question, voilà un petit lexique que devrait t'aider pour plus tard si tu utilises des Bases de Données
ACCESS avec VB
D'abord il faut, dans les références de ton Projet, cocher la case 'Microsoft DAO 3.6 Object Library'.
Puis tout en haut de ta page de code il faut écrire:
Option Explicit
' variables communes à toutes les commandes
Dim DB As Database
Dim ra As Recordset
puis sous Form_Load:
Private Sub Form_Load()
'déclaration de la BDD et des Tables'
Set DB = OpenDatabase("C:\.....inscrire içi le chemin directeur et le nom de la Base ACCESS .....mdb")
Set ra = DB.OpenRecordset("....inscrire içi le nom de la Table qui se trouve dans la Base ACCESS....", dbOpenDynaset)
...
...
...
End Sub
Voiçi les principales instructions pour naviguer dans la Table, et l'utiliser:
(içi 'ra' est le nom raccourci utilisé pour désigner la Table, donc toutes ces instructions y feront référence)
ra.MoveNext aller à l'enregistrement suivant
ra.MovePrevious aller à l'enregistrement précédent
ra.MoveFirst aller au premier enregistrement
ra.MoveLast aller au dernier enregistrement
ra.AddNew ouvrir la table en mode 'ajout'
ra.Edit ouvrir la table en mode 'modification'
de l'enregistrement sur lequel est le pointeur
ra.Update ordonner à la table de valider l'ajout ou
la modification (voir exemple plus loin).
ra.Delete ordonner à la table de supprimer
l'enregistrement sur lequel est le pointeur
ra.AbsolutePosition donne ou indique la position du pointeur
(de l'enregistrement en cours)
ra.RecordCount donne le nombre d'enregistrements
présents dans la Table
.... et bien d'autres encore .......
Exemples:
1°) ajout d'enregistrement (supposons que dans une Table appelée (Agenda) il y ait 2 Champs par enregistrement, 'Nom' et 'Prénom', et déja 2 personnes d'inscrites (MARTIN Paul et DURAND Louis)
on vient de créer un 3ème enregistrement (une 3ème personne)
2°) on c'est trompé, et on veut modifier le 3ème enregistrement de la Table (içi DUPONT Eric)
on peut faire:
ra.AbsolutePosition=3
ra.Edit
ra!Prénom="Frédéric" (au lieu d'Eric)
ra.Update
on aurait pu écrire aussi
ra.MoveFirst
ra.MoveNext
ra.MoveNext
ra.Edit
ra!Prénom="Frédéric" (au lieu d'Eric)
ra.Update
ou bien encore (à condition qu'il n'y est qu'un 'DUPONT' dans la table, sinon on risque de modifier le mauvais !!! )
ra.MoveFirst
ra.FindFirst "Nom= 'DUPONT'"
ra.Edit
ra!Prénom="Frédéric" (au lieu d'Eric)
ra.Update
pour le reste je te laisse nager un peu (meilleure méthode pour apprendre !!! )
Pour répondre à ta question:
(en supposant que l'on est toujours dans mon exemple avec DUPONT Eric, et que tu veuilles
dans la DataGrid, qu'une seule colonne, celle des 'Nom' , alors, tu reprends mon explication
dont tu as accepté la réponse (au passage Merçi !!!) et tu modifies le 2°) en suivant les instructions çi-dessous )
dans les propriétés du ADODC tu cliques sur 'Personnalisé'
'Utiliser une chaîne de connexion' ... 'Créer' ....
'Selectionner ou Taper un nom de base de données' ...
tu indique le chemin et le nom de la Base de données ACCESS
qui t'intéresse .... 'Tester la Connexion' ....
'Test de Connexion réussi' ... 'Ok' ... 'Ok' ... selectionne l'onglet
'RecourdSource' ... 'Type de Commande' .... '1 - adCmdText'
... 'Texte de la Commande (SQL)' ... tu écris ....
SELECT Nom FROM Agenda
puis cliques sur 'Ok'
Tu finis en faisant les 3°), 4°), et 5°) sans rien changer.
et dans ta DataGrid, tu n'auras que la colonne 'Nom'
Pour avoir plusieurs Champs (donc Colonnes) dans la DataGrid, tu les rajoutes dans l'instruction SELECT,
séparés par des virgules Ex: SELECT Nom,Prénom FROM Agenda
Regarde l'aide sur l'instruction SELECT, car tu peux aussi demander le tri, et/ou des conditions de selection,
et ce aussi bien via un ADODC qu'une déclaration 'manuelle' comme je te lai montré au début de cette page
(Set ra = DB.OpenRecordset("....inscrire içi le nom de la Table qui se trouve dans la Base ACCESS....", dbOpenDynaset)
Ex:
Set ra= DB.OpenRecordset( _
"SELECT Nom " & _
"FROM Agenda order by Nom ", _
dbOpenDynaset)
ceci ouvre ra en tant que Table appelée Agenda , en prenant uniquement le Champ 'Nom', et triée de manière alphabétique par Nom.
Voilà !!! à plus !!!
Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!