Oui comme je l'ai décrit dans l'algo générique en quelques passes tu devrais pouvoir le faire.
Est-ce que tu dois faire l'importation une seule fois ou ce sera répétitif ?
De ce que je vois tu devrais avoir besoin
table temporaire d'imporation tblTemp
ClefTemp: Autonum (on peut s'en passer mais cela peut être pratique pour réordonner les données importées).
CodeTemp : Texte 255 caractères
LibTemp : Text 255 caractères
Une table des sections tblSection
ClefSection : Autonum
CodeSection : Texte 255 caractères
LibSection : Text 255 caractères
Une table des SousSections tblSousSection
ClefSousSection : Autonum
CodeSousSection : Texte 255 caractères
LibSousSection : Text 255 caractères
Une table des SousSousSections tblSousSousSection
ClefSousSousSection : Autonum
CodeSousSousSection : Texte 255 caractères
LibSousSousSection : Text 255 caractères
table des code APE tblCodeAPE
ClefCodeAPE : Autonum
CodeCodeAPE : Texte 255 caractères
LibCodeAPE : Texte 255 caractères
ClefSection : Entier long
ClefSousSection : Entier long
ClefSousSousSection : Entier long
En relation avec tblSection sur ClefSection
En relation avec tblSousSection sur ClefSousSection
En relation avec tblSousSousSection sur ClefSousSousSection
Pour avoir la liste des sections
1 2
| select mid([tblTemp].[CodeTemp], 8) as [CodeImport], [tblTemp].[LibTemp] as [LibImport] from [tblTemp].[CodeTemp]
group [tblTemp].[CodeTemp], [LibTemp] having [tblTemp].[codeTemp] like "SECTION*" |
Toutes les sections contiennent le mot "SECTION"
Créer une requête d'ajout pour remplir tblSection prenant pour source cette requête.
Pour avoir la liste des sous-sections
1 2
| select [tblTemp].[CodeTemp] as [CodeImport], [tblTemp].[LibTemp] as [LibImport] from [tblTemp].[CodeTemp]
group [tblTemp].[CodeTemp], [LibTemp] having [tblTemp].[codeTemp] like "??" |
Toutes les sous-sections on un code à 2 chiffres
Créer une requête d'ajout pour remplir tblSousSection prenant pour source cette requête.
Pour avoir la liste des sous-sous-sections
1 2
| select [tblTemp].[CodeTemp] as [CodeImport], [tblTemp].[LibTemp] as [LibImport] from [tblTemp].[CodeTemp]
group [tblTemp].[CodeTemp], [LibTemp] having ([tblTemp].[codeTemp] like "??.*" and not [tblTemp].[codeTemp] like "??.*Z") |
Toutes les sous-sections on un code à 2 chiffres un point et des chiffres mais ne se terminent pas par Z.
Créer une requête d'ajout pour remplir tblSousSousSection prenant pour source cette requête.
Pour avoir la liste des APE :
select [tblTemp].[CodeTemp] as [CodeImport], [tblTemp].[LibTemp] as [LibImport], left([tblTemp].[CodeTemp], 2) as [CodeSousSection], left([tblTemp].[CodeTemp], len([tblTemp].[CodeTemp])-1) as [CodeSousSousSection] from [tblTemp].[CodeTemp] where [tblTemp].[codeTemp] like "??.*Z"
Tous les code APE finissent par Z, le code de sous-section sont les 2 premiers chiffres et le code de sous-sous-section sont tous les chiffres sauf le Z.
Créer une requête d'ajout pour remplir tblCodeAPE prenant pour source cette requête et faisant des jointures sur les tables tblSousSection et tblSousSousSection pour trouver les clefs correpondantes.
Pour la section je n'ai pas d'astuce mais tu devrais pouvoir les ajouter à la main après si tu n'en a pas des tonnes.
A+
Partager