begin process at 2012 02 14 10:33:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

ADO & DAO

 > 

Access et access...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Access et access...

jeudi 1 juin 2006 à 00:34:54 | Access et access...

Sator2

Membre Club
Après des essais infructueux, mettez-moi sur la voie s'il vous plait...
j'ai deux bases de données access....
dans l'une j'ai 200 enregistrements
dans la seconde j'ai 2 000 000 d'enregistrement
il se trouve que je cherche dans la deusième base les 200 enregistrements de la première...
donc ce que j'ai fait jusqu'a maintenant peut se résumer ainsi: je prends mes 200 enregistrements que je mets dans un tableau puis je fais une boucle répétée 200 fois dans la seconde avec une recherche conventionnel... mais l'ordi n'aime pas le traitement...
si quelqu'un à une idée... le fait est que les deux chaînes ne sont identique ( ou pas) que sur les premier 50 caractères.
donc je me répète mais si quelqu'un à une idée elle est la bien venue....
jeudi 1 juin 2006 à 01:19:12 | Re : Access et access...

PCPT

Administrateur CodeS-SourceS
salut,
désolé mais faut pas trop rêver : une recherche sur 2 millions d'enregistrements, je me doute que ton PC n'aime pas....
comparer les tableaux, ouai.
éventuellement intercaler des doevents pendant la recherche (pas à chaque "next", disons une fois tous les 5000 enr).
ou pourquoi pas (mais je ne garanti rien au niveau de la rapidité pour autant) faire simplement 200 requêtes?
à tester...

++
PCPT  [AFCK]
jeudi 1 juin 2006 à 01:37:05 | Re : Access et access...

erefdatacomputing

Salut !!
Dur Dur !!!
Mais il existe une solution qui va te faire gagner un peu de temps pour la recherche mais tu vas en perdre en temps de chargement au lancement de ton programme.
Il s'agit de remplir une listbox avec les 200 enreg., une autre listbox avec les 2000000 enreg. (si VB le supporte, personnellement je n'ai pas été si loin !!!), et une dernière listbox avec les AbsolutePosition
 correspondants à la BDD des 2000000, afin d'aller directement sur l'enreg. voulu, grace à l'index de l'item de la 2ème listbox quand tu feras ta boucle de recherche.( Car quand tu trouveras dans la 2ème listbox l'enreg. souhaité, pour avoir son AbsolutePosition dans la BDD, il suffira de prendre l'item ayant le même index dans la 3ème listbox.

Je l'ai fait pour de grosses BDD, çà marche, mais honnêtement .... c'est trop long à mon goût en temps de chargement !!!!

J'ai bien peur que tu n'ai pas le choix !!! Essaie le !!! Au pire tu ne perd rien !!!



Je comprends vite mais il faut m'expliquer longtemps et tout en détails !!!
jeudi 1 juin 2006 à 01:59:28 | Re : Access et access...

PCPT

Administrateur CodeS-SourceS
barbare
de toutes manières le nombre d'item max pour la ListBox est de 32767
(voir source de Jack : Limitations VB6)

il ne faut jamais passer par des objets à interface pour des traitements si volumineux !!
jeudi 1 juin 2006 à 07:06:43 | Re : Access et access...

Renfield

Administrateur CodeS-SourceS
c'est barbare, il faut l'avouer....
et en plus, coté mémoire, ca n'est vraiment pas top ^^

2 Millions éléments, ca fait pas mal... quand même... essaie une requete IN :

Do Until RS200.EOF
    sBuffer = sBuffer & "," & RS.Fields("ID")
    RS200.MoveNext
Loop

sSQL = "SELECT * FROM [MaBigBase] WHERE [ID] IN (" & Mid$ ( sBuffer, 2) & ")"

enfin, a supposer que ta table soit compatible avec ce genre de choses...


un autre solution serait l'import temporaire ou même simplement de lier ta 'petite table' dans la grande base, et de faire une requete SQL, avec une jointure, traditionnelle..

Renfield
Admin CodeS-SourceS- MVP Visual Basic
jeudi 1 juin 2006 à 10:31:57 | Re : Access et access...

pluplu

Difficile de donner une solution miracle sans avoir plus de détails, une possibilité c'est d'importer ta base de 2 Millions de records dans 10 bases temporaires de 200'000 et de faire la recherche des 200 records dans chacunne d'entre elle. Pour importer les 200'000 premiers records dans un recordset SELECT top 200000 * FROM Matable;
jeudi 1 juin 2006 à 11:37:59 | Re : Access et access...

Sator2

Membre Club
en fait j'ai générer les possibilités de l'euro million, (sans les étoiles)
et je recherche dans cette base les séries déjà sorties...

jeudi 1 juin 2006 à 11:47:12 | Re : Access et access...

Renfield

Administrateur CodeS-SourceS
pourquoi ne pas simplement stocker les séries déjà sorties ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
jeudi 1 juin 2006 à 11:47:49 | Re : Access et access...

Renfield

Administrateur CodeS-SourceS
ou ajouter un champ, qui indique le nombre de fois que la série est sortie..... (enfin, un boolean doit même suffir :p)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
jeudi 1 juin 2006 à 14:07:13 | Re : Access et access...

Sator2

Membre Club
c'est par exemple pour connaître parmis les 2 000 000 de possibilités différents paramètre.... car le but final est de réduire les possibilités... sortable, les paramètres peuvent être réduis en calculant une fourchette entre la série la plus basse à être sortie: imaginons.... 1-3-21-32-39(à l'oeuil) sorti le 14.5.2004 qui représente dans ma base de 2 000 000 de possibilitées est le 29693 enregistrement.... ce qui veut dire que sur les (Exactement 2 118 823 possibilitée) je peux éliminer la partie basse donc 29692 enregistrements puis sur la partie haute je fais de même ce qui me permet de faire une fourchette,( si ça t'intéresse je te le calculerai....) ensuite ça peut me permettre de faire des recherches imaginons si 2 paires, et pas sortis... si dans la série entre le 1-3-21-32-39 et le 25-26-41-44-47 voir si il y à une zone plus fréquenté que d'autres....
etc..etc... etc....


Cette discussion est classée dans : access, enregistrements, seconde, quelqu, idée


Répondre à ce message

Sujets en rapport avec ce message

Gérer des erreurs envoyer par Access [ par bertrand ] Bonjour,J'ai un programme en Vb6 qui doit insérer des enregistrements dans une table d'une base Access.Certains enregistrements existent déjà et donc moi + DAO + Access = nnnntteeeuuuuuuu !!!!!! [ par ARRRRRRRRGGGGGGGG!!!!!! ] Je ne sais pas me servir des grids des ocx, mais je veut pouvoir mettre mes données dans une table (g pas besoin de l'afficher c pour ça que g choisis base access et vb [ par julien ] bonjour.pourriez vous m'indiquer le code complet ainsi que les outils necessaire afin d'ouvrir une base de données access sous VB ? de plus, comment f Réduction d'une suite de chiffres [ par deneration ] est-ce que quelqu'un aurait une idée pour réduire la taille d' une suite de chiffres (ex2352642312312123132135464..........)J'ai pensé remplacé les ch Réduction d'une suite de chiffres [ par deneration ] est-ce que quelqu'un aurait une idée pour réduire la taille d' une suite de chiffres (ex2352642312312123132135464..........)J'ai pensé remplacé les ch Réduction d'une suite de chiffres [ par deneration ] est-ce que quelqu'un aurait une idée pour réduire la taille d' une suite de chiffres (ex2352642312312123132135464..........)J'ai pensé remplacé les ch Modifier les enregistrements dans un formulaire d'Access [ par khabir ] Bonjours à tous, J'ai deux problèmes à situer: 1er problème:Je voudrai savoir comment utiliser les boutons de commandes comme des boutons de filtrage Modifier les enregistrements dans un formulaire d'Access [ par khabir ] Bonjours à tous, J'ai deux problèmes à situer: 1er problème:Je voudrai savoir comment utiliser les boutons de commandes comme des boutons de filtrage CREER BASE DE CONNAISSANCE SOUS ACCESS [ par Lulu316i ] Bonjour,J'aurais souhaite que quelqu'un m'aide pour la creation d'une petite et simple base de connaissance. J'ai suivi des cours au CNAM sur les SGBD ACCESS+VB+TEXTE [ par Appolon ] Bonjour à tous,J'aimerais savoir si quelqu'un possède un source ou qu'il pourrait m'aider à mon problème suivant:- j'ai une base de donnée access 2000


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales