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

Import de données sous-totalisées

16 réponses
Avatar
CAIRIS
Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


--
Catherine

10 réponses

1 2
Avatar
Fabien
Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans access.
Ensuite Avec une requete select * from Tableattachée where Champs1 not
like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la requete
précédente dans un table par une autre requête mais je ne sais pas
comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....

Avatar
CAIRIS
....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
--
Catherine


"Fabien" wrote:

Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans access.
Ensuite Avec une requete select * from Tableattachée where Champs1 not
like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la requete
précédente dans un table par une autre requête mais je ne sais pas
comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....




Avatar
Thierry (ze Titi)
Bonjour Catherine et Fabien !

A mon sens, l'idée d'attacher le fichier Excel est bonne. La seconde
étape consiste, à mon sens, à la parcourir à l'envers via un Recordset.
De cette façon, tu auras en permanence l'id client pour les lignes qui
"suivent". Ensuite, tout devient plus facile pour l'enregistrement dans
une table "définitive".
Mais ça n'est qu'une idée...

Message du mardi 18/09/2007

....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
--
Catherine


"Fabien" wrote:

Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans access.
Ensuite Avec une requete select * from Tableattachée where Champs1 not
like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la requete
précédente dans un table par une autre requête mais je ne sais pas
comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....




--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info



Avatar
Fabien
....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
La logique m'echappe quelque peu ;-(

Je ne comprend pas comment, même a la main, tu attribut le code client1
aux valeurs 100 000 et 200 000 et le code Client2 aux valeurs 150 000 15
0 000.

Avatar
Fabien
Salut Thierry
Oui sauf que, a moins que son exemple soit mal rédigé, il me semble que
la logique de la répartition est pour le moins bizard

Bonjour Catherine et Fabien !

A mon sens, l'idée d'attacher le fichier Excel est bonne. La seconde
étape consiste, à mon sens, à la parcourir à l'envers via un Recordset.
De cette façon, tu auras en permanence l'id client pour les lignes qui
"suivent". Ensuite, tout devient plus facile pour l'enregistrement dans
une table "définitive".
Mais ça n'est qu'une idée...

Message du mardi 18/09/2007

....c'est justement là que cela coince ; il faut que je récupère le
nom des clients dans les lignes de total et que je les reporte sur les
lignes de détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
--
Catherine

"Fabien" wrote:

Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer
dans Access des données éditées sous forme de fichier (txt ou
xls).... mais je n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans
access.
Ensuite Avec une requete select * from Tableattachée where Champs1
not like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la
requete précédente dans un table par une autre requête mais je ne
sais pas comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....









Avatar
CAIRIS
Merci Thierry pour l'idée mais je n'ai aucune compétence pour écrire un tel
code. Est-ce que tu peux m'aider ?
--
Catherine


"Thierry (ze Titi)" wrote:

Bonjour Catherine et Fabien !

A mon sens, l'idée d'attacher le fichier Excel est bonne. La seconde
étape consiste, à mon sens, à la parcourir à l'envers via un Recordset.
De cette façon, tu auras en permanence l'id client pour les lignes qui
"suivent". Ensuite, tout devient plus facile pour l'enregistrement dans
une table "définitive".
Mais ça n'est qu'une idée...

Message du mardi 18/09/2007

....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
--
Catherine


"Fabien" wrote:

Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans access.
Ensuite Avec une requete select * from Tableattachée where Champs1 not
like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la requete
précédente dans un table par une autre requête mais je ne sais pas
comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....




--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info








Avatar
CAIRIS
Fabien, tu as raison,il y a une inversion dans mon exemple :ci joitn le
format corrigé :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client1 150000
AAAAAAAA Client2 200000
BBBBBBBBB Client2 150000

--
Catherine


"Fabien" wrote:

....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
La logique m'echappe quelque peu ;-(

Je ne comprend pas comment, même a la main, tu attribut le code client1
aux valeurs 100 000 et 200 000 et le code Client2 aux valeurs 150 000 15
0 000.




Avatar
Fabien
Merci Thierry pour l'idée mais je n'ai aucune compétence pour écrire un tel
code. Est-ce que tu peux m'aider ?
Sub Import()

Dim db as dao.database
Dim Rst as Dao.Recordset
Dim Client as String
Set db=currentdb
Set rst½.openrecordset("Latableattachée")
Rst.movelast
While not rst.bof
If instr(rst("Champ1"),"Total")>0 then
Client=mid$(rst("Champ1"),5)
else
Strsql="Insert into NouvelleTable (Reference,client,montant) select '"
& Rst("Champ1") & "', '" & Client & "', " & Rst("Champ2") & ";"
Docmd.setwarning false
Docmd.runsql Strsql
DoCmd.Setwarning True
End if
Rst.moveprevious
Wend
End sub

Voilà il faut, dans un module, mettre ce code, puis l'executer
Au préalable tu aura créé la table cible avec les champs
Reference,Client et Montant

Ze TiTi aura surement une autre version ;-)

Avatar
Fabien
Fabien, tu as raison,il y a une inversion dans mon exemple :ci joitn le
format corrigé :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client1 150000
AAAAAAAA Client2 200000
BBBBBBBBB Client2 150000

Comme ça c'est plus logique et la solution de Thierry s'applique.


Avatar
Thierry (ze Titi)
Admettons que ta table définitive s'appelle "Importation".
Attention, j'ai supposé quela dernière ligne du fichier importé comportait la référnce d'un client.
J'ai aussi admis que tu nous avais donné toutes les informations dans l'exemple fourni. Si tout n'y était pas, ça reste une base de travail.

DoCmd.TransferText acImportDelim, , "TableImport", "tonFichier.xls", True
Dim rs As DAO.Recordset
Dim strClient As String
Dim strSQL As String
Set rs=CurrentDb.OpenRecordset("TableImport",dbOpenDynaset)
rs.MoveLast
While Not rs.BOF
If rs!Références Like "Total*" Then
strClient=Mid(rs!Références,6)
Else
strSQL="INSERT INTO Importation VALUES('" & rs!Références & "','" & strClient & "','" & rs!Montant &"')"
DoCmd.RunSQL strSQL
End If
rs.MovePrevious
Wend
Set rs=Nothing

Non testé donc non garanti...

Dans ton message du mardi 18/09/2007 jour de Sainte Nadège, tu as pris l'initiative de nous narrer les faits suivants:
Merci Thierry pour l'idée mais je n'ai aucune compétence pour écrire un tel
code. Est-ce que tu peux m'aider ?
--
Catherine


"Thierry (ze Titi)" wrote:

Bonjour Catherine et Fabien !

A mon sens, l'idée d'attacher le fichier Excel est bonne. La seconde
étape consiste, à mon sens, à la parcourir à l'envers via un Recordset.
De cette façon, tu auras en permanence l'id client pour les lignes qui
"suivent". Ensuite, tout devient plus facile pour l'enregistrement dans
une table "définitive".
Mais ça n'est qu'une idée...

Message du mardi 18/09/2007

....c'est justement là que cela coince ; il faut que je récupère le nom des
clients dans les lignes de total et que je les reporte sur les lignes de
détail (je n'ai aucune clé pour faire le lien entre les 2) !!!
Si tu as une idée, merci d'avance
--
Catherine


"Fabien" wrote:

Bonjour et merci d'avance pour votre aide

Je travaille dans un environnement Office 2003 et essaie d'importer dans
Access des données éditées sous forme de fichier (txt ou xls).... mais je
n'ai aucune compétence en VB.

Le format de l'édition à importer est le suivant :
Références Montant
AAAAAAAA 100000
BBBBBBBBB 150000
TotalClient1 250000
AAAAAAAA 200000
BBBBBBBBB 150000
TotalClient2 350000

et j'aimerai une table de ce type :
Références Clients Montant
AAAAAAAA Client1 100000
BBBBBBBBB Client2 150000
AAAAAAAA Client1 200000
BBBBBBBBB Client2 150000


Salut Cairis

A mon sens le plus simple c'est d'attacher ton tableau excel dans access.
Ensuite Avec une requete select * from Tableattachée where Champs1 not
like "Total*"; Tu isoles les lignes qui t'interesse .
La derniére opération serai d'ajouter les éléments issus de la requete
précédente dans un table par une autre requête mais je ne sais pas
comment tu determines les valeurs Client1,client2,...,clientn
Donc dans l'attente ....




--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info





1 2