|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour,
J'ai une table avec : Prefa, Repere1 et Repere2 ces 2 lignes sont composés d'environ 4 lettres Il me faudrait une table avec le nombre de lettres pour chaque lettre ex: Prefa Repere1 Repere2 1 12ac 14ac 1 14b 15b 1 78b 45cd 2 18e 16v 2 10be A 3 er 481 et il me faudrait une table qui sort Pref A B C D 1 2 4 5 7 8 1 2 3 3 1 4 1 2 2 1 1 2 .......................... 3 ............................... Merci ..... |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Pourrais-tu être plus explicite, car je trouve que ton exemple n'est pas très parlant. Le fait d'être clair et précis vous amènera plus rapidement une réponse adéquate au problème rencontré. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Toute mes excuses
En faite j'aimerai compter le nombre de lettres et de chiffres dans une même prefa ces lettres que je souhaite compter et ranger dans un tableau son dans repère 1 et 2. Mais je ne sais pas si c'est possible .... Ainsi on aura une table avec les 10 chiffres et les 26 lettres et a chaque lettres on aura un quantité qui lui sera associé et la prefa sera comme on pourrai dire l'identifiant de la table ... car il y a plusieurs ligne dans une prefa ... Merci beaucoup de t'intéresser a mon cas ... Si ta d'autre questions n'hésite surtout pas .. [Edit] Je pense que ce qui pose le plus gros problème c'est de repérer le caractère dans le champ repere1 ou repere2 .... |
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
Voilà une piste je pense a etudier...
Code :
la requete n'arrive pas a voir si il y a plusieurs fois la meme lettre dans un repere .. Mais le resultat n'est pas bon ... Pourquoi ?? |
||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() |
Nouvelle solution qui compte presque bien ....
Code :
C'est a dire que si dans repere1 on " AA154A" et dans Repere2 "AA15A" La table ne donne comme valeur de AA =2 alors qu'il devrait valoir 6 ... Il voit le A dans repere 1 et le A dans Repere2 une seul et unique fois ... Comment faire pour qu'il puisse le voir plusieurs fois ?? JE ne sais pas si je l'ai dit mais je travail sous Access.... Merci de votre aide Cordialement Theuma ... |
||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() |
Y'aurai t'il en SQL access un moyen de faire un genre de split pour pouvoir comparer 1 a 1 les caractere de repere1 et repere2 par rapport a la lettre ...
Exemple split(Repere1) LIKE '*A*' ..... Comme ca les doublons de lettre sont reperer et comptabilisé ... Merci .... |
|
|
00
|
|
|
#7 | ||
![]() ![]() |
salut,
ici il me semble que tu travailles sur le nombre d'occurence d'une chaine dans une autre Perso, j'utilise la fonction suivante Code :
![]() - Autre approche, si tes mots font au maximum 4 caracteres, en passant par un requete d'analyse croisee, c'est encore plus simple
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
||
|
10
|
|
|
#8 |
|
Membre du Club
![]() |
ils font au maximum 7 caractères ... Tu pourrait m'expliquer l'analyse croisé ?? Je n'ai que quelques bases en sql merci ...
Cette fonction tu la déclare où ?? |
|
|
00
|
|
|
#9 |
![]() ![]() |
salut,
la fonction est a mettre dans un module. Pour l'analyse croisee, je te recommande d'utiliser l'assistant Access
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#10 | ||
|
Membre du Club
![]() |
J'ai regarder avec l'assistance d'access mais je t'avoue que j'ai un peu de mal a comprendre le principe ...
Apres avoir mis la fonction dans un module, comment l'utiliser ?? Dans une requete SQL ?? ca me parait bizarre nan ?? et si je fait un truc de ce type la : Code :
|
||
|
|
00
|
|
|
#11 | ||
![]() ![]() |
En mettant dans une table bidon a un seul champs (nomme Lettre) toutes les lettres de l'alphabet, et en travaillant sur ta table Prefab, je pencherais pour une requete du style
Code SQL :
si deja ce niveau de resultat te convient, on passera a la partie analyse croisee
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
||
|
10
|
|
|
#12 |
|
Membre du Club
![]() |
" Fonction "NBOc" non définie dans l'expression "
Ca serai pas possible de crée une fonction qui remplace ce que j'ai dit plus haut ?? On metterai comme argument le caractere et hop le tour est joué ^^!! Parce que faire ca 36 fois alors que c'est la même chose c'est un peu chiant et surtout si je dois modifier quelque chose dans le code ... |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() |
Quel crétin ... j'avais pas mis la fonction dans un module...
N'empeche que, il ne me trouve pas prefa .... je te montre exactement de que j'ai comme table ... une table LignePrefab - ID_lignePrefa - Repere1 - Repere2 - Nb - FK_Prefab - ........... une table Prefa - ID_Prefab - Ref relation ID_Prefab avec FK_Prefab une table ChiffreLettre - Lettre (chiffre et lettre dedans) qui n'a aucune relation avec les autres ... |
|
|
00
|
|
|
#14 |
![]() ![]() |
hello,
en mettant a jour le nom du champs, ca ne fonctionne pas ? ID_Prefab au lieu de Prefa (en fait je m'etais base sur tes premiers posts avec ton exemple
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() |
Nan ca marche pas ... Il fauderait que je fasse une fonction en VB mais j'arrive pas a la faire ... en VB je ne m'y connait pas dutout ... Je connait tres bien le C# mais le VB j'ai un peu de mal ... Il fauderait que je fasse une fonction avec ma requete precedente
Une fonction avec un parametre Lettre et un paramètre indice pour pouvoir comparer plus ou moins de lettre ... Je pense qu'il faudrait un truc du genre Code :
|
||
|
|
00
|
|
|
#16 |
![]() ![]() |
Comme tu veux, mais je pense que tu t'embarques vers un sac de noeuds
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour à tous,
Je me permets de m'immiscer... concernant la méthode. Citation:
Une chose est sûre, Theuma, c'est que tu ne peux pas y arriver en une seule fois. Suggestion : TaTableSource (données d'origine) : - Prefa - Repere1 - Repere2 Créer une table TaTableCible : - Prefa (clé unique) - Reperes_concat Créer une table TaTableCibleAnalyse : - Prefa (clé unique) - Caractere (clé unique) - Nombre Via VBA (que je ne connais pas) : Lire TaTableSource ; Recheche Prefa dans TaTableCible ; Existe => Reperes_concat = Reperes_concat & Repere1 & Repere2 => update ; N'existe pas => Reperes_concat = Repere1 & Repere2 => insert ; Loop. ==> TaTableCible contient 1 ligne par Prefa avec tous les repères concaténés. Via VBA (que je ne connais toujours pas) : 1- Lire TaTableCible ; 2- Lire tous les caractères de Reperes_concat ; Recherche Prefa/Caractère lu dans TaTableCibleAnalyse ; Existe => Nombre = Nombre + 1 => update ; N'existe pas => Nombre = 1 => insert ; Loop 2; Loop 1. ==> TaTableCibleAnalyse contient 1 ligne par Prefa/Caractères avec le nombre trouvés pour le caractère, dans la Prefa. Enfin, une requête "analyse-croisée" sur TaTableCibleAnalyse devrait te donner 1 ligne par Prefa avec 36 colonnes, l'intersection étant le nombre calculé. Pas testé, mais cela a l'air de tourner... sur le papier.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() |
Bonjour,
Il est vrai que concaténer repere1 et repere2 dans une table permettrai d'avoir une requête beaucoup moins importants ... C'est a y réfléchir ... Maintenant C'est vrai que an VB je ne suis pas très doué mais ça reste de la programmation donc il devrait pas y avoir trop de problème quand au faite que je doit programmé (mais si un peu d'aide serai le bienvenu Après ma méthode marche ... donc simplifier dans un tableau ou simplifier pendant la requête, c'est un choix a faire c'est vrai... Quand tu me parle d'analyse croisé je ne comprend pas se principe en faite ... Je le vois dans l'assistance mais quand j'essaye je ne comprend pas a quoi ça sert ... Merci de ton aide précieuse et de t’intéresser a mon cas ... [edit] TaTableCible est très facile de faire en SQL avec la concatenation ... Maintenant c'est le repere de chaque lettre qui va etre plus difficile en VB ... |
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Theuma,
Comme je te l'ai dit, je ne connais pas VBA, je ne peux donc ni analyser, ni débugger ton code. Il me semble qu'il faudrait que tu regardes les tutoriels qui traitent des requêtes dites "analyse croisée" (PIVOT, TRANSFORM). Le principe est de produire une requête donnant 1 ligne par clé, à partir d'une table qui contient plusieurs lignes pour cette clé. Cela semble correspondre à ton besoin. Le mieux est que tu testes cela avec une table de test. Enfin, concernant ton besoin, il me semble nécessaire de segmenter la solution, ne serait-ce que pour la maintenir, dans le temps.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#20 |
|
Membre du Club
![]() |
Merci Richard 35,
je vais regarder ca de plus pres ... Il est vrai que d'après ce que tu dit il faudrait que j'utilise l'analyse croisé je vais regarder les tutos ... Maintenant j'aimerais savoir si il est possible de faire une boucle for ou while en SQL Access, si oui quel est la syntaxe ?? merci ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com