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

  FORUM HardWare.fr
  Programmation

  [VB] pb comptage dans base de donnée access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] pb comptage dans base de donnée access

n°120005
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 21:22:11  profilanswer
 

Salut a tous  
je suis en train de faire une sorte de carnet d'adresse pour un de mes programme et j'utilise un fichier base de donnée access
et il me faudrait savoir combien j'ai d'enregistrement dans cette base il fo utiliser quelle fonction  
voici l'initialisation de ma db dans vb
 
 
Dim base As Database
Dim contacts As Recordset
Dim db As String
 
db = App.Path + "\contacts.mdb"
Set base = DBEngine.OpenDatabase(db)
Set contacts = base.OpenRecordset("contacts", dbOpenDynaset)
 
Dim nb_contacts As Integer
nb_contacts = contacts.??????  
contacts.MoveFirst
 
Dim i As Integer
For i = 1 To nb_contacts
.
.
.
.
.

 

[jfdsdjhfuetppo]--Message édité par MoRp][eUs--[/jfdsdjhfuetppo]


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
mood
Publicité
Posté le 01-04-2002 à 21:22:11  profilanswer
 

n°120011
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 21:49:18  profilanswer
 

UP  
 
 :hello:


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120013
Rob Roy
Posté le 01-04-2002 à 21:56:24  profilanswer
 

nb_contacts=contact.RecordCount

n°120014
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 21:57:27  profilanswer
 

ca marche pas avec ca il me retourne tjs 1


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120016
Rob Roy
Posté le 01-04-2002 à 22:03:35  profilanswer
 

Yes tu a raison en fait c pour savoir si tu as ou nom des enregistrement
execute une requete du type  
Select count(*) From contact et defoule la dessus
sinon si tu aimes pas les requetes tu te tape un
While Not (contact.EOF)
et tu fais peter un compteur
je crois pas qu'il ya ais quelque chose pour savoir le nombre d'enregistrement d'une vue

 

[jfdsdjhfuetppo]--Message édité par Rob Roy--[/jfdsdjhfuetppo]

n°120017
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 22:05:33  profilanswer
 

merci je v tester tou ca


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120019
Rob Roy
Posté le 01-04-2002 à 22:09:18  profilanswer
 

pour ton trip sur l'explorateur de fichier
tu as la CommonDialog un objet que tu fous sous ta frame  
et que tu utilise
ca te donne un explorateur de fichier classe comme tout ceux que tes logiciels ont

n°120020
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 22:11:40  profilanswer
 

pour l'explorateur c'est bon c pas pour lister des fichier  
c pour recevoir les info que je sort de ma base de donnée et ca marche kand je met le compteur manuellement a plus que 1


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120022
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 22:20:14  profilanswer
 

Rob Roy a écrit a écrit :

Yes tu a raison en fait c pour savoir si tu as ou nom des enregistrement
execute une requete du type  
Select count(*) From contact et defoule la dessus
sinon si tu aimes pas les requetes tu te tape un
While Not (contact.EOF)
et tu fais peter un compteur
je crois pas qu'il ya ais quelque chose pour savoir le nombre d'enregistrement d'une vue  
 
 




 
hehe tu m'a donnée une bonne idé avec ton eof qui marche en plus
 
Do While Not contacts.EOF
...
Loop


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120023
Rob Roy
Posté le 01-04-2002 à 22:48:25  profilanswer
 

ouais c'est le principe des vues en fait
tu peut quasiment tout faire en parcourant les vues si le SQL te gonfle.

mood
Publicité
Posté le 01-04-2002 à 22:48:25  profilanswer
 

n°120038
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 01-04-2002 à 23:41:47  profilanswer
 

c'est pas que le sql me gonfle mais en vb c moins clair k'en php le sql


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120048
HappyHarry
Posté le 02-04-2002 à 00:19:59  profilanswer
 

en koi c moins clair ?

n°120050
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 00:21:58  profilanswer
 

c k'en php je connais les commande en vb je ne fait pas de db normalement alors je vois pas comment les passer mais si qqn m'explique je préf presque utiliser des requete sql car avec ca je peu traiter les donnée comme j'ai envi


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120052
HappyHarry
Posté le 02-04-2002 à 00:24:23  profilanswer
 

ben tu crées une connection
dim cnn as New ADODB.Connection
cnn.open tachainedeconnexionfautmaterl'aidejesaispluspouraccess
 
pour les request select :
dim rs as new ADODB.RecordSet
rs.open requeteSQL,cnn
 
pour les autres
 
cnn.execute requeteSQL

n°120053
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 00:25:38  profilanswer
 

merci je v aller faire un tour ds mon msdn


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120054
HappyHarry
Posté le 02-04-2002 à 00:33:00  profilanswer
 

vala ... je suis pas du tout partisan de vb, mais l'acces aux données est pas trop compliqué

n°120055
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 00:36:06  profilanswer
 

bin moi non plus je suis pas partisan de vb mais la c pour un tout petit prog pour moi et je peu pas le faire en php car une page oueb ca irait pas bien
 
de plus en prog normalement moi je suis que sur le net autrement je laisse ca au pro car mon domaine c plutot le rezo


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120080
tegu
Posté le 02-04-2002 à 09:17:08  profilanswer
 

Si j'ai bonne mémoire, le recordset.RecordCount n'est initialisé avec le nombre d'enregistrements qu' après avoir fait un recordset.movelast
 
A essayer
 
a+

n°120081
Turk182
Strike Again !!!
Posté le 02-04-2002 à 09:20:35  profilanswer
 

MoRp][eUs a écrit a écrit :

Salut a tous  
je suis en train de faire une sorte de carnet d'adresse pour un de mes programme et j'utilise un fichier base de donnée access
et il me faudrait savoir combien j'ai d'enregistrement dans cette base il fo utiliser quelle fonction  
voici l'initialisation de ma db dans vb
 
 
Dim base As Database
Dim contacts As Recordset
Dim db As String
 
db = App.Path + "\contacts.mdb"
Set base = DBEngine.OpenDatabase(db)
Set contacts = base.OpenRecordset("contacts", dbOpenDynaset)
 
Dim nb_contacts As Integer
nb_contacts = contacts.??????  
contacts.MoveFirst
 
Dim i As Integer
For i = 1 To nb_contacts
.
.
.
.
.  
 
 




 
Je crois qu'avec CONTACT.RECORDCOUNT...ca devrait
 
ex :
 
Total = "Il y a " & DataJeux.Recordset.RecordCount & " jeux dans la base"
mess = MsgBox(Total, vbInformation, "Total des jeux" )


---------------
Mes mémoires de Retrogamer - Le Retroblog de Turk182! en livres - Suivez le blog sur Facebook
n°120117
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 10:50:49  profilanswer
 

pour info je vous met la définition de l'aide au sujet recordcount donc je voit tres clairement pourquoi il me retourne tjs 1 avec mon code
 
Renvoie le nombre d'enregistrements auxquels vous avez eu accès dans un objet Recordset ou le nombre total d'enregistrements dans un objet Recordset de type Table ou dans un objet TableDef.
 
par contre si qqn a un exemple concret pour passer une requete sql genre celle-ci sur ma base je suis preneur
 
"select * from contacts where ...."

 

[jfdsdjhfuetppo]--Message édité par MoRp][eUs--[/jfdsdjhfuetppo]


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120133
Turk182
Strike Again !!!
Posté le 02-04-2002 à 11:13:00  profilanswer
 

MoRp][eUs a écrit a écrit :

pour info je vous met la définition de l'aide au sujet recordcount donc je voit tres clairement pourquoi il me retourne tjs 1 avec mon code
 
Renvoie le nombre d'enregistrements auxquels vous avez eu accès dans un objet Recordset ou le nombre total d'enregistrements dans un objet Recordset de type Table ou dans un objet TableDef.
 
par contre si qqn a un exemple concret pour passer une requete sql genre celle-ci sur ma base je suis preneur
 
"select * from contacts where ...."  
 
 




 
Avant le RecordCount fait un MoveFirst suivie d'un MoveLast pour remplir le recordSet...apres ca marche !!


---------------
Mes mémoires de Retrogamer - Le Retroblog de Turk182! en livres - Suivez le blog sur Facebook
n°120137
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 11:27:13  profilanswer
 

turk182 a écrit a écrit :

 
 
Avant le RecordCount fait un MoveFirst suivie d'un MoveLast pour remplir le recordSet...apres ca marche !!  




 
merci pour ton conseil mais avec le eof dans un while ca marche et c surement plus rapide


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120142
Turk182
Strike Again !!!
Posté le 02-04-2002 à 11:37:09  profilanswer
 

MoRp][eUs a écrit a écrit :

 
 
merci pour ton conseil mais avec le eof dans un while ca marche et c surement plus rapide  




 
Justement je ne pense pas que ce soit plus rapide car a chaque fois il fait une verificaction de fin de base....alors que les commande movefirst movelast sont directe... voila ma formule :
 
DataJeux.Recordset.MoveLast
 
     Total = "Il y a " & DataJeux.Recordset.RecordCount & " jeux dans la base"
 
mess = MsgBox(Total, vbInformation, "Total des jeux" )
 
DataJeux.Recordset.MoveFirst
 
que kelkun me corrige si je me trompe..


---------------
Mes mémoires de Retrogamer - Le Retroblog de Turk182! en livres - Suivez le blog sur Facebook
n°120146
HappyHarry
Posté le 02-04-2002 à 11:49:21  profilanswer
 

MoRp][eUs a écrit a écrit :

pour info je vous met la définition de l'aide au sujet recordcount donc je voit tres clairement pourquoi il me retourne tjs 1 avec mon code
 
Renvoie le nombre d'enregistrements auxquels vous avez eu accès dans un objet Recordset ou le nombre total d'enregistrements dans un objet Recordset de type Table ou dans un objet TableDef.
 
par contre si qqn a un exemple concret pour passer une requete sql genre celle-ci sur ma base je suis preneur
 
"select * from contacts where ...."  
 
 




 
comme je te l'ai deja dit :
 
dim cnn as new ADODB.Connection
dim rs as new ADODB.RecordSet
ouvrir la connexion avec la bonne chaine de connexion
rs.open "select * from contacts where...",cnn[,3,3,1]

n°120153
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 12:09:19  profilanswer
 

turk182 a écrit a écrit :

 
 
Justement je ne pense pas que ce soit plus rapide car a chaque fois il fait une verificaction de fin de base....alors que les commande movefirst movelast sont directe... voila ma formule :
 
DataJeux.Recordset.MoveLast
 
     Total = "Il y a " & DataJeux.Recordset.RecordCount & " jeux dans la base"
 
mess = MsgBox(Total, vbInformation, "Total des jeux" )
 
DataJeux.Recordset.MoveFirst
 
que kelkun me corrige si je me trompe..  




 
coté rapidité comme je doit de toute facon parcourir toute la bd afin d'afficher les entré ds un listview autant parcourir une fois et le comptage l'oublier bon c mon avis mais je v voir du coté sql car je connais pas mal le lanquage sql


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120158
Bonhomme
Posté le 02-04-2002 à 12:19:35  profilanswer
 

MoRp][eUs a écrit a écrit :

 
 
coté rapidité comme je doit de toute facon parcourir toute la bd afin d'afficher les entré ds un listview autant parcourir une fois et le comptage l'oublier bon c mon avis mais je v voir du coté sql car je connais pas mal le lanquage sql  




Moi non plus le recordCount il marche pô mais peut être avec le movefirst, movelast ça pourrait le faire
Mais bon le count(*) fait ça très bien et puis comme ça tu fais du vrai SQL...
 
Bonhomme

n°120159
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 12:23:26  profilanswer
 

Bonhomme a écrit a écrit :

 
Moi non plus le recordCount il marche pô mais peut être avec le movefirst, movelast ça pourrait le faire
Mais bon le count(*) fait ça très bien et puis comme ça tu fais du vrai SQL...
 
Bonhomme  




 
ta quoi comme code pour faire ton count(*) car je suis en train de chercher mais aujourd hui g pas trop le temps donc si tu pouvais m'aider ca m'avancerait
merci


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120162
Rob Roy
Posté le 02-04-2002 à 12:38:09  profilanswer
 

Select count(*) FROM TATABLE                                 FIN

n°120186
Pentiore
Posté le 02-04-2002 à 13:22:50  profilanswer
 

Salut,
 
Avant de compter tes enregs, tu dois aller au dernier enregistrement. Il faut aussi vérifier que tu as des enreg :
 

Code :
  1. dim rs as recordset
  2. dim cpt as integer
  3. set rs = db.openrecordset ....
  4. if not rs.EOF then
  5.     rs.movelast
  6.     cpt = rs.recordcount
  7. else
  8.     cpt = 0
  9. end if


 
et voilà !
La deuxième méthode est de compter directement dans la requête (expliqué dans les posts précédents), c'est à toi de voir.
 
@+
- Pentiore -


---------------
Une Porsche sinon rien.
n°120254
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 02-04-2002 à 15:03:31  profilanswer
 

merci a tous
j'ai troubé un bopn script un viewer de db sur le net je pense ke je v trouver qq id pour amélioré l'acces a ma base de donnée car cette dernière pourra devenir bien grande à la longe donc il faudra que l'acces soit le plus rapide possible


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120475
cerdoc
Comment l'AK47 à changé ma vie
Posté le 02-04-2002 à 19:34:51  profilanswer
 

RecordCount ne marche que si le recordset est de type [b]dbOpenTable[/B] (le recordset contient tous les enregistrements de la table)  sinon pour les autres types il te renvoie qu'un seul enregistrement à la fois.

n°120603
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 03-04-2002 à 00:08:23  profilanswer
 

je l'ai testé en dbopentable mais il me semble quîl me retournais aussi 1
bon c pas le pb principal pour le moment de mon prog j'aimerais trier par ordre alphabétique par nom et prénom mais ca marche pas dans mon listview je sens ke je v passer tout par le sql car au moins ca marche en tout k kand je fait du php


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
n°120694
Bonhomme
Posté le 03-04-2002 à 10:50:39  profilanswer
 

MoRp][eUs a écrit a écrit :

je l'ai testé en dbopentable mais il me semble quîl me retournais aussi 1
bon c pas le pb principal pour le moment de mon prog j'aimerais trier par ordre alphabétique par nom et prénom mais ca marche pas dans mon listview je sens ke je v passer tout par le sql car au moins ca marche en tout k kand je fait du php  




Pour le tri c'est pas dur
A la fin de la requête dans laquelle tu remontes les infos tu rajoutes un truc du genre :"ORDER BY nom,prenom
 
Et hop voilà c'est classé!!

n°120697
MoRp][eUs
<img src='morp][eus.gif'>
Posté le 03-04-2002 à 10:53:34  profilanswer
 

Bonhomme a écrit a écrit :

 
Pour le tri c'est pas dur
A la fin de la requête dans laquelle tu remontes les infos tu rajoutes un truc du genre :"ORDER BY nom,prenom
 
Et hop voilà c'est classé!!  




 
ouai a condition d'etre en sql pour le moment je suis tjs basé sur le système de db du début du post
 
le sql je le connais c pas un pb mon seul pb c'est que j'ai aps encore u le temps d'impémenter les requete sql uniquement


---------------
L'Internet serait une toile comme les autres si elle n'avait ses millions d'araignées ...
mood
Publicité
Posté le   profilanswer
 


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

  [VB] pb comptage dans base de donnée access

 

Sujets relatifs
[Delphi] base de donnéesphp ->ftp de base [SVP]
mettre à jour une table toutes les 24heures sous ASP/AccessSQL Projet de base de données bibliotheque
Accélérer une base AccessPB sous ACCESS Avec last
creation d'un .reg pour modifer la base[access et vba] comment mettre une requete dans le code et créer =>
[SQL] base de données vidée chez Free.fr ! 
Plus de sujets relatifs à : [VB] pb comptage dans base de donnée access


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)