none
Access 2003 VBA unter Access 365, Befehl Environ ersetzen RRS feed

  • Frage

  • Hallo

    Ich möchte eine Access 2003 Anwendung mit Benutzerverwaltung (MDW) unter Access 365 betreiben. Im Internet fand ich die Listen der VBA Funktionen, Methoden und Befehle die in der Sandbox von 365 Probleme verursachen oder gar nicht laufen.

    Frage:

    Wie kann ich den Befehl Environ() ersetzen den ich zum Auslesen der PC-User, Computer- und Server-Namen nutze. Gemäss der Liste läuft der unter 365 nicht.

    Den Code von Dev Ashish fand ich, aber mein Hobby-Computer-Wissen reicht nicht um ihn zu verstehen.

    Es währe schön wenn jemand eine für einen Hobby-Programmierer verständliche Lösung vorschlagen könnte oder mir eine Beschreibung des Codes von Dev Ashish verlinken kann, besonders was die Elemente des Funktionsaufrufs betrifft.

    Besten Dank für Eure Unterstützung

    Reiner Berger

    Montag, 15. April 2019 12:53

Alle Antworten

  • Am 15.04.2019 schrieb Reiner Berger:

    Frage:

    Wie kann ich den Befehl Environ() ersetzen den ich zum Auslesen der PC-User, Computer- und Server-Namen nutze. Gemäss der Liste läuft der unter 365 nicht.

    Hast Du des denn schon selbst ausprobiert?

    Den Code von Dev Ashish fand ich, aber mein Hobby-Computer-Wissen reicht nicht um ihn zu verstehen.

    Ich kenne den Code nicht, Du hast sicherlich einen Link dazu, dann
    kann man dir evtl. helfen.

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher http://www.wsus.de/wpp
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Montag, 15. April 2019 15:54
  • Diesen Code kannst du so wie im Beispiel einbinden:

    http://www.databasedev.co.uk/get_username_or_computername.html

    Aber Servername?
    Der Servername ist i.d.R. ein Verbindungsparameter, den ich in irgendeiner Konfiguration hinterlege. Aber in den Environ-Variablen kann ich den nicht finden, da ich ja mit vielen Servern verbunden sein kann.

    Mittwoch, 17. April 2019 10:47
  • Hallo Zusammen

    Besten Dank für Eure Antworten und bitte entschuldigt meine späte Reaktion darauf (Ostern).

    Ich kopierte den Code von Dev Ashish in zwei neue Module, fügte in einem Testformular zwei ungebundene Felder ein und setzte den Steuerelementinhalt auf =fOSUserName() resp. =fOSMachineName() und das funktionier auch.

    Der User-Name kommt richtig aber beim Maschinen-Namen kommt der Name auf dem Access gerade läuft.

    Wie muss ich den code ändern damit ich den Maschinen-Namen erhalte auf dem ich gerade eingeloggt bin. Aber bitte daran denken, ich kann Environ() nicht benutzen das dies auf 365 nicht läuft.

    Besten Dank

    Reiner Berger

    Sonntag, 21. April 2019 14:22
  • Am 21.04.2019 schrieb Reiner Berger:

    Der User-Name kommt richtig aber beim Maschinen-Namen kommt der Name auf dem Access gerade läuft.

    Wie muss ich den code ändern damit ich den Maschinen-Namen erhalte auf dem ich gerade eingeloggt bin. Aber bitte daran denken, ich kann Environ() nicht benutzen das dies auf 365 nicht läuft.

    Bist Du nicht auf der Maschine eingelogt, auf der Du gerade Access
    gestartet hast? Arbeitest Du auf einem Terminalserver?

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher http://www.wsus.de/wpp
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Sonntag, 21. April 2019 17:11
  • Richtig, ich arbeite auf einem Terminalserver und auch alle anderen Nutzer der Datenbank. Zudem können sich alle Nutzer auf fast allen am Terminalserver angeschlossenen PC's einloggen.

    Um die Behördenauflagen zu erfüllen muss ich bei Dateneingaben somit den Nutzer der Datenbank, des PC's und den Terminalserver festhalten.

    Gruss

    Reiner

    Montag, 22. April 2019 07:04
  • M.a.W., Access 365 läuft also nicht auf dem TS sondern wiederum in der Cloud?
    Ich denke, da wirst du schlechte Karten haben, um auf den TS zurückzugreifen.
    Um also die öffentlichen Anforderungen zu erfüllen, ist Access 365 dann halt die falsche Wahl.

    Alternativ könntest du den Aufruf von Access per cmd/bat/ps o.ä. um Aufrufparameter mit Werten der aktuellen Umgebung erweitern, so dass du in Access nur mittels Command() auf diese Parameter zugreifst. Eine Sicherheit gibt dir das allerdings nicht, dass diese Werte nicht manipuliert sind.

    • Bearbeitet bfuerchau Montag, 22. April 2019 09:58
    Montag, 22. April 2019 09:53
  • Am 22.04.2019 schrieb Reiner Berger:

    Richtig, ich arbeite auf einem Terminalserver und auch alle anderen Nutzer der Datenbank. Zudem können sich alle Nutzer auf fast allen am Terminalserver angeschlossenen PC's einloggen.

    Das fehlt im ersten Posting von dir. Bitte in Zukunft immer genaue
    Angaben machen, Danke.

    Hast Du denn selbst probiert mit O365 die Environment Variablen
    auszulesen?

    Um die Behördenauflagen zu erfüllen muss ich bei Dateneingaben somit den Nutzer der Datenbank, des PC's und den Terminalserver festhalten.

    Die Environment Variable ist CLIENTNAME und SESSIONNAME. Die in
    https://stackoverflow.com/questions/15985372/how-to-get-windows-session-name
    verlinkten Beispiele zielen alle auf C++.

    Lt.
    https://stackoverflow.com/questions/5301079/preferred-way-of-getting-client-name-from-terminal-server-session
    soll die Variable die Du suchst in der Registry zu finden sein:
    HKEY_CURRENT_USER\Volatile Environment\CLIENTNAME Ausprobieren musst
    Du selbst.

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher http://www.wsus.de/wpp
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Montag, 22. April 2019 09:57
  • Besten Dank für Eure Antworten.

    Ich versuche jetzt mit Euren Informationen und Links eine Lösung zu finden mit der ich weiter gehen kann. Wenn ich erfolgreich bin werde sie dann hier aufzeigen. Bei über 1300 Aufrufen dieses Threads in den wenigen Tagen bin ich anscheinend nicht der einzige mit diesem Problem. Kann aber einige Tage dauern da programmieren nicht meine einzige Aufgabe ist.

    Vorerst besten Dank an Euch

    Reiner Berger

    Dienstag, 23. April 2019 06:17