je souhaite lister les tables d'une base Access 2000
et compter les enregistrements.
Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base.
Comment peut-on isoler les tables ?
Merci de vos idées et conseils.
Le code :
Set cat.ActiveConnection = Connect
For Each X In cat.Tables
If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then
SQL = "Select * from [" & X.Name & "]"
Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
If Not Rs.BOF And Not Rs.EOF Then
Rs.MoveLast
NombreEnregistrement = Rs.RecordCount
Else
NombreEnregistrement = 0
End If
Rs.Close
Set mItem = ListeDesTables.ListItems.Add(, , X.Name)
mItem.SubItems(1) = NombreEnregistrement
End If
Next
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sebho
salut
pour les tables je n'ai pas regardé, mais pour compter les enregistrements, à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" a écrit dans le message de news:3f034a6c$0$4596$
Bonjour à tous,
je souhaite lister les tables d'une base Access 2000 et compter les enregistrements. Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. Comment peut-on isoler les tables ?
Merci de vos idées et conseils.
Le code :
Set cat.ActiveConnection = Connect
For Each X In cat.Tables If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then SQL = "Select * from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly If Not Rs.BOF And Not Rs.EOF Then Rs.MoveLast NombreEnregistrement = Rs.RecordCount Else NombreEnregistrement = 0 End If Rs.Close
Set mItem = ListeDesTables.ListItems.Add(, , X.Name) mItem.SubItems(1) = NombreEnregistrement End If Next
Daniel AUBRY
www.daniel-aubry.com
salut
pour les tables je n'ai pas regardé, mais pour compter les enregistrements,
à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]"
Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" <mail@daniel-aubry.com> a écrit dans le message de
news:3f034a6c$0$4596$626a54ce@news.free.fr...
Bonjour à tous,
je souhaite lister les tables d'une base Access 2000
et compter les enregistrements.
Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base.
Comment peut-on isoler les tables ?
Merci de vos idées et conseils.
Le code :
Set cat.ActiveConnection = Connect
For Each X In cat.Tables
If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then
SQL = "Select * from [" & X.Name & "]"
Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
If Not Rs.BOF And Not Rs.EOF Then
Rs.MoveLast
NombreEnregistrement = Rs.RecordCount
Else
NombreEnregistrement = 0
End If
Rs.Close
Set mItem = ListeDesTables.ListItems.Add(, , X.Name)
mItem.SubItems(1) = NombreEnregistrement
End If
Next
pour les tables je n'ai pas regardé, mais pour compter les enregistrements, à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" a écrit dans le message de news:3f034a6c$0$4596$
Bonjour à tous,
je souhaite lister les tables d'une base Access 2000 et compter les enregistrements. Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. Comment peut-on isoler les tables ?
Merci de vos idées et conseils.
Le code :
Set cat.ActiveConnection = Connect
For Each X In cat.Tables If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then SQL = "Select * from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly If Not Rs.BOF And Not Rs.EOF Then Rs.MoveLast NombreEnregistrement = Rs.RecordCount Else NombreEnregistrement = 0 End If Rs.Close
Set mItem = ListeDesTables.ListItems.Add(, , X.Name) mItem.SubItems(1) = NombreEnregistrement End If Next
Daniel AUBRY
www.daniel-aubry.com
Fly
Salut,
pour ce qui concerne les tables : en utilisant DAO (ADO je ne maitrise pas bien)
set bds = DAO.opendatabase("ma_base_de_donnée") msgbox DAO.tabledefs.count
C'est quand tout le monde fait des efforts que les choses s'arrangent : http://users.skynet.be/mpfa/charte.htm
Sebho a écrit dans le message :
salut
pour les tables je n'ai pas regardé, mais pour compter les
enregistrements,
à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" a écrit dans le message de news:3f034a6c$0$4596$ > Bonjour à tous, > > je souhaite lister les tables d'une base Access 2000 > et compter les enregistrements. > Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. > Comment peut-on isoler les tables ? > > Merci de vos idées et conseils. > > Le code : > > Set cat.ActiveConnection = Connect > > For Each X In cat.Tables > If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then > SQL = "Select * from [" & X.Name & "]" > Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly > If Not Rs.BOF And Not Rs.EOF Then > Rs.MoveLast > NombreEnregistrement = Rs.RecordCount > Else > NombreEnregistrement = 0 > End If > Rs.Close > > Set mItem = ListeDesTables.ListItems.Add(, , X.Name) > mItem.SubItems(1) = NombreEnregistrement > End If > Next > > > > > Daniel AUBRY > > > www.daniel-aubry.com > >
Salut,
pour ce qui concerne les tables :
en utilisant DAO (ADO je ne maitrise pas bien)
set bds = DAO.opendatabase("ma_base_de_donnée")
msgbox DAO.tabledefs.count
C'est quand tout le monde fait des efforts que les choses s'arrangent :
http://users.skynet.be/mpfa/charte.htm
Sebho <sebho@ifrance.com> a écrit dans le message :
O7ZdBWTQDHA.1040@TK2MSFTNGP12.phx.gbl...
salut
pour les tables je n'ai pas regardé, mais pour compter les
enregistrements,
à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]"
Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" <mail@daniel-aubry.com> a écrit dans le message de
news:3f034a6c$0$4596$626a54ce@news.free.fr...
> Bonjour à tous,
>
> je souhaite lister les tables d'une base Access 2000
> et compter les enregistrements.
> Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base.
> Comment peut-on isoler les tables ?
>
> Merci de vos idées et conseils.
>
> Le code :
>
> Set cat.ActiveConnection = Connect
>
> For Each X In cat.Tables
> If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then
> SQL = "Select * from [" & X.Name & "]"
> Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
> If Not Rs.BOF And Not Rs.EOF Then
> Rs.MoveLast
> NombreEnregistrement = Rs.RecordCount
> Else
> NombreEnregistrement = 0
> End If
> Rs.Close
>
> Set mItem = ListeDesTables.ListItems.Add(, , X.Name)
> mItem.SubItems(1) = NombreEnregistrement
> End If
> Next
>
>
>
>
> Daniel AUBRY
>
> mail@daniel-aubry.com
> www.daniel-aubry.com
>
>
C'est quand tout le monde fait des efforts que les choses s'arrangent : http://users.skynet.be/mpfa/charte.htm
Sebho a écrit dans le message :
salut
pour les tables je n'ai pas regardé, mais pour compter les
enregistrements,
à mon avis il sera bcp + performant de faire
SQL = "Select COUNT(*) as Nb from [" & X.Name & "]" Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly NombreEnregistrement =Rs("Nb")
sebho
"Daniel AUBRY" a écrit dans le message de news:3f034a6c$0$4596$ > Bonjour à tous, > > je souhaite lister les tables d'une base Access 2000 > et compter les enregistrements. > Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. > Comment peut-on isoler les tables ? > > Merci de vos idées et conseils. > > Le code : > > Set cat.ActiveConnection = Connect > > For Each X In cat.Tables > If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then > SQL = "Select * from [" & X.Name & "]" > Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly > If Not Rs.BOF And Not Rs.EOF Then > Rs.MoveLast > NombreEnregistrement = Rs.RecordCount > Else > NombreEnregistrement = 0 > End If > Rs.Close > > Set mItem = ListeDesTables.ListItems.Add(, , X.Name) > mItem.SubItems(1) = NombreEnregistrement > End If > Next > > > > > Daniel AUBRY > > > www.daniel-aubry.com > >
Fly
Salut,
Je crois que j'ai sans doute du mal m'exprimer: le fait d'utiliser les collection tabledefs, querydefs et forms permet à lui seul de faire de faire la différence entre table, requête, et formulaires.
Ainsi, comme chacune de ces collections comporte la propriété count, tu peux obtenir le nombre de chaque type d'élément.
C'est quand tout le monde fait des efforts que les choses s'arrangent.
Daniel AUBRY a écrit dans le message : 3f0483c9$0$13191$
Ok les gars, en ce qui concerne le SQl ça marche. Plus perfo ? Je ne vois pas de différence. Par contre j'ai tojours mon blème.
Quand on liste des éléments d'une base de données, comment peut on faire la différence entre table, requete et formulaire ?
Si d'autre ont une petite idée.............
Merci d'avance
Daniel
www.daniel-aubry.com "Daniel AUBRY" a écrit dans le message de news: 3f034a6c$0$4596$ > Bonjour à tous, > > je souhaite lister les tables d'une base Access 2000 > et compter les enregistrements. > Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. > Comment peut-on isoler les tables ? > > Merci de vos idées et conseils. > > Le code : > > Set cat.ActiveConnection = Connect > > For Each X In cat.Tables > If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then > SQL = "Select * from [" & X.Name & "]" > Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly > If Not Rs.BOF And Not Rs.EOF Then > Rs.MoveLast > NombreEnregistrement = Rs.RecordCount > Else > NombreEnregistrement = 0 > End If > Rs.Close > > Set mItem = ListeDesTables.ListItems.Add(, , X.Name) > mItem.SubItems(1) = NombreEnregistrement > End If > Next > > > > > Daniel AUBRY > > > www.daniel-aubry.com > >
Salut,
Je crois que j'ai sans doute du mal m'exprimer:
le fait d'utiliser les collection tabledefs, querydefs et forms permet à lui
seul de faire de faire la différence entre table, requête, et formulaires.
Ainsi, comme chacune de ces collections comporte la propriété count, tu peux
obtenir le nombre de chaque type d'élément.
C'est quand tout le monde fait des efforts que les choses s'arrangent.
Daniel AUBRY <mail@daniel-aubry.com> a écrit dans le message :
3f0483c9$0$13191$626a54ce@news.free.fr...
Ok les gars,
en ce qui concerne le SQl ça marche. Plus perfo ? Je ne vois pas de
différence.
Par contre j'ai tojours mon blème.
Quand on liste des éléments d'une base de données,
comment peut on faire la différence entre table, requete et formulaire ?
Si d'autre ont une petite idée.............
Merci d'avance
Daniel
mail@daniel-aubry.com
www.daniel-aubry.com
"Daniel AUBRY" <mail@daniel-aubry.com> a écrit dans le message de news:
3f034a6c$0$4596$626a54ce@news.free.fr...
> Bonjour à tous,
>
> je souhaite lister les tables d'une base Access 2000
> et compter les enregistrements.
> Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base.
> Comment peut-on isoler les tables ?
>
> Merci de vos idées et conseils.
>
> Le code :
>
> Set cat.ActiveConnection = Connect
>
> For Each X In cat.Tables
> If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then
> SQL = "Select * from [" & X.Name & "]"
> Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly
> If Not Rs.BOF And Not Rs.EOF Then
> Rs.MoveLast
> NombreEnregistrement = Rs.RecordCount
> Else
> NombreEnregistrement = 0
> End If
> Rs.Close
>
> Set mItem = ListeDesTables.ListItems.Add(, , X.Name)
> mItem.SubItems(1) = NombreEnregistrement
> End If
> Next
>
>
>
>
> Daniel AUBRY
>
> mail@daniel-aubry.com
> www.daniel-aubry.com
>
>
Je crois que j'ai sans doute du mal m'exprimer: le fait d'utiliser les collection tabledefs, querydefs et forms permet à lui seul de faire de faire la différence entre table, requête, et formulaires.
Ainsi, comme chacune de ces collections comporte la propriété count, tu peux obtenir le nombre de chaque type d'élément.
C'est quand tout le monde fait des efforts que les choses s'arrangent.
Daniel AUBRY a écrit dans le message : 3f0483c9$0$13191$
Ok les gars, en ce qui concerne le SQl ça marche. Plus perfo ? Je ne vois pas de différence. Par contre j'ai tojours mon blème.
Quand on liste des éléments d'une base de données, comment peut on faire la différence entre table, requete et formulaire ?
Si d'autre ont une petite idée.............
Merci d'avance
Daniel
www.daniel-aubry.com "Daniel AUBRY" a écrit dans le message de news: 3f034a6c$0$4596$ > Bonjour à tous, > > je souhaite lister les tables d'une base Access 2000 > et compter les enregistrements. > Ce que j'ai fait marche bien SAUF si il y a des requetes dans la base. > Comment peut-on isoler les tables ? > > Merci de vos idées et conseils. > > Le code : > > Set cat.ActiveConnection = Connect > > For Each X In cat.Tables > If Mid(X.Type, 1, 3) <> "SYS" And Mid(X.Type, 1, 3) <> "ACC" Then > SQL = "Select * from [" & X.Name & "]" > Rs.Open SQL, Connect, adOpenKeyset, adLockReadOnly > If Not Rs.BOF And Not Rs.EOF Then > Rs.MoveLast > NombreEnregistrement = Rs.RecordCount > Else > NombreEnregistrement = 0 > End If > Rs.Close > > Set mItem = ListeDesTables.ListItems.Add(, , X.Name) > mItem.SubItems(1) = NombreEnregistrement > End If > Next > > > > > Daniel AUBRY > > > www.daniel-aubry.com > >