Bonjour un petit soucis dans un script vbs qui interroge le ldap [Résolu]

cs_droopyv 20 Messages postés lundi 27 janvier 2003Date d'inscription 27 mars 2009 Dernière intervention - 3 févr. 2006 à 10:45 - Dernière réponse : cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention
- 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 !
Afficher la suite 

5 réponses

Meilleure réponse
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 3 févr. 2006 à 14:03
3
Merci
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

Merci econs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Meilleure réponse
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 3 févr. 2006 à 14:07
3
Merci
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

Merci econs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Meilleure réponse
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 3 févr. 2006 à 14:11
3
Merci
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

Merci econs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

cs_droopyv 20 Messages postés lundi 27 janvier 2003Date d'inscription 27 mars 2009 Dernière intervention - 3 févr. 2006 à 15:25
0
Merci
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.
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 3 févr. 2006 à 17:38
0
Merci
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"

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.