Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Dans : news:,
---DGI972--- disait :Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon :
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
Dans : news:mn.b32a7d5be14c3824.33554@NOSPAMlaposte.net,
---DGI972--- disait :
Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]
set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon :
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
Dans : news:,
---DGI972--- disait :Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon :
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
Fred a émis l'idée suivante :Dans : news:,
---DGI972--- disait :Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon
:
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
merci
effectivement
obj_Rec.Fields(1) me retourne la valeur de NOUVEAU
Il me reste a fabriquer un fonction que me retournera la nouvelle valeur qui
sera apellée dans un boucle récursive qui balayera ma totalité de mon
fichier.
A+
Bonjour,
Fred a émis l'idée suivante :
Dans : news:mn.b32a7d5be14c3824.33554@NOSPAMlaposte.net,
---DGI972--- disait :
Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]
set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon
:
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
merci
effectivement
obj_Rec.Fields(1) me retourne la valeur de NOUVEAU
Il me reste a fabriquer un fonction que me retournera la nouvelle valeur qui
sera apellée dans un boucle récursive qui balayera ma totalité de mon
fichier.
A+
Bonjour,
Fred a émis l'idée suivante :Dans : news:,
---DGI972--- disait :Bonjour,
Je dois mettre à jour un fichier txt qui possède des anciens N° de
clients.
[...]set obj_Rec = obj_Con.Execute(ch_SQL)
Nouv = obj_Con.value
Hello,
De mémoire, c'est l'objet obj_Rec qui te renvoie le valeurs de cette façon
:
Nouv = obj_Rec("NOUVEAU")
Anc = obj_Rec("ANCIEN")
obj_Rec.MoveNext
etc ...
Si cela ne fonctionne pas avec les noms de champs, tu dois pouvoir le faire
avec l'indice du champ.
merci
effectivement
obj_Rec.Fields(1) me retourne la valeur de NOUVEAU
Il me reste a fabriquer un fonction que me retournera la nouvelle valeur qui
sera apellée dans un boucle récursive qui balayera ma totalité de mon
fichier.
A+
Bonjour,
Bonjour,
Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
J'ai pas compris la différence avec obj_con et obj_rec ?
Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
lct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " "
& cpt)
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Bonjour,
Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
J'ai pas compris la différence avec obj_con et obj_rec ?
Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
lct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " "
& cpt)
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Bonjour,
Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
J'ai pas compris la différence avec obj_con et obj_rec ?
Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
lct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " "
& cpt)
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Dans : news:,
---DGI972--- disait :Bonjour,
Hello Gilles,Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
Oui.J'ai pas compris la différence avec obj_con et obj_rec ?
Tu te connectes à la base avec obj_con et obj_rec est assimilable à une
grille de résultats que tu obtiens après exécution d'une requête. Dans ton
cas, c'est une grille à une ligne car, logiquement, tu n'as qu'un client qui
correspond à chaque numéro.
C'est d'ailleurs ce que tu oublies de faire : relancer la requête après le
traitement de chaque client. Et tu as une erreur de syntaxe SQL me
semble-t-il. À moins que ce soit un copier/coller malheureux. Vois la suite,
je replace l'instruction au bon endroit.Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Une petite modif ici :
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT " & _
"FROM DBDTEST WHERE ANCIEN="
'ligne suivante à supprimer et à copier plus loin (c'est fait)'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
'Voilà où il faut exécuter la requête
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
'De mémoire, il faut ensuite se positionner sur le premier
enregistrement
'Je ne teste pas si il y a bien un enregistrement, je suppose que oui
(?)
obj_Rec.MoveFirstlct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " " &
cpt)
'Je crois qu'il faut fermer le RecordSet avant de le réutiliser
'À vérifier
pbj_Rec.CloseEnd If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Dis-nous si cela va mieux ainsi.
Je vois que tu as acquis de bonnes bases depuis cet été :-)
Dans : news:mn.c2997d5be2af1215.33554@NOSPAMlaposte.net,
---DGI972--- disait :
Bonjour,
Hello Gilles,
Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
Oui.
J'ai pas compris la différence avec obj_con et obj_rec ?
Tu te connectes à la base avec obj_con et obj_rec est assimilable à une
grille de résultats que tu obtiens après exécution d'une requête. Dans ton
cas, c'est une grille à une ligne car, logiquement, tu n'as qu'un client qui
correspond à chaque numéro.
C'est d'ailleurs ce que tu oublies de faire : relancer la requête après le
traitement de chaque client. Et tu as une erreur de syntaxe SQL me
semble-t-il. À moins que ce soit un copier/coller malheureux. Vois la suite,
je replace l'instruction au bon endroit.
Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Une petite modif ici :
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT " & _
"FROM DBDTEST WHERE ANCIEN="
'ligne suivante à supprimer et à copier plus loin (c'est fait)
'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
'Voilà où il faut exécuter la requête
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
'De mémoire, il faut ensuite se positionner sur le premier
enregistrement
'Je ne teste pas si il y a bien un enregistrement, je suppose que oui
(?)
obj_Rec.MoveFirst
lct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " " &
cpt)
'Je crois qu'il faut fermer le RecordSet avant de le réutiliser
'À vérifier
pbj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Dis-nous si cela va mieux ainsi.
Je vois que tu as acquis de bonnes bases depuis cet été :-)
Dans : news:,
---DGI972--- disait :Bonjour,
Hello Gilles,Est ce que je peux laissé la connection ouverte en début de Script
avec: obj_Con.Open ch_Client & ch_Source ?
Oui.J'ai pas compris la différence avec obj_con et obj_rec ?
Tu te connectes à la base avec obj_con et obj_rec est assimilable à une
grille de résultats que tu obtiens après exécution d'une requête. Dans ton
cas, c'est une grille à une ligne car, logiquement, tu n'as qu'un client qui
correspond à chaque numéro.
C'est d'ailleurs ce que tu oublies de faire : relancer la requête après le
traitement de chaque client. Et tu as une erreur de syntaxe SQL me
semble-t-il. À moins que ce soit un copier/coller malheureux. Vois la suite,
je replace l'instruction au bon endroit.Dim fso, inFile1, outfile, cpt, lct, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
antérieur
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
'Une petite modif ici :
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT " & _
"FROM DBDTEST WHERE ANCIEN="
'ligne suivante à supprimer et à copier plus loin (c'est fait)'Set obj_Rec = obj_Con.Execute(ch_SQL)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lect,1,2)' extraction des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(test,39,12) ' extraction du N° Client (0+11)
'Voilà où il faut exécuter la requête
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
'De mémoire, il faut ensuite se positionner sur le premier
enregistrement
'Je ne teste pas si il y a bien un enregistrement, je suppose que oui
(?)
obj_Rec.MoveFirstlct3 = Mid(test,16,5) ' extraction de l'index
outfile.writeline("ANCIEN: " & obj_Rec.Fields(0) & " NOUVEAU: " &
obj_Rec.Fields(1) & " CLIENT: " & obj_Rec.Fields(2) & " " &
cpt)
'Je crois qu'il faut fermer le RecordSet avant de le réutiliser
'À vérifier
pbj_Rec.CloseEnd If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Dis-nous si cela va mieux ainsi.
Je vois que tu as acquis de bonnes bases depuis cet été :-)
Salut Fred !
Tu m'as reconnu !!!
J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
Salut Fred !
Tu m'as reconnu !!!
J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
Salut Fred !
Tu m'as reconnu !!!
J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
Bonsoir !
<PUB>
En utilisant Paradox, je peux t'indiquer que, effectuer une requête de
remplacement, qui va modifier 1000 enregistrements, sur 2500, prendra moins
d'une seconde sur un ordinateur, et moins de 2 secondes en réseau local non
optimisé. D'ailleurs, chez moi, en réseau, cela prend 0.2 seconde.
</PUB>
@-salutations
Michel Claveau
mél : http://cerbermail.com/?6J1TthIa8B
sites : http://mclaveau.com http://bergoiata.org http://ponx.org
newsgroups (utilisateur: "zoo" passe: "entrer") :
news://news.zoo-logique.org/programmation.Paradox
news://news.zoo-logique.org/ponx
news://news.zoo-logique.org/éàç`?°çïa&ô|~?§@.µ#'
Bonsoir !
<PUB>
En utilisant Paradox, je peux t'indiquer que, effectuer une requête de
remplacement, qui va modifier 1000 enregistrements, sur 2500, prendra moins
d'une seconde sur un ordinateur, et moins de 2 secondes en réseau local non
optimisé. D'ailleurs, chez moi, en réseau, cela prend 0.2 seconde.
</PUB>
@-salutations
Michel Claveau
mél : http://cerbermail.com/?6J1TthIa8B
sites : http://mclaveau.com http://bergoiata.org http://ponx.org
newsgroups (utilisateur: "zoo" passe: "entrer") :
news://news.zoo-logique.org/programmation.Paradox
news://news.zoo-logique.org/ponx
news://news.zoo-logique.org/éàç`?°çïa&ô|~?§@.µ#'
Bonsoir !
<PUB>
En utilisant Paradox, je peux t'indiquer que, effectuer une requête de
remplacement, qui va modifier 1000 enregistrements, sur 2500, prendra moins
d'une seconde sur un ordinateur, et moins de 2 secondes en réseau local non
optimisé. D'ailleurs, chez moi, en réseau, cela prend 0.2 seconde.
</PUB>
@-salutations
Michel Claveau
mél : http://cerbermail.com/?6J1TthIa8B
sites : http://mclaveau.com http://bergoiata.org http://ponx.org
newsgroups (utilisateur: "zoo" passe: "entrer") :
news://news.zoo-logique.org/programmation.Paradox
news://news.zoo-logique.org/ponx
news://news.zoo-logique.org/éàç`?°çïa&ô|~?§@.µ#'
dans : news:
---DGI972--- disait :Salut Fred !
Salut,Tu m'as reconnu !!!
Bien sûr :-)J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
Essaie d'enlever le On Error Resume Next
Il y a peut-être une erreur qui passe inaperçue.On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
La boucle à l'air correcte. Je ne vois pas pourquoi tu n'en sort pas (si
c'est bien ce qui se passe)Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
'Attention ici : si tu fermes le recordset dans la boucle,
'tu vas avoir une erreur à la ligne qui suit. Supprime.obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
'Il faut fermer les fichiers.
inFile.Close
outFile.CloseSet dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
À mon avis, le fait de supprimer le On Error Resume Next devrait
t'apporter des informations supplémentaires.
Je vois que tu prend les deux premiers caractères de chaque ligne. Es-tu
sûr que chaque ligne contient au moins deux caractères ?
Ah, je viens de voir LE problème. Tu ouvres un fichier inFile et tu
utilises ensuite inFile (sans le 1)
Je crois que c'est la principale cause de ta boucle infinie (avec le
Resume next)
dans : news:mn.c45a7d5bf6ba8e81.33554@NOSPAMlaposte.net
---DGI972--- disait :
Salut Fred !
Salut,
Tu m'as reconnu !!!
Bien sûr :-)
J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
Essaie d'enlever le On Error Resume Next
Il y a peut-être une erreur qui passe inaperçue.
On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
La boucle à l'air correcte. Je ne vois pas pourquoi tu n'en sort pas (si
c'est bien ce qui se passe)
Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
'Attention ici : si tu fermes le recordset dans la boucle,
'tu vas avoir une erreur à la ligne qui suit. Supprime.
obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
'Il faut fermer les fichiers.
inFile.Close
outFile.Close
Set dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
À mon avis, le fait de supprimer le On Error Resume Next devrait
t'apporter des informations supplémentaires.
Je vois que tu prend les deux premiers caractères de chaque ligne. Es-tu
sûr que chaque ligne contient au moins deux caractères ?
Ah, je viens de voir LE problème. Tu ouvres un fichier inFile et tu
utilises ensuite inFile (sans le 1)
Je crois que c'est la principale cause de ta boucle infinie (avec le
Resume next)
dans : news:
---DGI972--- disait :Salut Fred !
Salut,Tu m'as reconnu !!!
Bien sûr :-)J'ai modifié le code:
Dim fso, inFile1, outfile, cpt, lct, lct2, lct3, lct1
Essaie d'enlever le On Error Resume Next
Il y a peut-être une erreur qui passe inaperçue.On Error Resume next
Const ForReading = 1
Const ForWriting = 2
f1 = fso.GetFile("C:TESTPROGRAML_ANC.TXT") ' suprimme le fichiers
f1.Delete
Set fil2 = fso.CreateTextFile("C:TESTPROGRAML_ANC.TXT", True)
'Fichier qui contient les lignes a changer
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile1 = fso.OpenTextFile("C:TESTFICH", ForReading,False)
Set outfile = fso.OpenTextFile("C:TESTPROGRAML_ANC.TXT",
ForWriting,True)
Cpt = 1
Dim obj_Con
Dim obj_Rec
Dim ch_Source
Dim ch_SQL
Set obj_Con=CreateObject("ADODB.connection")
ch_Client = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ch_Source = "C:TESTDBDTEST.mdb"
obj_Con.Open ch_Client & ch_Source
ch_SQL = "SELECT ANCIEN,NOUVEAU,CLIENT FROM DBDTEST WHERE ANCIEN
="
La boucle à l'air correcte. Je ne vois pas pourquoi tu n'en sort pas (si
c'est bien ce qui se passe)Do While inFile.AtEndOfStream <> True
lct = inFile.ReadLine ' Lecture de la ligne complète
lct1 = Mid(lct,1,2)' extrac des 2 premiers caractères
If lct1="40" then ' si @ il faut remplacer le numéros de client
lct2 = Mid(lct1,40,9) ' extrac du N° Client (9)
lct3 = Mid(lct1,16,5) ' extraction de l'index
Set obj_Rec = obj_Con.Execute(ch_SQL & "'" & lct2 & "'")
obj_Rec.MoveFirst
outfile.writeline("INDEX: " & lct3 & " ANCIEN: " & lct2 & "
NOUVEAU: " & obj_Rec.Fields(1) & " CLIENT: " &
obj_Rec.Fields(2) & " " & cpt)
obj_Rec.Close
End If
Cpt = Cpt + 1
Loop
' Libère les variables objets.
'Attention ici : si tu fermes le recordset dans la boucle,
'tu vas avoir une erreur à la ligne qui suit. Supprime.obj_Rec.close
obj_Con.close
Set obj_Rec = Nothing
Set obj_Con = Nothing
'Il faut fermer les fichiers.
inFile.Close
outFile.CloseSet dic = Nothing
Set fso = Nothing
Set inFile = Nothing
Set outfile = Nothing
Il avait beaucoup d'erreur de variable, mais toujours pareil:
avec ou sans obj_Rec.Close
100 % du processeur a fond, le fichier outfile L_ANC.TXT est créé mais
reste vide et le Script ne s'arrête pas 1/4 heure aprés il pédale
toujours.
Au secours HELP SOS Please.
À mon avis, le fait de supprimer le On Error Resume Next devrait
t'apporter des informations supplémentaires.
Je vois que tu prend les deux premiers caractères de chaque ligne. Es-tu
sûr que chaque ligne contient au moins deux caractères ?
Ah, je viens de voir LE problème. Tu ouvres un fichier inFile et tu
utilises ensuite inFile (sans le 1)
Je crois que c'est la principale cause de ta boucle infinie (avec le
Resume next)