Går det inte med...
If Len(Lm.Name)<1 Then
SqlStr = SqlStr + "('Okänt mappnamn',"
else
SqlStr = SqlStr + "('"&Lm.Name&"',"
End If
4 svar · 372 visningar · startad av Ciliax
Halloj på er alla....
Jag har ett litet bekymmer. Jag har ett activedirectory object som jag skapar på följande sätt...
Set personObject = GetObject("LDAP://sehaln050/"&person)
Det är inga konstigheter med detta.... sen har jag 5 attribut som jag vill ta ut från detta AD objekt. Problemet uppstår när något attribut inte finnes i AD. I detta fall är objektet ett personobjekt och jag skall ta ut exempelvis förnamn och om detta inte finnes så får jag följande felmeddelande:
Active Directory : The directory property cannot be found in the cache.
Så jag har försökt testat om det är ett nullvärde som man får ut, men detta verkar inte gå heller.... utan man får samma fel då oxå... Är det nån som har en smidig lösning så vore jag tacksam!
Bifogar lite kod på det aktuella avsnittet...
Set personObject = GetObject("LDAP://sehaln050/"&person)
SqlStr = "INSERT INTO Behörigheter (Mappnamn,Anstnr,Förnamn,Efternamn,Behörighet) VALUES "
If IsNull(Lm.Name) Then
SqlStr = SqlStr + "('Okänt mappnamn',"
else
SqlStr = SqlStr + "('"&Lm.Name&"',"
End If
If IsNull(personObject.Name) Then
SqlStr = SqlStr + "'okänt användarnamn',"
else
SqlStr = SqlStr + "'"&personObject.Name&"',"
End If
If IsNull(personObject.FirstName) Then
SqlStr = SqlStr + "'Okänt förnamn',"
else
SqlStr = SqlStr + "'"&personObject.FirstName&"',"
End If
If IsNull(personObject.LastName) Then
SqlStr = SqlStr + "'Okänt Efternamn',"
else
SqlStr = SqlStr + "'"&personObject.LastName&"',"
End If
SqlStr = SqlStr & "'"&Rights(MappStr)&"')"
wscript.Echo SqlStr
SqlQuestion(SqlStr)
Går det inte med...
If Len(Lm.Name)<1 Then
SqlStr = SqlStr + "('Okänt mappnamn',"
else
SqlStr = SqlStr + "('"&Lm.Name&"',"
End If
Nej....
problemet är att när jag gör själva anropet i AD för att kolla namnet så verkar det bli problem....
If IsNull(personObject.Name) Then
Här sker en förfrågan till AD om personobjektets namn.... förfrågan måste ju göras för att man ska veta om det finnes ett namn eller inte.... Men det smäller då..... Snälla nån som har nått förslag skulle mottagas med stor tacksamhet.
Hoppas jag är tydlig nog annars förtydligar jag gärna..
MVH Ciliax
Det finns säkerligen något bättre sätt, men man kan alltid använda on error resume next:
on error resume next
strPersonName = personObject.Name
if Err.Number <> 0 then
' Det blev fel, fanns alltså inte.
Err.Clear
End if
strPersonDescription = personObject.Description
if Err.Number <> 0 then
' Det blev fel, fanns alltså inte.
Err.Clear
End if
' . . . . .
on error goto 0
Mvh
Tackar @nders... det löste mina problem... Om nån vet något bättre sätt så vore det itnressant å höra om det.... Annars så fungerade detta utmärkt som sagt.....
Tackar!