Bonjour,
je dois ecrire dans un fichier txt les enregistrements d'une requete lors de l’exécution j'obtiens l'erreur 94 et je n'arrive pas à résoudre le pb.
je vous joins le code vba associé
il s'arrete sur la ligne 60 quand eje demande un deboguage.
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 Private Sub Commande1_Click() Dim oFSO As Scripting.FileSystemObject Dim oFl As Scripting.File Dim oTxt As Scripting.TextStream Dim i As Integer Dim nomfichier, nomrequete, datefic, ligne1 As String Dim lignesuiv, lignesuiv2, lignesuiv3 As String 'Dim qdf As DAO.QueryDef Dim drendezvous, censemble, cetage, cporte, cbatiment As String Dim cescalier As String '--------------------------------- Dim enr As DAO.Recordset Set enr = Me.Recordset '<== pour travailler sur les données ' Libération de la référence '------------------------------------------------------------ lignesuiv = "" nomfichier = "c:\netoi\NOI974_" monmsg = MsgBox(Me.DateDeb, vbOKOnly) 'transforme la chaine date en format date 'cdate( 'Récupère la date du jour au format anglais et transforme en chaine de caratères datefic = Str(Format(Me.DateDeb, "yyyymmdd")) datefic = LTrim(datefic) nomfichier = nomfichier + datefic + "_01" + ".dsp" monmsg = MsgBox("Génération du fichier " & nomfichier, vbOKOnly) 'Instanciation du FSO Set oFSO = New Scripting.FileSystemObject Set oTxt = oFSO.CreateTextFile(nomfichier, True) ligne1 = "NOI974;" + datefic + ";DSP;3.0;RE" oTxt.WriteLine (ligne1) 'Se positionne sur le 1er enregistrement de la requete If Not enr.EOF Then enr.MoveFirst Do 'On récupère les données mon enregistrement encours 'On vérifie que ces champs ne sont pas vide car la fonction writeln n'ecrit pas de donnés vides If Me.[DATE DE RENDEZ-VOUS] = "" Then drendezvous = LTrim(Str(Format(Me.[DATE DE RENDEZ-VOUS], "yyyymmdd"))) Else drendezvous = " " End If If Me.ENSEMBLE = "" Then censemble = " " Else censemble = Me.ENSEMBLE End If If Me.BATIMENT = "" Then cbatiment = " " Else cbatiment = Me.BATIMENT End If If Me.ESCALIER = "" Then cescalier = " " Else cescalier = Me.ESCALIER End If If Me.ETAGE = "" Then cetage = " " Else cetage = Me.ETAGE End If If Me.PORTE = "" Then cporte = " " Else cporte = Me.PORTE End If lignesuiv = Me![STATUS] + ";" + Me.[ORDRE] + ";" + Me.[TYPE DE RACCORDEMENT] + ";" + Me.[STATUS DE RACCORDEMENT] + ";" + Me.[TYPE DE DEGROUPAGE] + ";" + Me.[TECHNOLOGIE] + ";;" + Me.[PROFIL] + ";;" + Me.[BI-INJECTION] + ";;;;;" + Me.[IDENTIFIAN DE RACCORDEMENT] + Me.[LIGNE ASSOCIEE] + ";;;;;;;NOI974" + Me.NUMCONTRAT + ";" + Me.Z0BPQ + ";;;;;;;;;;;;;;;;;;;;;;;;;;" + drendezvous + ";" + Me.[CRENEAU RENDEZVOUS] + ";;;;;;;;;;;;;;;;;;;;;;" + Me.NOMPRENOMS + ";" + Me.[LIBELLE DE LA VOIE] + ";" + Me.[CODE RIVOLI] + ";" + Me.[NUM DE LA VOIE] + ";" + censemble + ";" + cbatiment + ";" + toto + ";" + cetage + ";" + cporte + ";;" + Me.[CODE INSEE] + ";" + Me.VILLE + ";" + Me.NOMPRENOMS + ";" + Me.[GSM CLIENT] + ";Contact NETOI;0692046570;;;" + Me.[TYPE TECHNOLOGIE MODEM] + ";" + Me.[REGIME SAV] + ";" + Me.[NBRE DE PAIRE] + ";;;;;;;;;" oTxt.WriteLine (lignesuiv) 'On passe à l'enregistrement suivant enr.MoveNext Loop Until enr.EOF = True End Sub
Merci d'avance pour votre aide
Partager