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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
Private Sub Cmd_Mise_a_jour_Click()
Dim SQL10, SQL11, result, result2 As String
Dim SqlStr As String, Db As DAO.Database
Dim daterecuperedelatable, tes As String
Dim oApp As Excel.Application
Dim oWkb As Excel.Workbook
Dim oWSht As Excel.Worksheet
Dim comptagenouveau As Long
Dim testexistenceFichie As String
Dim msgbox_test As String
'On Error GoTo Err_Cmd_Mise_a_jour_Click '#Actuellement coupés afin de pouvoir visualiser les erreurs
result = DLookup("[chemins d'acces alsace]", "T_table_date_mise_à_jour") '# Chemins d'accés au excel
result2 = DLookup("[feuille alsace]", "T_table_date_mise_à_jour")
testexistenceFichie = Dir(result) ' test existence du premier fichier
If testexistenceFichie = "" Then
msgbox_test = MsgBox("Fichier ALSACE inexistant, Vérifier le chemin d'accés, données non importés", vbCritical)
Forms!F_frm_option.Show
Else
'On Error Resume Next 'Essai de code pour vérifier si le fichier est déja ouvert ou pas
'Windows(result).Activate
' If Err = 0 Then
' msgbox_test = MsgBox("Fichier Alsace utilisé par un autre utilisateur ou déjà ouvert")
' GoTo Err_Cmd_Mise_a_jour_Click
' Else
Set oApp = CreateObject("excel.application")
Set oWkb = oApp.Workbooks.Open(result) 'mettez ici le chemin vers votre fichier Excel
Set oWSht = oWkb.Worksheets(result2) 'mettez ici le nom de la feuille qui contient les données à importer
comptagenouveau = 0
i = 1 'première ligne ou commence l'import pour eviter d'importer les entêtes du fichier excel
DoCmd.SetWarnings False 'pour éviter les messages lors de l'ajout des enregistrements
While oWSht.Range("C" & i).Value <> "" '(où C représente la colonnede Id national et i la ligne)'condition de remplissage de la table => eviter les doublons si l'enregistrement existe déjà dans la table destination, on passe à la ligne suivante sans l'importer
If DCount("*", "[T_Importation_PPV_Alsace_Lorraine]", "[ID national site] LIKE '" & oWSht.Cells(i, 1) & "'") = 0 Then
cSQL = " insert into [T_Importation_PPV_Alsace_Lorraine] ( [Délégation], [Centre régional],[ID national site], [Nom du site], [Contractant], [Commune], [code INSEE], [Type de site], [Fililale], [Adresse], [identifiant libre local], [Domaine Fonctionnel]) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 5) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 6) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 34) & Chr(34) & ");"
comptagenouveau = comptagenouveau + 1
DoCmd.RunSQL cSQL
End If
If DCount("*", "[T_Importation_PPV_Alsace_Lorraine]", "[ID national site] LIKE '" & oWSht.Cells(i, 1) & "'") = 1 Then
End If
i = i + 1 'on incrémente la variable i pour passer à la ligne suivante
Wend
oWkb.Save
oApp.Quit
Set oWSht = Nothing
Set oWbk = Nothing
Set oApp = Nothing
Set Db = Nothing
'End If
End If ' J'ai procéder exactement de la même maniere pour vérifier et importer l'autre fichier
result = DLookup("[chemins d'acces lorraine]", "T_table_date_mise_à_jour")
reult2 = DLookup("[feuille lorraine]", "T_table_date_mise_à_jour")
testexistenceFichie = Dir(result)
If testexistenceFichie = "" Then
msgbox_test = MsgBox("Fichier LORRAINE inexistant, Vérifier le chemin d'accés, données non importés", vbCritical)
Forms!F_frm_option.Show
Else
'Workbooks(result).Activate
' If Err = 1004 Then
' ' msgbox_test = MsgBox("Fichier lorraine utilisé par un autre utilisateur ou déjà ouvert")
' oWkb.Save
' oApp.Quit
' Set oWSht = Nothing
' Set oWbk = Nothing
'Set oApp = Nothing
'Set Db = Nothing
Set oApp = CreateObject("excel.application")
Set oWkb = oApp.Workbooks.Open(result) 'mettez ici le chemin vers votre fichier Excel
Set oWSht = oWkb.Worksheets(result2) 'mettez ici le nom de la feuille qui contient les données à importer
While oWSht.Range("C" & i).Value <> "" '(où C représente la colonnede Id national et i la ligne)
If DCount("*", "[T_Importation_PPV_Alsace_Lorraine]", "[ID national site] LIKE '" & oWSht.Cells(i, 1) & "'") = 0 Then
'cSQL = " insert into [T_Importation_PPV_Alsace_Lorraine] ( [Délégation], [Centre régional],[ID national site], [Nom du site], [Contractant], [Commune], [code INSEE], [Type de site], [Fililale], [Adresse], [identifiant libre local], [Domaine Fonctionnel], [Champ13] ) values ("" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 5) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 6) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 34) & Chr(34) & "", "" & Chr(34) & oWSht.Cells(i, 35) & Chr(34) & "");"
cSQL = " insert into [T_Importation_PPV_Alsace_Lorraine] ( [Délégation], [Centre régional],[ID national site], [Nom du site], [Contractant], [Commune], [code INSEE], [Type de site], [Fililale], [Adresse], [identifiant libre local], [Domaine Fonctionnel]) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 5) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 6) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 8) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 10) & Chr(34) & ", "" & oWSht.Cells(i, 11) &"", " & Chr(34) & oWSht.Cells(i, 14) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 34) & Chr(34) & ");"
comptagenouveau = comptagenouveau + 1
DoCmd.RunSQL cSQL
End If
If DCount("*", "[T_Importation_PPV_Alsace_Lorraine]", "[ID national site] LIKE '" & oWSht.Cells(i, 1) & "'") = 1 Then
End If
i = i + 1 'on incrémente la variable i pour passer à la ligne suivante
Wend
oWkb.Save
oApp.Quit
Set oWSht = Nothing
Set oWbk = Nothing
Set oApp = Nothing
Set Db = Nothing
End If
'Mise à jour de l'historique
SQL10 = " Insert into [T_tableau_historique]([Date],[description]) values (now(), " & Chr(34) & comptagenouveau & " nouveau(x) site(s) ont été ajoutés " & Chr(34) & ")"
DoCmd.RunSQL SQL10
' requête modif-retour chariot
'SQL11 = " UPDATE T_Importation_PPV_Alsace_Lorraine SET T_Importation_PPV_Alsace_Lorraine.Adresse = ChangeStr([Adresse],Chr$(10),Chr$(13) & Chr$(10),0)"
'DoCmd.RunSQL SQL11
CurrentDb.QueryDefs("Requête2").SQL = SQL
DoCmd.SetWarnings True 'on réactive les messages d'erreurs
MsgBox "Import des fichier Excel réussi.", vbInformation + vbOKOnly, "Opération terminée..."
Set Db = CurrentDb
If DCount("*", "T_table_date_mise_à_jour") = 0 Then
SqlStr = "INSERT INTO T_table_date_mise_à_jour(Mise_a_jour) VALUES (now())"
Else
SqlStr = "UPDATE T_table_date_mise_à_jour SET T_table_date_mise_à_jour.Mise_a_jour = date();"
End If
Db.Execute (SqlStr)
Me.txt_datenn.Requery
Me.txt_datenn.ForeColor = QBColor(0) '(Pour le rouge)
Me.lbl_derniere_maj.ForeColor = QBColor(0)
Forms!F_MENU_PRINCIPAL.Refresh
Exit_Cmd_Mise_a_jour_Click:
Exit Sub
Err_Cmd_Mise_a_jour_Click:
MsgBox Err.description
oWkb.Save
oApp.Quit
Set oWSht = Nothing
Set oWbk = Nothing
Set oApp = Nothing
Set Db = Nothing
Resume Exit_Cmd_Mise_a_jour_Click
End Sub |
Partager