Bonjour a tous,

Je suis actuellement entrain de développer une application en VB6. Le but de mon application est d'ouvrir un fichier .txt pour les insérer dans ma base de données Access 2003 (En quelque sorte je dév une Moulinette).

J'arrive a récupérer des données de mon fichier .Txt et les afficher dans un MsgBox. Cependant lorsque je veux insérer des données dans une table, j'y arrive, mais lorsque je veux insérer des données dans plusieurs tables (en l'occurrence 3) j'ai l'erreur suivante:

Erreur d'éxecution '-2147467259 (80004005)
"Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans las table 'Employés'

J'ai regarder sur la toile mais je n'ai rien trouvé. C'est la raison pour laquelle je viens vous voir.

Pour précision, je suis débutant en vb6 (Mon application est ma première en vb6).

Voici mon code qui appel la fonction "importMSA":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Private Sub btnTraiterMSA_Click()
    If tbBDD.Text = "Choisir la base de données" Then
        MsgBox ("Veuillez sélectionner une base de données avant de vouloir traiter le fichier MSA ")
    Else
        Call importMSA
    End If
End Sub
et voici ma code d'import:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Et L'erreur se situe au niveau de la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
cnct.Execute "INSERT INTO Salaires (dateSalaire, brutMSA) VALUES ('" & Mid(vLigne, 52, 8) & "', '" & Mid(vLigne, 88, 11) & "')"
Merci pour votre aide, car je ne vois pas comment faire. J'espère avoir était assez claire.
Cordialement.