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
Hier ein Link (https://codekabinett.com/rdumps.php?Lang=1&targetDoc=windows-api-deklaration-vba-64-bit) zu einem Artikel von PhilS der zeigt wie man solche Scripts umstellen kann.
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
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?
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.
::)
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 (https://www.theaccessweb.com/api/api0066.htm), das du verwendest, geben. - Direkt unter dem Link hier im Posting, der im Moment noch auf die unveränderte Originalversion zeigt.
Herzlichen Dank!
:D