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
|
Sub importMSA()
Dim nomFichierMSA As String
Dim numFichier As Integer
Dim vFin As Boolean
Dim vNum As Integer
Dim vLigne As String
Dim vMessage As String
Dim vNomFichier As String
Dim cnct As New ADODB.Connection
nomFichierMSA = tbMSA.Text 'chemin du fichier .txt
numFichier = FreeFile 'Génère un descripteur de fichier libre, Définit un numéro de fichier libre
Open nomFichierMSA For Input As numFichier 'Ouvre le fichier (en mode lecture)
vNum = 1
vFin = False
While Not EOF(numFichier) 'Vérifie si la fin du fichier a été atteinte
vFin = False
While Not EOF(numFichier) And Not vFin
Line Input #numFichier, vLigne 'Lit une ligne
If Mid(vLigne, 60, 2) = "10" Then '59 est la position du caractère qui marque le début de la partie à extraire
nomPrenom = Mid(vLigne, 62, 25) 'et 2 correspond au nombre de caractères à renvoyer
numSS = Mid(vLigne, 39, 13)
MsgBox numSS & " " & nomPrenom
cnct.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & tbBDD.Text & ";" ' Connexion à la base de donnée
cnct.Execute "INSERT INTO Employés (numSS, nom) VALUES ('" & Mid(vLigne, 39, 13) & "', '" & Mid(vLigne, 62, 25) & "')"
cnct.Close
Set cnct = Nothing 'Pour être sur que la connexion est bien fermé
End If
If Mid(vLigne, 60, 2) = "20" Then
brutMSA = Mid(vLigne, 88, 11)
vDate = Mid(vLigne, 52, 8)
'MsgBox vDate & " " & brutMSA
cnct.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & tbBDD.Text & ";" ' Connexion à la base de donnée
cnct.Execute "INSERT INTO Salaires (dateSalaire, brutMSA) VALUES ('" & Mid(vLigne, 52, 8) & "', '" & Mid(vLigne, 88, 11) & "')"
cnct.Close
Set cnct = Nothing 'Pour être sur que la connexion est bien fermé
End If
If Mid(vLigne, 60, 2) = "30" Then
codeTypeCotisation = Mid(vLigne, 62, 5)
montant = Mid(vLigne, 87, 12)
'MsgBox codeTypeCotisation & " " & montant
cnct.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & tbBDD.Text & ";" ' Connexion à la base de donnée
cnct.Execute "INSERT INTO Cotisations (typeCotisation, montant) VALUES ('" & Mid(vLigne, 62, 5) & "', '" & Mid(vLigne, 87, 12) & "')"
cnct.Close
Set cnct = Nothing 'Pour être sur que la connexion est bien fermé
End If
Wend
Wend
Close #numFichier 'Ferme le fichier
MsgBox "Opération términée"
End Sub |
Partager