Bonjour à tous!

Encore un problème pour moi en vbs!!
Voilà je me sers de connections ADODB pour récupérer des infos dans des fichiers csv. Jusque là pas de problème, mais dans mon nouveau script j'ai 2 fichiers csv à parcourir (en même temps), et là c'est le drame : Lors de l'ouverture de la 2eme connection (méthode open), le script génère une erreur "Cette opération n'est pas autorisée si l'objet est ouvert".

Je ne peux pas utiliser les mêmes objets connection ADODB pour les recordsets car les fichier csv ne se situent pas dans le même dossier, et je ne peux pas faire autrement.
Est-ce qu'il y a une autre possibilité?

Voilà mon code :
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
 
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
 
Const STR_ROOT_PATH = "C:\"
Const STR_CSV_FILE_ONE = "file.csv"
 
Set objConnectionPrinterServer = CreateObject("ADODB.Connection")
Set objRecordSetPrinterServer = CreateObject("ADODB.Recordset")
Set objConnectionCasParticulier = CreateObject("ADODB.Connection")
Set objRecordSetCasParticulier = CreateObject("ADODB.Recordset")
 
strOldName = "toto"
 
objConnectionPrinterServer.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & STR_ROOT_PATH & ";" & _
	"Extended Properties=""text;HDR=YES;FMT=Delimited"""
 
objRecordSetPrinterServer.Open "SELECT * FROM " & STR_CSV_FILE_ONE, _
	objConnectionPrinterServer, adOpenStatic, adLockOptimistic, adCmdText
 
Do Until objRecordSetPrinterServer.EOF
 
	strCsvFilePath = STR_ROOT_PATH & "folder\"
	strParticularCaseCsvFileName = "file2.csv"
 
	'Cas particulier
	If objFso.FileExists(strCsvFilePath & strParticularCaseCsvFileName) Then
		objConnectionCasParticulier.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
			"Data Source=" & strCsvFilePath & ";" & _
			"Extended Properties=""text;HDR=YES;FMT=Delimited"""
 
		objRecordsetCasParticulier.Open "SELECT * FROM " & strParticularCaseCsvFileName & " WHERE  strInitPrt='" & strOldName & "'", _
			objConnectionCasParticulier, adOpenStatic, adLockOptimistic, adCmdText
 
			Do Until objRecordsetCasParticulier.EOF
				strNewPort = objRecordsetCasParticulier.Fields.Item("strNewPrt")
				objRecordsetCasParticulier.MoveNext
			Loop
			objRecordsetCasParticulier.Close
	End If
	WScriot.Echo strNewPort
	objRecordSetPrinterServer.MoveNext
Loop
Merci de votre aide
pitchalov