Discussion:
AD-Objekt einer Variablen zuweisen?
(zu alt für eine Antwort)
Christof Zottmann
2010-02-09 13:47:21 UTC
Permalink
Hallo,

ich habe hier ein Script aus dem Netz, welches AD-Daten ausließt und in
Excel einträgt und wollte das etwas anpassen.

Erst sah das ganze so aus (Codeschnipsel):

'Überschriften:
objExcel.ActiveSheet.Cells(1, 9).Value = "Telefon"
objExcel.ActiveSheet.Cells(1, 10).Value = "Mobil"
objExcel.ActiveSheet.Cells(1, 11).Value = "E-Mail"

set objuser = getObject ("LDAP://" &
objRecordset.Fields("distinguishedName").value)

objExcel.ActiveSheet.Cells(x, 9).Value = objuser.telephoneNumber
objExcel.ActiveSheet.Cells(x, 10).Value = objuser.mobile
objExcel.ActiveSheet.Cells(x, 11).Value = objuser.mail


Ich wollte das ganze etwas übersichtlicher haben und habe es so umgebaut:

F=F+1 : Titel(F) = "Mobil" : Feld(F) = objuser.mobile
F=F+1 : Titel(F) = "Telefon" : Feld(F) = objuser.telephoneNumber
F=F+1 : Titel(F) = "E-Mail" : Feld(F) = objuser.mail

'Bei der Überschrift geht das natürlich ohne Probleme...
for t = LBound(Titel) to UBound(Titel)
objExcel.ActiveSheet.Cells(1, 8 + t).Value = Titel(t)
next

'...aber nicht mehr beim AD-Objekt:
for t = LBound(Titel) to UBound(Feld)
objExcel.ActiveSheet.Cells(x, 8 + t).Value = Feld(t)
next


Warum es nicht geht, ist mir auch klar, aber mir fällt keine Lösung ein.
Ich bin in VBS nicht so fit wie in Powerbuilder, dort kann man nämlich
eine Variable vom jeweiligen Typ definieren und diese Variable verhält
sich dann auch genau so wie das Objekt. Geht das auch in VB?

Viele Grüße
Thomas Gahler
2010-02-23 06:09:52 UTC
Permalink
Hallo Christof

Habe dein Posting schon mehrmals angeschaut, jetzt habe ich es wohl
(teilweise) durchschaut...

Der Code ist mit zusätzliche Zeilen versehen, aber nihct getestet, sollte
eher als Hinweis für dich sein.


Type TDaten
Mobile
Telefon
EMail
end Type
Dim Feld() as TDaten
F=F+1 : Titel(F) = "Mobil" : Feld(F).Mobile = objuser.mobile
F=F+1 : Titel(F) = "Telefon" : Feld(F).Telefon = objuser.telephoneNumber
F=F+1 : Titel(F) = "E-Mail" : Feld(F).EMail = objuser.mail
'Bei der Überschrift geht das natürlich ohne Probleme...
for t = LBound(Titel) to UBound(Titel)
objExcel.ActiveSheet.Cells(1, 8 + t).Value = Titel(t)
next
for t = LBound(Titel) to UBound(Feld)
objExcel.ActiveSheet.Cells(x, 1 + t).Value = Feld(t).Mobile
objExcel.ActiveSheet.Cells(x, 2 + t).Value = Feld(t).Telefon
objExcel.ActiveSheet.Cells(x, 3 + t).Value = Feld(t).EMail
next
Und wo dein x her kommt weiss ich auch nicht.
--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)
Loading...