Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1800 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [VBA + Access] Récupérer tous les champs de mes tables Access...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA + Access] Récupérer tous les champs de mes tables Access...

n°427463
Yoyo@
Posté le 14-06-2003 à 11:26:46  profilanswer
 

Salut!
 
Je voudrais savoir s'il existe une méthode efficace pour récupérer les noms des champs de mes tables Access...
Pour le moment, la seule que je vois est celle ci :
 

Code :
  1. For Each tdfLoop In myDb.TableDefs
  2.     ...
  3.   Next tdfLoop


 
Le problème, c'est que c'est HYPER lent, environ 5 secs par table dans une toute petite base de données (2 petites tables), donc je me demandais si il n'existait pas une autre manière...


Message édité par Yoyo@ le 14-06-2003 à 22:18:03
mood
Publicité
Posté le 14-06-2003 à 11:26:46  profilanswer
 

n°427744
Yoyo@
Posté le 14-06-2003 à 22:18:26  profilanswer
 

:bounce:

n°427822
MagicBuzz
Posté le 15-06-2003 à 09:33:52  profilanswer
 

5 secondes :ouch:
 
Bah essaie ça :
 

sql = "select * from la_table where 1 = 0"
rs.open sql
for each f in rs.fields
   msgbox(f.name)
next

n°428646
Yoyo@
Posté le 16-06-2003 à 00:28:14  profilanswer
 

MagicBuzz a écrit :

5 secondes :ouch:
 
Bah essaie ça :
 

sql = "select * from la_table where 1 = 0"
rs.open sql
for each f in rs.fields
   msgbox(f.name)
next




 
Pas mal comme idée (je n'ai pas encore pu essayer)! Par conytre, je suppose que ca n'existe que pour des Recordset ADO? :(

n°428716
Yoyo@
Posté le 16-06-2003 à 09:12:33  profilanswer
 

Bon, bah finalement, j'ai réessayé avec mes tableDefs, et c'est rapide! Je ne comprends pas pourquoi c'était si lent la premiere fois, mais vraiment super lent !
 
Anyway, ca marche now, donc c'est cool ! Merci  :jap:

n°429094
MagicBuzz
Posté le 16-06-2003 à 13:04:24  profilanswer
 

Ben mon exemple s'appuyait sur ADO justement ;)
 
L'avangtage de mon code, c'est qu'il marche quelquesoit la version d'ADO, y compris si tabledefs n'existe pas (ce qui est le cas pour la version du drivers d'Oracle par exemple)

n°429212
Yoyo@
Posté le 16-06-2003 à 14:06:25  profilanswer
 

MagicBuzz a écrit :

Ben mon exemple s'appuyait sur ADO justement ;)
 
L'avangtage de mon code, c'est qu'il marche quelquesoit la version d'ADO, y compris si tabledefs n'existe pas (ce qui est le cas pour la version du drivers d'Oracle par exemple)


 
Bah en fait, je connais tres tres peu ADO, car j'ai commencé avec Access97 (DAO en foce lol) et y avait pas vraiment de ADO à l'poque, ou pas aussi bien développé qu'aujourd'hui !
 
L'appli que je fais en ce moment doit pouvoir tourner sous 97, mais plus tard, je sais que je migrerai avec un "tout XP" et alors, là, je pense que j"utiliserai de plus en plus ADO... J'ai juste peur qu'il y ait des choses que je ne puisse pas faire avec ! Il faut que j'étudie la question plus en profondeur, c'est certain !
 
Merci,
 
yoyo*

n°429837
MagicBuzz
Posté le 16-06-2003 à 20:59:53  profilanswer
 

Euh... ADO (Active Data Object) existe depuis au moins Windows 3.1 et Access 2 ;)
 
MSJET ou ODBC en font notamment partie ;)
 
Pour info, ADO est un objet qui permet de faire abstraction de la connection à la BDD.
 
Il offre d'un côté une série d'objets utilisables dans le code, et de l'autre une série d'interfaces pour implanter des drivers, qu'ils soit natifs (assez rare), OLE DB, ODBC, MSJET ou encore XML.
 
ADO est distribuer dans un package courrament appelé MDAC (Microsoft Data Access Components) qui contient à la fois les objets ADO et un certain nombre de drivers OLE, MSJET et ODBC.


Message édité par MagicBuzz le 16-06-2003 à 21:03:00
n°430170
Yoyo@
Posté le 17-06-2003 à 10:33:15  profilanswer
 

Merci pour les précisions !
 
Et DAO, tu pourrais en dire quoi dessus? La différence est qu'il est "obligé" de courir avec les tables présentes dans la base Access? (onglet tables?)
 
pour ma part, je développe une appli assez grosse, avec pas mal de tables linkées ! Et je fais tout ce qui concerne les tables à l'aide de Recordset DAO, à l'aide de docmd.runsql, à l'aide de dlookup principalement... JE passe par pas mal de tables temporaires locales crées à la volée...
 
Je me demande si tout celà sera encore possible en utilisant du ADO?
 
De toute facon, vu que je compte migrer le tout sous SQL Server, je devrai faire des choix, mais ce n'est pas pour maintenant (ca me fait un peu peur lol), et je reposterai plus tard à propos de ca, mais bon, ca ne m'empeche pas de prévoir pour apres ! (en fait, j'ai déja essayé avec SQL Server, en utilisant odbc et linkant des tables directement sur SQL Server, ca marchait (avec quelques modifs sur mon code DAO, par exemple, en incluant des trucs du genre "dbSeeChanges" dans mes recordset, etc...) mais c'était hyper lent :(  
 
Yoyo*

n°431594
Yoyo@
Posté le 18-06-2003 à 09:58:16  profilanswer
 

:hello:

mood
Publicité
Posté le 18-06-2003 à 09:58:16  profilanswer
 

n°431616
MagicBuzz
Posté le 18-06-2003 à 10:11:33  profilanswer
 

DAO ?
 
Bah, c'est Data Access Object
 
Je sais pas trop quelle est la différence avec ADO.
 
 
A priori, oui, ADO supporte les recordset dynamiques, donc ça doit marcher de la même façon (il me semble que DAO est intégré à ADO, qui n'est que le nom de l'objet lui-même, mais je ne suis pas sûr de moi)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [VBA + Access] Récupérer tous les champs de mes tables Access...

 

Sujets relatifs
problemes vba access (listes deroulantes)[VBA] Lire à partir d'un fichier texte
IPCop : comment récupérer l'uptime pour l'afficher dans mIRC par ex ?[access]petit souci tout bete de requete sql...
[vb] comment récupérer le nom d une feuille parente[VBA] - Incompatibilité Excel 2000 --> Excel Xp.
[VBA Excel] Que renvoit open qd l'ouverture du fichier échoue?création d'une aide dans access 97
pb avec du sql sous access[Access] Où trouver un bon forum?
Plus de sujets relatifs à : [VBA + Access] Récupérer tous les champs de mes tables Access...


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR