Bonjour,

j'ai besoin de d'ouvrir 2 requetes a la fois pour utiliser les données et les exporter sur un fichier txt.

Je suis novice avec l'utilisation des recordset , et il semble que je fais une erreur mais je ne sais pas trop laquelle.
lorsque j'execute ce code, il me donne l'erreur "élément non trouvé dans cette collection " quand je veux utiliser la donnée inclue dans rec2. voir lignes en gras
Quelle l'erreur selon vous ??

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
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
Sub cmd_interfacecoda_Click()

On Error GoTo err
Dim fichier As String, ligne As String, SQL As String, nbligne As String, dossier As String
Dim datecreation As String, timecreation As String
Dim db As DAO.Database: Set db = CurrentDb
Dim rec As DAO.Recordset, rec2 As DAO.Recordset
Dim FSO As New Scripting.FileSystemObject
Dim FichText As Scripting.TextStream

'remplissage et mise a  jour des tables facture et ligne_facture
DoCmd.RunMacro ("facturation - remplissage des tables")

'test si le dossier où on va stocker le fichier exporté existe
dossier = CurrentProject.Path & "\Export METROPOLE CODA"
    If Not (DossierExiste(dossier)) Then
        MkDir dossier
    End If
    
       
SQL = "SELECT facture.cdfacture, facture.typefacture, facture.montantHT, facture.datecomptabilisation, facture.dateecheance, annexe.cdannexe, annexe.typeannexe, contrat.cdcontrat, contrat.typecontrat, contrat.cdclient" & _
        " FROM contrat INNER JOIN (facture INNER JOIN annexe ON facture.cdannexe = annexe.cdannexe) ON contrat.cdcontrat = annexe.cdcontrat" & _
        " WHERE (((facture.datecomptabilisation)=Date()));"

'hypothèse pas d'enregistrements
Set rec = db.OpenRecordset(SQL, dbOpenSnapshot)
If rec.RecordCount = 0 Then
MsgBox "pas de factures a comptabiliser"
Exit Sub
End If

'incrémentation du compteur de sequence de comptabilisation
DoCmd.RunSQL ("INSERT INTO sequencecompta ( dateinterfacage )SELECT Date() AS Expr1;")
Set rec2 = db.OpenRecordset("SELECT Max(sequencecompta.sequencenumber)FROM sequencecompta;", dbOpenSnapshot)
'creation du fichier d'ecritures
    datecreation = Format(Date, "yyyymmdd")
    timecreation = Format(Time(), "hhmmss")
    fichier = dossier & "\" & "METR_CODA_FSER_" & datecreation & "_" & timecreation & ".txt"
    Set FichText = FSO.CreateTextFile(fichier, True)
    TFichier = fichier
    Set FSO = Nothing
    Set FichText = Nothing

'ligne controle
    ligne = ("METRCODA" & rec2![sequencenumber] & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SECKH" & Format(Date, "ddmmyy") & Format(Time(), "hhmm") & " 295         03597004001002003004005006008009010011012013014015016017018019020021022023024025026027030031032089090091092093094095096097119" & Space(270))
EcrireLigne fichier, ligne
    nbligne = 1

' pour chaque enregistrement , faire la boucle

While Not rec.EOF

'ligne entete
     ligne = ("METRCODA" & rec2("sequencenumber") & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & _
     "SEHHZ-F-HONO    " & rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & _
     Format(Date, "yyyymm") & "EUR         " & Format(Date, "ddmmyyyy"))
     EcrireLigne fichier, ligne
    
'ligne 1
    ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO    " & _
          rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00001" & "295.250.622806.ASA" & Space(61) & _
          Replace(Format(rec("montantHT"), "00000000000000.00"), ",", ".") & "2" & Space(36) & "158" & "161" & _
          Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
          Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
          Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
          Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(144) & _
          "D196E       " & Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(103))
    EcrireLigne fichier, ligne
    
'ligne 2
    ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO    " & _
        rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00002" & "295.250.445663.T1960E" & Space(58) & _
        Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(36) & "159" & "161" & _
        Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
        Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
        Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
        Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(32) & Space(64) & Space(18) & _
        "D196E       " & Replace(Format(rec("montantHT"), "00000000000000.00"), ",", ".") & "2" & Space(133))
    EcrireLigne fichier, ligne
    
'ligne 3
    ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO    " & _
        rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00003" & "295.250.401120.FP" & rec("cdclient") & Space(56) & _
        Replace(Format((rec("montantHT") * 1.196), "00000000000000.00"), ",", ".") & "2" & Space(36) & "157" & "160" & _
        Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
        Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
        Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
        Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(32) & Space(64) & Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(163))
    EcrireLigne fichier, ligne
    
    nbligne = nbligne + 4
    rec.MoveNext
    
Wend

'creation du fichier EOF attaché
                
        fichier = dossier & "\" & "METR_CODA_FSER_" & datecreation & "_" & timecreation & ".eof"
        Set FichText = FSO.CreateTextFile(fichier, True)
        TFichier = fichier
             
        Set FSO = Nothing
        Set FichText = Nothing
        
        ligne = rec2("sequencenumber") & Format(nbligne, "000000")
        EcrireLigne fichier, ligne



Exit Sub
err:
MsgBox err.Description
End Sub