Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Umstellung Funktion GetUserName von Office 2016 auf Office 2019 (32 auf 64 Bit)

Begonnen von fsimnetz, Juni 03, 2024, 09:16:41

⏪ vorheriges - nächstes ⏩

fsimnetz

Guten Morgen,
ich stehe vor einem Problem. Der Code zum Auslesen des User-Namens verhindert offensichtlich die Office Umstellung der DB von 32 auf 64 Bit. Ich habe "keine Ahnung" was und wie ich die Änderung vornehmen muss. Ich wäre echt dankbar, wenn man mir hierbei helfen kann. Die DB läuft 24/7 im Netzwerk und wird von vielen User genutzt.

Danke!!!!

Ich benutze den Code: "Get full name of the user currently logged in to the system"

und
Option Compare Database

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If (lngX > 0) Then
        fOSUserName = Left$(strUserName, lngLen - 1)
    Else
        fOSUserName = vbNullString
    End If
End Function
  •  

markusxy

Hier ein Link zu einem Artikel von PhilS der zeigt wie man solche Scripts umstellen kann.
  •  

fsimnetz

#2
Vielen dank für die Info...

habe PtrSafe zum Testen hinzugefügt, aber das tatsächliche Auslesen mit
Me.User= Left(fGetFullNameOfLoggedUser, InStr(fGetFullNameOfLoggedUser, " (") - 1)
ist trotzdem fehlerhaft....???

Meldung: Ungültiger Prozeduraufruf oder ungültiges Argument



  •  

markusxy

Aha, und warum wundert mich das nicht.
Du hast ja lediglich PtrSafe hinzugefügt aber den Code hast du nicht angepasst.
PtrSafe - bedeutet ja, dass du den Code tatsächlich Pointer Safe angepasst hast.

Lies der den Artikel mal sorgfältig durch und wenn dann noch was unklar ist, dann frag konkret.
Wobei bei der Funktion GetUserNameA gibts eh nichts anzupassen - warum verwendest du nicht fGetUserName wie es hier im Titel steht?
  •  

fsimnetz

Guten Morgen,

...leider komme ich nicht weiter. fGetUserName oder GetUserNameA gibt lediglich bei uns im Netzwerk den WinUser als Zahl aus. Mit fGetFullNameOfLoggedUser hatte ich in der 32Bit-Version den vollständigen Namen (bspw. Mustermann, Max) erhalten . Nach der Umstellung ließ sich mit dem Code von Dev Ashish das nicht mehr so umsetzen.

 ::)

 
  •  

PhilS

Zitat von: fsimnetz am Juni 07, 2024, 08:01:45Nach der Umstellung ließ sich mit dem Code von Dev Ashish das nicht mehr so umsetzen.
Es wird in den nächsten Tagen eine 64bit-kompatible Version des Moduls, das du verwendest, geben. - Direkt unter dem Link hier im Posting, der im Moment noch auf die unveränderte Originalversion zeigt.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor
  •