اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

ظاهرا هناك خلل في نسخة الاوفيس المستخدمة ، فجرب ان تعمل لها تحديث ، او جرب نسخة اخرى فيها جميع تحديثات الاوفيس 🙂

 

جعفر

قام بنشر

تم التوصل الى الخلل 

في هذه الدالة apiGetUserName

 

 

بالذات هذا السطر 

nSize As Long

لازم يكون 

nSize As LongPtr

 

طلبي الان هو التعديل في الكود بخيث يعمل على النواتين

Option Compare Database
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long

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

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

بالذات في هذه الدالة

 

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

 

لانها ظهرت اخطاء في هذه الاسطر 

 

 lngx = apiGetUserName(strUserName, lngLen)


   

وهذا السطر


       

 fOSUserName = Left$(strUserName, lngLen - 1)

 

 

 

قام بنشر

جرب هذا

احذف هذه الاسطر
#If VBA7 Then
Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long

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


واستبدلها بهذا
Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

 

فيه تعديل في السطر الاخير ، فلا تستعمل السطر اللي عندك ، وانما اعمل نسخ للسطر الذي كتبته لك اعلاه 🙂

 

جعفر

قام بنشر
في ٤‏/٥‏/٢٠٢٢ at 20:52, عبدالله المجرب said:

هل تقصد ان الدالة بوضعها التالي 

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

ستعمل على النواتين

 

جربت هذا الحل والى الان الامور تمام 

سلمت استاذ جعفر 

شكرا لك وكل عام والجميع بخير

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
×
×
  • اضف...

Important Information