Bonjour,
toutes les semaine je récupère un fichier texte que j'importe dans Access.
Ce fichier contient un certain nombre de champs et parmi ceux ci des clamps
numériques. Pour chaque enregistrement je souhaite faire des totaux par
groupe en fonction du nom du champ. Le nombre de champs pouvant être
variable d'une semaine sur l'autre
Pour être plus clair je vous donne un exemple.
Voici par exemple les champs de la table ainsi constituée:
Nom
Prénom
Adresse
.....
AAAA1
AAAA2
....
AAAA3
BBB1
BBB2
...
BBB9
.....
Adresse mail
Je souhaite faire les additions de tout ce qui est AAAA*, BBB* (familles) de
l'enregistrement et écrire le résultat dans un champs d'une autre table (ou
de la même peu importe) dans un champ AAAAtotal, BBBtotal. Chaque famille
existe toujours d'une semaine sur l'autre mais le nombre de champs qui la
compose est variable, c'est pour cela que je cherche une procédure en VB qui
puisse me faire les additions.
Avez vous une idée de comment il faut faire car je débute en VBA.
Par avance merci
Pascal
"Pascal" [...] | Pour ce qui est de la structure du fichier, je ne peux malheureusement pas | le changer. En voici un petit échantillon pour illustrer le propos.. | | Materiel Option1 Option2 Reseau1 Reseau2 Reseau3 | Carrte HD 1 25 6 5 2 | Carte BD 150 279 10 75 200 | | ........ | | | | Ce que je souhaite obtenir en résultat dans une table : | Materiel Optionx Reseaux | Carrte HD 26 13 | Carte BD 429 285 | ... | | | Le nb d'options d'une fois sur l'autre change ainsi que le nb de réseaux | (cela peut aller à une dizaine), mais existent dans toujours. Ma table | source ne se limite bien sur pas à 2 familles mais à une dizaine. | J'espère être assez clair. | Par avance merci | Pascal | | | En travaillant sur le pb, ne peut on imaginer un code VB qui écrive une | requête pour écrire dans une table et qui adapte les noms des champs sources | (ceux qui varient) ?
Encore quelques questions et précisions... ;-)
- Ton fichier texte possède des "en-têtes" de champ ? - Ces en-têtes ont toujours le format nnnnnX où les 'n' représente le nom et le 'X' le chiffre ? - et... pour les variations, ce sont le nombre des options et reseaux qui change d'une fois à l'autre ou bien également les colonnes "matériel" ?
Et tu souhaite ajouter cela dans une table (toujours la même) ou bien créer un nouvelle table à chaque fois ?
Si tu répond oui aux 3 premières, il y à de l'espoir ;-)
Bonsoir Pierre, c'est très gentil de t'occuper de mon pb. A tes 3 questions, la réponse est OUI. Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs caractères alphanumériques mais la racine est toujours la même. La colonne matériel est fixe. J'ajoute toujours dans la même table et tous les champs sont définis. Merci beaucoup. Pascal
"3stone" <home@sweet_home.be> a écrit dans le message de news:
u52YmyjvGHA.3392@TK2MSFTNGP04.phx.gbl...
re,
"Pascal"
[...]
| Pour ce qui est de la structure du fichier, je ne peux malheureusement pas
| le changer. En voici un petit échantillon pour illustrer le propos..
|
| Materiel Option1 Option2 Reseau1 Reseau2 Reseau3
| Carrte HD 1 25 6 5 2
| Carte BD 150 279 10 75 200
|
| ........
|
|
|
| Ce que je souhaite obtenir en résultat dans une table :
| Materiel Optionx Reseaux
| Carrte HD 26 13
| Carte BD 429 285
| ...
|
|
| Le nb d'options d'une fois sur l'autre change ainsi que le nb de réseaux
| (cela peut aller à une dizaine), mais existent dans toujours. Ma table
| source ne se limite bien sur pas à 2 familles mais à une dizaine.
| J'espère être assez clair.
| Par avance merci
| Pascal
|
|
| En travaillant sur le pb, ne peut on imaginer un code VB qui écrive une
| requête pour écrire dans une table et qui adapte les noms des champs
sources
| (ceux qui varient) ?
Encore quelques questions et précisions... ;-)
- Ton fichier texte possède des "en-têtes" de champ ?
- Ces en-têtes ont toujours le format nnnnnX où les 'n' représente le nom et
le 'X' le chiffre ?
- et... pour les variations, ce sont le nombre des options et reseaux qui
change d'une fois à l'autre ou bien également les colonnes "matériel" ?
Et tu souhaite ajouter cela dans une table (toujours la même) ou bien
créer un nouvelle table à chaque fois ?
Si tu répond oui aux 3 premières, il y à de l'espoir ;-)
Bonsoir Pierre,
c'est très gentil de t'occuper de mon pb.
A tes 3 questions, la réponse est OUI.
Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs
caractères alphanumériques mais la racine est toujours la même.
La colonne matériel est fixe.
J'ajoute toujours dans la même table et tous les champs sont définis.
Merci beaucoup.
Pascal
"Pascal" [...] | Pour ce qui est de la structure du fichier, je ne peux malheureusement pas | le changer. En voici un petit échantillon pour illustrer le propos.. | | Materiel Option1 Option2 Reseau1 Reseau2 Reseau3 | Carrte HD 1 25 6 5 2 | Carte BD 150 279 10 75 200 | | ........ | | | | Ce que je souhaite obtenir en résultat dans une table : | Materiel Optionx Reseaux | Carrte HD 26 13 | Carte BD 429 285 | ... | | | Le nb d'options d'une fois sur l'autre change ainsi que le nb de réseaux | (cela peut aller à une dizaine), mais existent dans toujours. Ma table | source ne se limite bien sur pas à 2 familles mais à une dizaine. | J'espère être assez clair. | Par avance merci | Pascal | | | En travaillant sur le pb, ne peut on imaginer un code VB qui écrive une | requête pour écrire dans une table et qui adapte les noms des champs sources | (ceux qui varient) ?
Encore quelques questions et précisions... ;-)
- Ton fichier texte possède des "en-têtes" de champ ? - Ces en-têtes ont toujours le format nnnnnX où les 'n' représente le nom et le 'X' le chiffre ? - et... pour les variations, ce sont le nombre des options et reseaux qui change d'une fois à l'autre ou bien également les colonnes "matériel" ?
Et tu souhaite ajouter cela dans une table (toujours la même) ou bien créer un nouvelle table à chaque fois ?
Si tu répond oui aux 3 premières, il y à de l'espoir ;-)
Bonsoir Pierre, c'est très gentil de t'occuper de mon pb. A tes 3 questions, la réponse est OUI. Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs caractères alphanumériques mais la racine est toujours la même. La colonne matériel est fixe. J'ajoute toujours dans la même table et tous les champs sont définis. Merci beaucoup. Pascal
3stone
Salut,
"Pascal" [...] | A tes 3 questions, la réponse est OUI. | Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs | caractères alphanumériques mais la racine est toujours la même. | La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-) ce qui fait partie de la racine ? Puisque la racine n'a pas non plus de longueur fixe... comment être sûr que 2 ou 3 caractères communs indiquent bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande si dans de telles conditions il est vraiment souhaitable de vouloir automatiser cela... une requête de sélection est tellement facile et rapide à construire ;)
"Pascal"
[...]
| A tes 3 questions, la réponse est OUI.
| Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs
| caractères alphanumériques mais la racine est toujours la même.
| La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-)
ce qui fait partie de la racine ?
Puisque la racine n'a pas non plus de longueur fixe...
comment être sûr que 2 ou 3 caractères communs indiquent
bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande
si dans de telles conditions il est vraiment souhaitable de vouloir
automatiser cela... une requête de sélection est tellement facile
et rapide à construire ;)
"Pascal" [...] | A tes 3 questions, la réponse est OUI. | Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs | caractères alphanumériques mais la racine est toujours la même. | La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-) ce qui fait partie de la racine ? Puisque la racine n'a pas non plus de longueur fixe... comment être sûr que 2 ou 3 caractères communs indiquent bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande si dans de telles conditions il est vraiment souhaitable de vouloir automatiser cela... une requête de sélection est tellement facile et rapide à construire ;)
"Pascal" [...] | A tes 3 questions, la réponse est OUI. | Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs | caractères alphanumériques mais la racine est toujours la même. | La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-) ce qui fait partie de la racine ? Puisque la racine n'a pas non plus de longueur fixe... comment être sûr que 2 ou 3 caractères communs indiquent bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande si dans de telles conditions il est vraiment souhaitable de vouloir automatiser cela... une requête de sélection est tellement facile et rapide à construire ;)
-- A+ Pierre (3stone) Access MVP Perso: http://www.3stone.be/ Conseils MPFA: http://www.mpfa.info/ Bonjour, En ce qui concerne les racines comme je le disais elle sont connues et en nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais on peut en utiliser que les 5 premier cela est suffisant pour garantir leur unicité. C'est pour cela que je pense que cela peut s'automatiser afin de ne plus avoir à y penser et être sur de ne rien oublier. Encore merci de consacrer du temps à mon pb. Pascal
"3stone" <home@sweet_home.be> a écrit dans le message de news:
e3rJvqYwGHA.3420@TK2MSFTNGP04.phx.gbl...
Salut,
"Pascal"
[...]
| A tes 3 questions, la réponse est OUI.
| Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs
| caractères alphanumériques mais la racine est toujours la même.
| La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-)
ce qui fait partie de la racine ?
Puisque la racine n'a pas non plus de longueur fixe...
comment être sûr que 2 ou 3 caractères communs indiquent
bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande
si dans de telles conditions il est vraiment souhaitable de vouloir
automatiser cela... une requête de sélection est tellement facile
et rapide à construire ;)
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Bonjour,
En ce qui concerne les racines comme je le disais elle sont connues et en
nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais
on peut en utiliser que les 5 premier cela est suffisant pour garantir leur
unicité.
C'est pour cela que je pense que cela peut s'automatiser afin de ne plus
avoir à y penser et être sur de ne rien oublier.
Encore merci de consacrer du temps à mon pb.
Pascal
"Pascal" [...] | A tes 3 questions, la réponse est OUI. | Pour X, une petite précision, x peut représenter 1 chiffre ou plusieurs | caractères alphanumériques mais la racine est toujours la même. | La colonne matériel est fixe.
La réponse est donc 'non' ;-)
Puisque la fin n'est pas numérique, comment savoir (deviner ;-) ce qui fait partie de la racine ? Puisque la racine n'a pas non plus de longueur fixe... comment être sûr que 2 ou 3 caractères communs indiquent bien une racine commune ?
Le résultat me semble tellement alléatoire, que je me demande si dans de telles conditions il est vraiment souhaitable de vouloir automatiser cela... une requête de sélection est tellement facile et rapide à construire ;)
-- A+ Pierre (3stone) Access MVP Perso: http://www.3stone.be/ Conseils MPFA: http://www.mpfa.info/ Bonjour, En ce qui concerne les racines comme je le disais elle sont connues et en nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais on peut en utiliser que les 5 premier cela est suffisant pour garantir leur unicité. C'est pour cela que je pense que cela peut s'automatiser afin de ne plus avoir à y penser et être sur de ne rien oublier. Encore merci de consacrer du temps à mon pb. Pascal
3stone
Salut,
"Pascal" | En ce qui concerne les racines comme je le disais elle sont connues et en | nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais | on peut en utiliser que les 5 premier cela est suffisant pour garantir leur | unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ? l'espace, une tabulation ou point-virgule ?
"Pascal"
| En ce qui concerne les racines comme je le disais elle sont connues et en
| nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais
| on peut en utiliser que les 5 premier cela est suffisant pour garantir leur
| unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ?
l'espace, une tabulation ou point-virgule ?
"Pascal" | En ce qui concerne les racines comme je le disais elle sont connues et en | nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais | on peut en utiliser que les 5 premier cela est suffisant pour garantir leur | unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ? l'espace, une tabulation ou point-virgule ?
"Pascal" | En ce qui concerne les racines comme je le disais elle sont connues et en | nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais | on peut en utiliser que les 5 premier cela est suffisant pour garantir leur | unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ? l'espace, une tabulation ou point-virgule ?
Bonsoir pierre, le séparateur de champ est un point-virgule.
"3stone" <home@sweet_home.be> a écrit dans le message de news:
eLPuqNfwGHA.2204@TK2MSFTNGP03.phx.gbl...
Salut,
"Pascal"
| En ce qui concerne les racines comme je le disais elle sont connues et en
| nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères
mais
| on peut en utiliser que les 5 premier cela est suffisant pour garantir
leur
| unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ?
l'espace, une tabulation ou point-virgule ?
"Pascal" | En ce qui concerne les racines comme je le disais elle sont connues et en | nombre limités et ne changent jamais. Elle font entre 5 et 8 caractères mais | on peut en utiliser que les 5 premier cela est suffisant pour garantir leur | unicité.
Dans ce cas, c'est faisable !
Quel est le séparateur dans le fichier de départ ? l'espace, une tabulation ou point-virgule ?
"3stone" a écrit dans le message de news: % Salut,
"Pascal" | le séparateur de champ est un point-virgule.
je m'absente encore... ;-( mais te fais cela dès que j'ai un petit moment !
-- A+ Pierre (3stone) Access MVP Perso: http://www.3stone.be/ Conseils MPFA: http://www.mpfa.info/ Merci beaucoup pour tout le temps que tu consacres à mon pb. Pascal
"3stone" <home@sweet_home.be> a écrit dans le message de news:
%23LnRrWiwGHA.4512@TK2MSFTNGP05.phx.gbl...
Salut,
"Pascal"
| le séparateur de champ est un point-virgule.
je m'absente encore... ;-(
mais te fais cela dès que j'ai un petit moment !
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Merci beaucoup pour tout le temps que tu consacres à mon pb.
Pascal
"3stone" a écrit dans le message de news: % Salut,
"Pascal" | le séparateur de champ est un point-virgule.
je m'absente encore... ;-( mais te fais cela dès que j'ai un petit moment !
-- A+ Pierre (3stone) Access MVP Perso: http://www.3stone.be/ Conseils MPFA: http://www.mpfa.info/ Merci beaucoup pour tout le temps que tu consacres à mon pb. Pascal
3stone
Salut,
Toujours là Pascal ? ;-)
Désolé pour mon absence et le retard...
Essaies voir si cela te convient. Vite fait et sans grande gestion d'erreur... mais cela devrait te créer la table souhaitée à partir de ton fichier texte, pour autant que celui-ci respecte le format indiqué. Tu colle la fonction dans un module général et tu le sauve sous un autre nom que celui de la fonction (mod_texte_to_table par exemple)
Essaies voir si cela te convient.
Vite fait et sans grande gestion d'erreur... mais cela devrait te créer
la table souhaitée à partir de ton fichier texte, pour autant que celui-ci
respecte le format indiqué.
Tu colle la fonction dans un module général et tu le sauve sous un
autre nom que celui de la fonction (mod_texte_to_table par exemple)
Essaies voir si cela te convient. Vite fait et sans grande gestion d'erreur... mais cela devrait te créer la table souhaitée à partir de ton fichier texte, pour autant que celui-ci respecte le format indiqué. Tu colle la fonction dans un module général et tu le sauve sous un autre nom que celui de la fonction (mod_texte_to_table par exemple)
Essaies voir si cela te convient. Vite fait et sans grande gestion d'erreur... mais cela devrait te créer la table souhaitée à partir de ton fichier texte, pour autant que celui-ci respecte le format indiqué. Tu colle la fonction dans un module général et tu le sauve sous un autre nom que celui de la fonction (mod_texte_to_table par exemple)
Bonjour Pierre, je viens de rentrer de vacances, j'étais partis 1 jour avant que tu ne réponde :-(. J'ai mis en place le code cet après midi et je dois dire que tu as fait du super bon boulot. C'est géant. Il reste cependant un petit (pour toi) car j'y ai passé tout l'apm sans trouver de solution. J'ai des champs qui sont vide, Access les importes donc comme ayant une 'valeur' null et cela pose pb dans les additions (cela génère une erreur). J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui fonctionne sauf dans 1 cas. Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui n'est pas toujours à la même place bien sur, sinon ce serai trop simple), cela redéfini le nom du champ en "Expressionxxx". As tu une idée de comment on pourrais faire pour contourner le pb ? Encore merci pour le super travail que tu a fait. Pascal
"3stone" <home@sweet_home.be> a écrit dans le message de news:
e5OJpdq0GHA.2036@TK2MSFTNGP05.phx.gbl...
Salut,
Toujours là Pascal ? ;-)
Désolé pour mon absence et le retard...
Essaies voir si cela te convient.
Vite fait et sans grande gestion d'erreur... mais cela devrait te créer
la table souhaitée à partir de ton fichier texte, pour autant que celui-ci
respecte le format indiqué.
Tu colle la fonction dans un module général et tu le sauve sous un
autre nom que celui de la fonction (mod_texte_to_table par exemple)
Bonjour Pierre,
je viens de rentrer de vacances, j'étais partis 1 jour avant que tu ne
réponde :-(.
J'ai mis en place le code cet après midi et je dois dire que tu as fait du
super bon boulot. C'est géant. Il reste cependant un petit (pour toi) car
j'y ai passé tout l'apm sans trouver de solution.
J'ai des champs qui sont vide, Access les importes donc comme ayant une
'valeur' null et cela pose pb dans les additions (cela génère une erreur).
J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui
fonctionne sauf dans 1 cas.
Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu
défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui
n'est pas toujours à la même place bien sur, sinon ce serai trop simple),
cela redéfini le nom du champ en "Expressionxxx".
As tu une idée de comment on pourrais faire pour contourner le pb ?
Encore merci pour le super travail que tu a fait.
Pascal
Essaies voir si cela te convient. Vite fait et sans grande gestion d'erreur... mais cela devrait te créer la table souhaitée à partir de ton fichier texte, pour autant que celui-ci respecte le format indiqué. Tu colle la fonction dans un module général et tu le sauve sous un autre nom que celui de la fonction (mod_texte_to_table par exemple)
Bonjour Pierre, je viens de rentrer de vacances, j'étais partis 1 jour avant que tu ne réponde :-(. J'ai mis en place le code cet après midi et je dois dire que tu as fait du super bon boulot. C'est géant. Il reste cependant un petit (pour toi) car j'y ai passé tout l'apm sans trouver de solution. J'ai des champs qui sont vide, Access les importes donc comme ayant une 'valeur' null et cela pose pb dans les additions (cela génère une erreur). J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui fonctionne sauf dans 1 cas. Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui n'est pas toujours à la même place bien sur, sinon ce serai trop simple), cela redéfini le nom du champ en "Expressionxxx". As tu une idée de comment on pourrais faire pour contourner le pb ? Encore merci pour le super travail que tu a fait. Pascal
3stone
Salut,
"Pascal" [...] | J'ai des champs qui sont vide, Access les importes donc comme ayant une | 'valeur' null et cela pose pb dans les additions (cela génère une erreur). | J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui | fonctionne sauf dans 1 cas.
J'y ai pensé, mais comme tu ne soufflais mot de champs vides, j'en ai profité pour ne pas m"en occupé ;-))
Je corrige cela...
| Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu | défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui | n'est pas toujours à la même place bien sur, sinon ce serai trop simple), | cela redéfini le nom du champ en "Expressionxxx".
Tu préfère garder le nom du champ lorsqu'il est seul ?
"Pascal"
[...]
| J'ai des champs qui sont vide, Access les importes donc comme ayant une
| 'valeur' null et cela pose pb dans les additions (cela génère une erreur).
| J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui
| fonctionne sauf dans 1 cas.
J'y ai pensé, mais comme tu ne soufflais mot de champs vides, j'en ai
profité pour ne pas m"en occupé ;-))
Je corrige cela...
| Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu
| défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui
| n'est pas toujours à la même place bien sur, sinon ce serai trop simple),
| cela redéfini le nom du champ en "Expressionxxx".
Tu préfère garder le nom du champ lorsqu'il est seul ?
"Pascal" [...] | J'ai des champs qui sont vide, Access les importes donc comme ayant une | 'valeur' null et cela pose pb dans les additions (cela génère une erreur). | J'ai essayé d'utilise la fonction iif(nz(NomduChamp)),NomduChamp,0), qui | fonctionne sauf dans 1 cas.
J'y ai pensé, mais comme tu ne soufflais mot de champs vides, j'en ai profité pour ne pas m"en occupé ;-))
Je corrige cela...
| Lorsque qu'il y a plusieurs champ qui doivent s'additionner pas de pb car tu | défini le champ destination, mais lorsqu'il n'y a qu'un seul champ (qui | n'est pas toujours à la même place bien sur, sinon ce serai trop simple), | cela redéfini le nom du champ en "Expressionxxx".
Tu préfère garder le nom du champ lorsqu'il est seul ?