ouvrir 2 connections ADODB en même temps
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:
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