Enno Geschrieben 17. November 2009 Teilen Geschrieben 17. November 2009 Hi, ich suche ein Script, das mir in MS-Access 2003 eine Tabelle aufbaut. Diese soll wie folgt aussehen: Username - Mailadresse Das soll er für alle SMTP Maialdresse machen die er findet. Es kann für 1 User auch mehrere Adressen geben. Diese sollen als mehrere Zeilen eingetragen werden in die Tabelle. Am Anfang de sScripts muss die Tabelle gelöscht werden / geleert werden. Je nachdem wie es einfacher ist. Ach, ich hab keinen blassen Dunst vom Programmieren bzw. VB Programmieren. Danke schonmal für Hilfen oder Anregungen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 (bearbeitet) wenn mir keiner Hilft muss ich es leider selber lernen Option Compare Database Sub test() Dim db As DAO.Database ' Verweis DAO Dim strSQL As String Set db = CurrentDb Set objContainer = GetObject("LDAP://OU=EDV,OU=Benutzer,dc=Domainname,dc=de") objContainer.Filter = Array("user") For Each objUser In objContainer strSQL = "INSERT INTO [User] " & _ "([Name],[Account],[Mailadresse]) " & _ "VALUES ('" & objUser.FullName & "', " & _ "'" & objUser.sAMAccountName & "', " & _ "'" & objUser.mail & "');" db.Execute strSQL, 128 'dbFailOnError Next objUser End Sub So funktioniert es. Jetzt steht aber im Tabellenfeld Mailadresse die händisch einzutragende Adresse auf der Hautseite. Wir haben aber leider bei vielen Usern mehrere Mailadressen als SMTP hinterlegt. Diese gibts ja eigentlich unter: proxyaddresses ?? Wie kann ich diese nun auslesen das ich am besten für jede Mailadresse einen Eintrag in der Tabelle habe? Bearbeitet 19. November 2009 von Enno Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thanks-and-Goodbye Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 Enno, ich schubs dich mal runter zu den Programmiereren, da bist du glaub ich besser aufgehoben. Grueni, auffangen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 wollt dir grad ne pn schicken das du mich doch mal hierher verschieben sollst. Danke mal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eratum Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 Mit for each item in objUser.proxyaddresses wscript.echo item next kommst du an die ganzen Einträge ran. Und die Werte kannst du doch einfach Kommaseperiert in deine DB werfen, oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 wie die auch immer drin stehen ist mir im ersten Schritt egal. Am einfachsten wäre es für mich wenn eben jede Mailadresse einzeln drinsteht. wie im ersten post schon geschrieben. ich hab keine wirkliche ahnung von VBS und der CodeSchnipsel oben ist auch nur mit google gefunden. Problem hinter dem ganzen ist: Wir haben nen DMS in dem alle Mails archiviert werden. In diesem DMS gibts die Felder: Absender / Empfänger / CC Hier stehen die Mailadressen der User drin. Allerdings gibt es eben für manche User mehrere Möglichkeiten. Nun kann das DMS den Zugriff anhand von FeldFiltern regeln. Wenn nun in einem Feld der Username drinsteht kann ich sagen du hast nur zugriff auf die Mails bei denen dein Username drinsteht. Ich will nun also per Access die AdressFelder nach allen Mailadresse durchsuchen lassen und per Aktualisierungsabfrage dann im Feld User die entsprechenden Usernamen hinterlegen. Drum wäre es für mich am einfachsten wenn eben jede Mailadresse auch einen Eintrag in der Tabelle hätte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eratum Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 Hab gerade kein Access zur Hand. Um für jede Adresse ein eigenes Feld zu bekommen, würde ich erstmal schauen wie viel Adressen ich den max bekommen kann und dann die entsprechende Spaltenzahl fix festlegen (alternative wäre sicherlich irgendwas mit ner dynamischen Tabellenerweiterung, aber da steck' ich auch zu wenig drinne ^^)... Also Scripttechnisch dann so: For Each objUser In objContainer 'Hier beginnst du deinen SQL String zu basteln strSQL = "INSERT INTO [User] " & "([Name],[Account],[Mailadresse1],[Mailadresse2],[Mailadresse3],[Mailadresse4]...) " & _ "VALUES ('" & objUser.FullName & "', " & "'" & objUser.sAMAccountName 'Hier fügst du sämtliche Mailadressen ein die da so rumlungern for each mailaddress in objUser.proxyaddresses strSQL = strSQL & "', " & "'" & mailaddress next 'Hier schliesst du den SQL String strSQL = strSQL & "');" 'SQLString ausführen db.Execute strSQL, 128 'dbFailOnError Next Wie gesagt, ich kann's nit testen, aber vlt kannst ja nachvollziehen was ich meine :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 Hi, sollte dann ja auch so mit der Schleife funktionieren: Dim db As DAO.Database ' Verweis DAO Dim strSQL As String Set db = CurrentDb Set objContainer = GetObject("LDAP://OU=EDV,OU=Benutzer Sudhoff Ulm,dc=sudhoff-technik,dc=de") objContainer.Filter = Array("user") For Each objUser In objContainer For Each mailaddress In objUser.proxyaddresses strSQL = "INSERT INTO [User] " & _ "([Name],[Account],[Mailadresse]) " & _ "VALUES ('" & objUser.FullName & "', " & _ "'" & objUser.sAMAccountName & "', " & _ "'" & mailadress & "');" db.Execute strSQL, 128 'dbFailOnError Next Next objUser Da bekomm ich für die for each ... proxyadresses Zeile die Fehlermeldung: Typen unverträglich? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eratum Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 Also wenn du das so schreibst, dann bekommst für JEDE E-Mailadresse eine Zeile mit Benutzername, Accountname usw.usf... Die Fehlermeldung check ich ansonsten grad selber nicht, bei mir läufts mit der gleichen Syntax ohne Probleme durch Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 Jo so war es ja auch gedacht, jede Mailadresse 1 Zeile in der Tabelle. Ich hab den Verdacht das mailadresses und proxyadresses vom Typ her unverträglich sind. Aber warum? In proxy.. sollten doch nur Texte drin sein? Oder hat sonst wer ne Idee wie ich das Problem lösen kann? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eratum Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 Das "Mailaddress" ist ja im endeffekt nur eine Variable in die er bei jedem Durchlauf der Schleife seine Werte reinschreibt. Versuch sicherheitshalber mal nen andere Namen dafür also dann im schleifenheader statt "Mailaddress" mal "Addy" o.ä. (und natürlich dann auch an der Stelle wo du das ganze in deinen String wirfst)... Wenn du ganz oben mal ein On Error resume next platzierst und statt der DB eingabe einfach mal ein wscript.echo "Irgendwas" platzierst, was passiert dann? Dim db As DAO.Database ' Verweis DAO Dim strSQL As String Set db = CurrentDb Set objContainer = GetObject("LDAP://OU=EDV,OU=Benutzer Sudhoff Ulm,dc=sudhoff-technik,dc=de") objContainer.Filter = Array("user") For Each objUser In objContainer For Each Addy In objUser.proxyaddresses strSQL = "INSERT INTO [User] " & _ "([Name],[Account],[Mailadresse]) " & _ "VALUES ('" & objUser.FullName & "', " & _ "'" & objUser.sAMAccountName & "', " & _ "'" & Addy & "');" 'db.Execute strSQL, 128 'dbFailOnError wscript.echo strSQL Next Next objUser Wäre jetzt zumindest was mir noch einfallen würde.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 Fehler 424 Laufzeitfehler: Objekt erforderlich in der Zeile wscript.echo Addy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eratum Geschrieben 19. November 2009 Teilen Geschrieben 19. November 2009 hrmpf...an der Stelle fehlen mir die Skills in VBA, mit VBS sollte es funzen ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 19. November 2009 Autor Teilen Geschrieben 19. November 2009 Mift. Vielleicht findet sich ja noch jemand anders? gruenie? Oder mal sehn was morgen oma google so alles noch dazu ausspuckt. Danke dir trotzdem erstmal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.