Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

replacement massif

4 réponses
Avatar
patrick.lyon
bonjour
je cherche a faire un rechercher/remplacer massif
avec excel j'aurais une solution qui tourne a 100 enregistrements en
6mn
je me demande si via access ce ne serais pas plus rapide/approprié.

la situation:
dans une table de 5000 à 15000 lignes j'ai un champ texte qui est en
fait une concaténation sans séparateur.
je voudrais pouvoir remplacer le contenu de ce champs par un contenu
modifié.
pour ce faire je peux utiliser une autre table avec 2 champs
un champ "ancienne dénomination" et un champ "nouvelle dénomination"
cette table ferait environ 3000 lignes

donc en résumé:
nouvelle table
champ1 champ2
avion ;avion;
bateau ;bateau;
camion ;camion;

ancien champ peux contenir:
avionbateauavionavioncamion
le nouveau champ deviendrait:
;avion;;bateau;;avion;;avion;;camion;

j'espère avoir été assez clair

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

4 réponses

Avatar
Raymond
Bonjour.

Combien y-a-t-il de dénominations car le problème n'est pas du tout le même.
si tu en as 3, c'est facile:
UPDATE Table1 SET Table1.Champ Replace(Replace(Replace([Champ],"avion",";avion;"),"bateau",";bateau;"),"cam
ion",";camion;");
si tu en as 3000 c'est 3000 exécutions de requête.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"patrick.lyon" a écrit dans le message de
news:
bonjour
je cherche a faire un rechercher/remplacer massif
avec excel j'aurais une solution qui tourne a 100 enregistrements en
6mn
je me demande si via access ce ne serais pas plus rapide/approprié.

la situation:
dans une table de 5000 à 15000 lignes j'ai un champ texte qui est en
fait une concaténation sans séparateur.
je voudrais pouvoir remplacer le contenu de ce champs par un contenu
modifié.
pour ce faire je peux utiliser une autre table avec 2 champs
un champ "ancienne dénomination" et un champ "nouvelle dénomination"
cette table ferait environ 3000 lignes

donc en résumé:
nouvelle table
champ1 champ2
avion ;avion;
bateau ;bateau;
camion ;camion;

ancien champ peux contenir:
avionbateauavionavioncamion
le nouveau champ deviendrait:
;avion;;bateau;;avion;;avion;;camion;

j'espère avoir été assez clair

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Avatar
patrick.lyon
j'ai 3000 dénominations
et le champ a remplacer peux avoir une dizaine de dénomination a
l'intérieur
et ça sur 10 000 enregistrements
"Raymond" a émis l'idée suivante :
Bonjour.

Combien y-a-t-il de dénominations car le problème n'est pas du tout le même.
si tu en as 3, c'est facile:
UPDATE Table1 SET Table1.Champ > Replace(Replace(Replace([Champ],"avion",";avion;"),"bateau",";bateau;"),"cam
ion",";camion;");
si tu en as 3000 c'est 3000 exécutions de requête.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"patrick.lyon" a écrit dans le message de
news:
bonjour
je cherche a faire un rechercher/remplacer massif
avec excel j'aurais une solution qui tourne a 100 enregistrements en
6mn
je me demande si via access ce ne serais pas plus rapide/approprié.

la situation:
dans une table de 5000 à 15000 lignes j'ai un champ texte qui est en
fait une concaténation sans séparateur.
je voudrais pouvoir remplacer le contenu de ce champs par un contenu
modifié.
pour ce faire je peux utiliser une autre table avec 2 champs
un champ "ancienne dénomination" et un champ "nouvelle dénomination"
cette table ferait environ 3000 lignes

donc en résumé:
nouvelle table
champ1 champ2
avion ;avion;
bateau ;bateau;
camion ;camion;

ancien champ peux contenir:
avionbateauavionavioncamion
le nouveau champ deviendrait:
;avion;;bateau;;avion;;avion;;camion;

j'espère avoir été assez clair

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Raymond
ça va te faire maximum 3000 lancements de requêtes, au mieux en groupant par
5 ou plus dans la même requête, tu dois t'en tirer avec 600.
Si sous Excel tu tournes à 100 enregistrements/minute, tu feras mieux sous
Access, à condition que la base ne grossisse pas trop vite car à ce rythme
tu vas te retrouver avec des Mo en plus à chaque passage et avec un
grossissement de 3Mo à chaque passage, tu vas dépasser la capacité Access.
Il va falloir le faire en plusieurs fois avec compactage entre chaque
passage.

d'où vient cette structure ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"patrick.lyon" a écrit dans le message de
news:
j'ai 3000 dénominations
et le champ a remplacer peux avoir une dizaine de dénomination a
l'intérieur
et ça sur 10 000 enregistrements
"Raymond" a émis l'idée suivante :
Bonjour.

Combien y-a-t-il de dénominations car le problème n'est pas du tout le
même.


si tu en as 3, c'est facile:
UPDATE Table1 SET Table1.Champ > >
Replace(Replace(Replace([Champ],"avion",";avion;"),"bateau",";bateau;"),"cam


ion",";camion;");
si tu en as 3000 c'est 3000 exécutions de requête.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"patrick.lyon" a écrit dans le message de
news:
bonjour
je cherche a faire un rechercher/remplacer massif
avec excel j'aurais une solution qui tourne a 100 enregistrements en
6mn
je me demande si via access ce ne serais pas plus rapide/approprié.

la situation:
dans une table de 5000 à 15000 lignes j'ai un champ texte qui est en
fait une concaténation sans séparateur.
je voudrais pouvoir remplacer le contenu de ce champs par un contenu
modifié.
pour ce faire je peux utiliser une autre table avec 2 champs
un champ "ancienne dénomination" et un champ "nouvelle dénomination"
cette table ferait environ 3000 lignes

donc en résumé:
nouvelle table
champ1 champ2
avion ;avion;
bateau ;bateau;
camion ;camion;

ancien champ peux contenir:
avionbateauavionavioncamion
le nouveau champ deviendrait:
;avion;;bateau;;avion;;avion;;camion;

j'espère avoir été assez clair

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com





Avatar
patrick.lyon
c'est très con
en fait c'est un champ historique qui a été compilé sans séparateur
les mots sont donc collé
pour arriver a recréer se champ avec séparateur, je suis bien obligé de
trouver un "dictionnaire" des mots utilisés (ça je sais le trouver)
et avec de rechercher
le dico fait donc 3000 enregistrements
le champ histo apparemment ferait maxi 10 mots concaténés
et la table 10 000 enregistrements
je teste donc au pire 3000 * 10 * 10 000 = beaucoup
avec excel et une boucle tu t'en sort avec 5 lignes de code en vba
avec access je ne sais pas
la solution excel fonctionne, je peux m'en satisfaire
mais soit disant qu'access est une base de donné etc...
je n'ai aucun a priori, je connais mal access
merci


"Raymond" a pensé très fort :
ça va te faire maximum 3000 lancements de requêtes, au mieux en groupant par
5 ou plus dans la même requête, tu dois t'en tirer avec 600.
Si sous Excel tu tournes à 100 enregistrements/minute, tu feras mieux sous
Access, à condition que la base ne grossisse pas trop vite car à ce rythme
tu vas te retrouver avec des Mo en plus à chaque passage et avec un
grossissement de 3Mo à chaque passage, tu vas dépasser la capacité Access.
Il va falloir le faire en plusieurs fois avec compactage entre chaque
passage.

d'où vient cette structure ?

--
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com