Bonjour un petit soucis dans un script vbs qui interroge le ldap

Résolu
cs_droopyv
Messages postés
20
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
27 mars 2009
- 3 févr. 2006 à 10:45
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
- 3 févr. 2006 à 17:38
voila le script :
Je n'arrive pas sortir les noms et d'autre filtre !
L'erreur doit etre enorme, mais je ne vois pas !

Set Fl = Fso.GetFile("c:\tmp\essai.txt")
Set Fso = CreateObject("Scripting.FileSystemObject")

Function existMatriculeMAT(Matricule)


Dim strLDAP,nb,tableau,nom
Dim ADOConnection, ADORecordset1
Set ADOConnection1 = CreateObject("ADODB.Connection")
ADOConnection1.Provider = "ADSDSOObject"
ADOConnection1.Properties("Password") = "motdepasse***"
ADOConnection1.Properties("User ID") = "fd-prod-dir\userreadwrite1"
ADOConnection1.Open
strLDAP = "<LDAP://172.17.230.171/ou=people,DC=fd-prod-dir>;(displayName=" & Matricule & ");azPRID;onelevel"
Set ADORecordset1 = ADOConnection1.Execute(strLDAP)
nb = ADORecordset1.RecordCount
While Not nb = 0
result = result & " " & ADORecordset1.Fields(0).Value
nb = nb - 1
Wend


prid = result
Set ADOConnection1 = Nothing
Set ADORecordset1 = Nothing
End Function
Fl.Write result & VbCrLf

Merci !

5 réponses

econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
3 févr. 2006 à 14:03
Set Fl = Fso.GetFile("c:\tmp\essai.txt")

Set Fso = CreateObject("Scripting.FileSystemObject")



Déjà, là , çà ne serait pas dans l'autre sens ? Tu utilises fso avant de l'avoir initialisé !!



Set Fso = CreateObject("Scripting.FileSystemObject")

Set Fl = Fso.GetFile("c:\tmp\essai.txt")





Manu
3
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
3 févr. 2006 à 14:07
Ensuite, pour que la ligne suivante donne quelque chose :


Fl.Write result & VbCrLf


Il faut que result soit une variable publique de ton module (Elle est mise à jour dans la fonction existMatriculeMAT, mais existe-t-elle en dehors de cette fonction ?

Et il faut l'initialiser à "" avant de la remplir avec les champs de ta BDD.


Manu
3
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
3 févr. 2006 à 14:11
Humm bon ... faudra que je pense à mettre toutes mes remarques dans le même message, je viens de voir autre chose :

A quoi servent les déclarations Set Fso et Set fl ?

Ne seraient-elles pas hors sujet dans ce problème ?

De plus, pourquoi est ce que existMatriculeMAT est une fonction ? Ca ne renvoit rien du tout ?? Ce devrait plutôt être une procédure !
Où est déclarée la variable prid ? la variable nb ?

Manu
3
cs_droopyv
Messages postés
20
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
27 mars 2009

3 févr. 2006 à 15:25
Merci pour tous
pour fso petit pb de copier coller oupss merci

Pour result oublie de ma part
Et en fait la variable prid c un champs dans ldap que je cherche a sortir
et nb = ADORecordset1.RecordCount c juste le nombre de enregistrement rencontré mais en fait je m'en fous.
et les declaration Fso et Fl c'est pour écrire a la fin dans un fichier texte.
Mais cette ligne ADORecordset1.Fields(0).Value n'est pas de moi, il m'a dit que je pouvais renvoyer ce qu'il y avait dans le champs prid de ldap.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
3 févr. 2006 à 17:38
Bonjour,

Il y a trop d'anomalies dans ton script !!!!
Ci-dessous une autre méthode à adapter (loggin,pssw....):

Dim Fso, Db, Rs, MaBaseJor
Set Fso = CreateObject("Scripting.FileSystemObject")


'*********************** Mappage du server OXALYS ************
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
'WshNetwork.RemoveNetworkDrive "U:"
'WshNetwork.MapNetworkDrive "U:", "[file://Oxalys/OXALYS/OXADATA/JOR \\Oxalys\OXALYS\OXADATA\JOR]"


'*********************** Copie Base Access OxaJor du server OXALYS sur poste local ************
'Fso.CopyFile OxaJor, MaBaseJor
'Const OxaJor = "[file://Oxalys/OXALYS/OXADATA/JOR \\Oxalys\OXALYS\OXADATA\JOR]" & "\JOB_DIA7.MDB"
Const PathOut = "d:\Oxauser"
MaBaseJor = PathOut & "JOB_DIA7.MDB"
'Fso.CopyFile OxaJor, MaBaseJor


Saisie = "15/01/2006"
'Conversion de la date saisie (jj/mm/aaaa) au format date SQL (mm/jj/aaaa)
SQL_saisie = "#" & Mid(Saisie , 4, 2) & "/" & Mid(Saisie , 1, 2) & "/" & Mid(Saisie , 7, 4) & "#"
MaTable = "JOB"
MaRequete = "SELECT JOBID,RON,AMJ,DATE_FIN,ABORT,PROJECT,CPU,USER,ELAPSE FROM " & MaTable
MaRequete = MaRequete & " WHERE AMJ > " & SQL_saisie & " ORDER BY AMJ"
'MaRequete = SELECT TOP 10 ...... permet de lire les 10 premiers recordsets
'
'JOBID Rs.Fields(0) : var=jobid nom du job
'RON Rs.Fields(1) : var=ron numéro d''identification du jobid
'AMJ Rs.Fields(2) : var=DatDeb date début du jobid sous la forme jj/mm/aaaa hh:mn:ss
'


Set Db = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MaBaseJor
Rs.Open MaRequete ,Db
MsgBox "ouverture base"
Do While Not Rs.EOF


'MsgBox "recordset: " & Rs.Fields(0) & " " & Rs.Fields(2)
Rs.MoveNext


Loop
Rs.Close
Set Fso = Nothing
Set WshNetwork = Nothing
msgbox "fin du script"
0