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 :
Merci de votre aide
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
pitchalov
Partager