{"id":1614,"date":"2013-09-04T17:35:10","date_gmt":"2013-09-04T15:35:10","guid":{"rendered":"http:\/\/www.ramses.de\/?p=1614"},"modified":"2013-09-04T17:35:30","modified_gmt":"2013-09-04T15:35:30","slug":"faq-access-netzwerk-anmeldenamen-ermitteln","status":"publish","type":"post","link":"https:\/\/www.ramses.de\/?p=1614","title":{"rendered":"FAQ Access &#8211; Netzwerk Anmeldenamen ermitteln"},"content":{"rendered":"<div>\n<h1>Access Formulare &#8211; Netzwerk Anmeldenamen ermitteln<\/h1>\n<\/div>\n<h2>Problem :<\/h2>\n<p>Es m\u00fcssen in unseren Datenbanken abh\u00e4ngig vom Namen, mit dem sich ein Anwender im Netzwerk angemeldet hat, zus\u00e4tzliche Sicherheitseinstellungen vorgenommen werden.<\/p>\n<p>\u00dcber &#8222;CurrentUser()&#8220; finden wir heraus, unter welchem Namen sich ein Anwender bei Access angemeldet hat. Wie aber l\u00e4sst sich der Anmeldename f\u00fcr das Netzwerk herausfinden?<\/p>\n<h2>Probleml\u00f6sung:<\/h2>\n<p>Windows stellt eine spezielle DLL (Dynamic Link Library) ADVASPI32.DLL zur Verf\u00fcgung, die erweiterte Funktionen f\u00fcr die globale Nutzung in Anwendungen anbietet. Eine dieser Funktionen ist &#8222;GetUserName()&#8220;.<\/p>\n<p>Bevor Sie auf externe API-Funktionen in DLLs zugreifen k\u00f6nnen, m\u00fcssen Sie sie im allgemeinen Teil eines neuen oder vorhandenen Moduls deklarieren:<\/p>\n<pre>Declare Function GetUserName Lib \"advapi32.dll\" _\r\nAlias \"GetUserNameA\" (ByVal lpBuffer As String, _\r\nnSize As Long) As Long<\/pre>\n<p>Anschlie\u00dfend k\u00f6nnen Sie die API-Funktion in einer Access-Funktion &#8222;NetworkUsername()&#8220; wie folgt aufrufen:<\/p>\n<pre>Function NetworkUsername() As String\r\nDim lngMaxLen As Long, lngResult As Long\r\nDim strUsername As String\r\nstrUsername = String$(254, 0)\r\nlngMaxLen = 255\r\nlngResult = GetUserName(strUsername, lngMaxLen)\r\nIf lngResult &lt;&gt; 0 Then\r\nNetworkUsername = Left$(strUsername, lngMaxLen - 1)\r\nElse\r\nNetworkUsername = \"???\"\r\nEnd If\r\nEnd Function<\/pre>\n<p>Der API-Funktion werden zwei Parameter \u00fcbergeben: Eine String-Variable, die nach dem Aufruf den Namen beinhaltet und eine numerische Variable, die festlegt, wie viele Zeichen maximal in der String-Variable abgelegt werden k\u00f6nnen.<\/p>\n<p>Das eigentliche Funktionsergebnis von &#8222;GetUserName()&#8220; ist entweder &#8222;True\/-1&#8220; oder &#8222;False\/0&#8220;. Bei erfolgreicher Ausf\u00fchrung beinhaltet der Parameter &#8222;lngMaxLen&#8220; die Anzahl der Zeichen, die in &#8222;strUserName&#8220; zur\u00fcckgeliefert wurden, so dass dieser Wert f\u00fcr die Zuweisung des Funktionsergebnisses \u00fcber &#8222;NetworkUsername = Left$(strUserName, lngMaxLen &#8211; 1)&#8220; herangezogen werden kann.<\/p>\n<p>Mit Hilfe dieser Funktion k\u00f6nnen Sie nun beispielsweise in einem Formular einzelne Felder wie folgt ein- oder ausblenden:<\/p>\n<pre>If NetworkUsername() = \"Sabine M\u00fcller\" Then\r\nMe.txtGehalt.Visible = False\r\nMe.btnNeu.Enabled = False\r\nEnd If<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Access Formulare &#8211; Netzwerk Anmeldenamen ermitteln Problem : Es m\u00fcssen in unseren Datenbanken abh\u00e4ngig vom Namen, mit dem sich ein Anwender im Netzwerk angemeldet hat, &#8230; <a title=\"FAQ Access &#8211; Netzwerk Anmeldenamen ermitteln\" class=\"read-more\" href=\"https:\/\/www.ramses.de\/?p=1614\" aria-label=\"Mehr Informationen \u00fcber FAQ Access &#8211; Netzwerk Anmeldenamen ermitteln\">Weiterlesen &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[47,43],"tags":[58,79],"class_list":["post-1614","post","type-post","status-publish","format-standard","hentry","category-access","category-faq","tag-access-2010","tag-netzwerkmehrbenutzerumgebung"],"_links":{"self":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1614"}],"version-history":[{"count":3,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1614\/revisions"}],"predecessor-version":[{"id":1781,"href":"https:\/\/www.ramses.de\/index.php?rest_route=\/wp\/v2\/posts\/1614\/revisions\/1781"}],"wp:attachment":[{"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ramses.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}