1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| Option Explicit
' Avec référence microsoft DAO 3.6 Object Library
Dim Donneestxt As DAO.Database
Dim Appli As Object
Dim Creation As Object
Dim Enregistrement As String
Dim Chemin As String
Dim NomFichier As String
Dim TexteRequete As String
Dim Requete As Recordset
Dim ChampsTempA As String
Dim Depart As Date
Dim TempsTotal As String
Dim NbLigne As Long
Dim CompA As Integer
Dim CompB As Integer
Sub test()
Dim NbLigne As Long
Depart = Time
Chemin = "C:\Users\ibwa\Desktop\test\"
NomFichier = "table_provisions_cedees.txt"
Set Donneestxt = DAO.OpenDatabase(Chemin, False, False, "Text;Database=" & Chemin)
Set Appli = CreateObject("Scripting.FileSystemObject")
Set Creation = Appli.CreateTextFile(Chemin & "schema.ini", True)
Creation.Write "[" & NomFichier & "]" & vbCrLf
Creation.Write "Format=Delimited(;)" & vbCrLf
Creation.Write "ColNameHeader = True" ' Problème avec les entêtes de champs du fichier fichierdebase.txt (Peut être _)?
Creation.Write "" & vbCrLf
Creation.Write "[TempA.txt]" & vbCrLf
Creation.Write "Format=Delimited(;)" & vbCrLf
Creation.Write "ColNameHeader = True"
Creation.Write "" & vbCrLf
Creation.Write "[TempB.txt]" & vbCrLf
Creation.Write "Format=Delimited(;)" & vbCrLf
Creation.Write "ColNameHeader = True"
Application.StatusBar = "Premier traitement du fichier de base"
Dim Lecture As String
Set Creation = Appli.CreateTextFile(Chemin & "TempB.txt", True)
Open Chemin & NomFichier For Input As #1
Do While Not EOF(1)
Input #1, Lecture
If Not IsNumeric(Split(Lecture, ";")(0)) Then ' si le premier enregistre n'est pas un numérique
' on condidére que c'est les entêtes et on replace le "." par "_"
' Si tous les premiers enregistremets ne sont pas des numériques on adaptera
Creation.Write Replace(Lecture, ".", "_") & vbCrLf
Else
Creation.Write Lecture & vbCrLf
End If
Loop
Close #1
' Création du fichier Temporaire
Set Creation = Appli.CreateTextFile(Chemin & "TempA.txt", True)
ChampsTempA = "LINE;"
ChampsTempA = ChampsTempA & "DATE_BILAN;"
ChampsTempA = ChampsTempA & "REFERENTIEL;"
ChampsTempA = ChampsTempA & "CONTEXTE;"
ChampsTempA = ChampsTempA & "VERSION;"
ChampsTempA = ChampsTempA & "SCENARIO;"
ChampsTempA = ChampsTempA & "METHODE;"
ChampsTempA = ChampsTempA & "SURVENANCE;"
ChampsTempA = ChampsTempA & "GENERATION;"
ChampsTempA = ChampsTempA & "SOCIETE;"
ChampsTempA = ChampsTempA & "CANTON;"
ChampsTempA = ChampsTempA & "RISQUE;"
ChampsTempA = ChampsTempA & "GARANTIE;"
ChampsTempA = ChampsTempA & "LOB;"
ChampsTempA = ChampsTempA & "OUTIL;"
ChampsTempA = ChampsTempA & "SEGMENT;"
ChampsTempA = ChampsTempA & "CODE_PROV;"
ChampsTempA = ChampsTempA & "NATURE_TECHNIQUE_PROV;"
ChampsTempA = ChampsTempA & "CODE_AMORTISSEMENT;"
ChampsTempA = ChampsTempA & "CODE_DEVISE;"
ChampsTempA = ChampsTempA & "MONTANT_DEVISE;"
ChampsTempA = ChampsTempA & "MONTANT_EURO;"
ChampsTempA = ChampsTempA & "TIERS;"
ChampsTempA = ChampsTempA & "TYPE_TRAITE;"
ChampsTempA = ChampsTempA & "FORME_TRAITE;"
ChampsTempA = ChampsTempA & "RISQUE_REASS;"
ChampsTempA = ChampsTempA & "LOB_REASS;"
ChampsTempA = ChampsTempA & "TP_SUPPORT;"
ChampsTempA = ChampsTempA & "ACT_PASS"
Creation.Write ChampsTempA & vbCrLf ' on écrit les entêtes de champs
' Création des champs à remonter
TexteRequete = "LINE,"
TexteRequete = TexteRequete & "DATE_BILAN,"
TexteRequete = TexteRequete & "REFERENTIEL,"
TexteRequete = TexteRequete & "CONTEXTE,"
TexteRequete = TexteRequete & "VERSION,"
TexteRequete = TexteRequete & "SCENARIO,"
TexteRequete = TexteRequete & "METHODE,"
TexteRequete = TexteRequete & "SURVENANCE,"
TexteRequete = TexteRequete & "GENERATION,"
TexteRequete = TexteRequete & "SOCIETE,"
TexteRequete = TexteRequete & "CANTON,"
TexteRequete = TexteRequete & "RISQUE,"
TexteRequete = TexteRequete & "GARANTIE,"
TexteRequete = TexteRequete & "LOB,"
TexteRequete = TexteRequete & "OUTIL,"
TexteRequete = TexteRequete & "SEGMENT,"
TexteRequete = TexteRequete & "CODE_PROV,"
TexteRequete = TexteRequete & "NATURE_TECHNIQUE_PROV,"
TexteRequete = TexteRequete & "CODE_AMORTISSEMENT,"
TexteRequete = TexteRequete & "CODE_DEVISE,"
TexteRequete = TexteRequete & "MONTANT_DEVISE,"
TexteRequete = TexteRequete & "MONTANT_EURO,"
TexteRequete = TexteRequete & "TIERS,"
TexteRequete = TexteRequete & "TYPE_TRAITE,"
TexteRequete = TexteRequete & "FORME_TRAITE,"
TexteRequete = TexteRequete & "RISQUE_REASS,"
TexteRequete = TexteRequete & "LOB_REASS,"
TexteRequete = TexteRequete & "TP_SUPPORT,"
TexteRequete = TexteRequete & "ACT_PASS"
Application.StatusBar = "Première Requête"
'Requête dans TempB et non plus dans le fichier d'origine
TexteRequete = "SELECT " & TexteRequete & "" & _
"FROM [TempB.txt]"
' éxécute la requête
Set Requete = Donneestxt.OpenRecordset(TexteRequete, DAO.dbOpenSnapshot) |
Partager