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

Moosak

أوفيسنا
  • Posts

    2175
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    55

كل منشورات العضو Moosak

  1. أهلا بك أخي @حسان12 🙂 تكرما في المرات القادمة أكتب عنوان واضح ومعبر عن مضمون المشاركة .. إتباعا لقواعد المشاركة في المنتدى 🙂 أما بخصوص سؤالك الثاني فطلبك موجود هنا :
  2. ضع أمر Requery لمربع [القيمة] في حدث [عند التغيير] لمربع [الكمية] 🙂
  3. وعليكم السلام ورحمة الله وبركاته.. فعلا أنا استمتعت بقراءة السؤال 😄 مثال ونموذج يحتذى به في طريقة عرض الطلب 👍🏼🙂 وربما ترتيبك لخطوات التحقق في السؤال سيسهل التطبيق للإخوة إن شاء الله ..
  4. هل تم حل مسألتك الأولى ؟؟ وماهي رسالة الخطأ التي تظهر لك ؟
  5. نعم توجد طريقة سهلة .. وهي تحويل الكود لدالة عامة يمكن استخدامها لأكثر من حقل في نفس الوقت .. وهذه هي صيغة الدالة : Function LockField() If InStr(1, Screen.ActiveControl.Value, "Word") > 0 Then Screen.ActiveControl.Locked = True Else Screen.ActiveControl.Locked = False End If End Function ثم تقوم بتحديد جميع الحقول التي ستطبق عليها الكود .. وتذهب لحدث عند التركيذ وتكتب اسم الدالة هكذا : = LockField() كما في الصورة :
  6. نعم استخدم هذا الكود في حدث عند التركيز للحقل المطلوب : If InStr(1, Me.TextBoxName, "Word") > 0 Then Me.TextBoxName.Locked = True Else Me.TextBoxName.Locked = False End If
  7. هذا هو الكود كاملا .. ربما لم تنسخه بأكمله في برنامجك : #If VBA7 Or Win64 Then Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As LongPtr, ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As LongPtr Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As LongPtr) As LongPtr Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As LongPtr #Else Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook as long, ByVal ncode as long, ByVal wParam as long, lParam As Any) as long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) as long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook as long) as long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg as long, ByVal nIDDlgItem as long, ByVal wMsg as long, ByVal wParam as long, ByVal lParam as long) as long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd as long, ByVal lpClassName As String, ByVal nMaxCount as long) as long Private Declare Function GetCurrentThreadId Lib "kernel32" () as long #End If 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 #If VBA7 Or Win64 Then Private hHook As LongPtr #Else Private hHook As Long #End If Public Function NewProc(ByVal lngCode As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Dim RetVal Dim strClassName As String Dim lngBuffer As LongPtr If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String On Error GoTo ExitProperly Dim lngModHwnd As LongPtr Dim lngThreadID As LongPtr lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook ExitProperly: UnhookWindowsHookEx hHook End Function
  8. أخي رضوان @رضوان الجماعي 🙂 أقترح عليك فتح موضوع جديد طازج لكي تأخذ الفكرة حقها من الإهتمام ولفت الإنتباه .. 🙂
  9. @ابوخليل نعم الملف لا يفتح في الإصدارات 64 بت .. 🙂
  10. وعليكم السلام ورحمة الله وبركاته أخي رضوان 🙂 على نهج مصمم البرنامج كتبت لك دالة ترجع لك رقم المستوى للمستخدم الحالي : يمكنك من خلالها تحديد ما هي الأوامر التي تريد أن تعطيها للبرنامج بناءا على مستوى المستخدم الحالي .. مثال : PasswordLogin_RC4_v5.6 (1).accdb
  11. تفضل 🙂 DLookUp("[المسافة]";"[Table1]";"[city1] ='"& [Forms]![Form1]![city1] &"' And [city2] ='"& [Forms]![Form1]![city2] &"' ") test.rar
  12. وعليكم السلام ورحمة الله وبركاته 🙂 أخي @ابو فتحى .. أرفق الكود الذي تستخدمة للإرسال ..
  13. أحسنت وبارك الله فيك باش مهندس @أ / محمد صالح .. 🌹😊 إضافة جميلة جدا للموضوع والمنتدى .. جعلها الله شفيعة لك يوم الحساب 🙂 مقترح : هل يمكن ضم المشاركات في البحث ؟ لأن الكثير من العناوين لا تدل على محتواها .. والمشاركات تحتوي على الكثير من الدرر وأغلب الفوائد موجودة فيها .
  14. وعليكم السلام ورحمة الله الله وبركاته 🙂 باستخدام دالة Sleep نفسها المستخدمة للإنتظار في كود الواتسأب ضع هذه الأسطر من ضمن كود الإرسال لديك ( يفضل أن يكون تحت جملة For مباشرة ) : Dim W As Long ' المتغير يعد الأشخاص الذين تم الإرسال لهم If W = 10 Then ' حدد عدد الذين تريد الإنتظار بعدهم Sleep 15000 ' مدة الإنتظار (كل ألف يساوي ثانية) W = 1 Else W = W + 1 End If وهذا مثال للتجربة : Sub SendToWhatsApp() Dim x As Integer For x = 1 To 50 Dim W As Long ' المتغير يعد الأشخاص الذين تم الإرسال لهم If W = 10 Then ' حدد عدد الذين تريد الإنتظار بعدهم Debug.Print "================================(إنتظار)" Sleep 15000 ' مدة الإنتظار (كل ألف يساوي ثانية) W = 1 Else W = W + 1 End If ' هنا كود إرسال الواتسأب Debug.Print "جار الإرسال للمستخدم رقم: ", x Sleep 500 DoEvents Next x End Sub والنتيجة :
  15. والثالثة : أن تضيف حقل من نوع (نعم/لا) وتجعل هذا السجل (نعم) وتستثنيه من الحذف عند التفريغ .. 🙂
  16. شكر لك أخي @kanory بالفعل هناك تحديث قادم بإذن الله 🙂 .. وهذه صورة تشويقية .. وسأذكر المميزات الجديدة في حينها إن شاء الله ..😊 وربما يصعب إدراج النماذج الفرعية هنا لأن المكان صاير زحمة 😅🖐🏼️
  17. وعليكم السلام ورحة الله وبركاته 🙂 1- أكمل الدالة .. لأنك حاط اسم العميل في النموذج الفرعي ستظهر لك أسماء النماذج الفرعية فقط .. اختر اسم النموذج الفرعي 2 - يجب إضافة هذا السطر يدويا لكي يتم الوصول لحقل رقم العميل . 3- إضغط على زر فحص التعديلات ( يجب أن يكون النموذج مفتوح لترى النتيجة مباشرة ) 4- هنا ستظهر النتيجة الدالة كاملة حسب المعطيات (نفس اللتي في الصورة) : DSum("[المتحصل من العميل]","[customer account sub dollar]","[اسم العميل] ='"& [Forms]![customer_account_$22]![customer_account_main $].FORM![Customer_Name] &"'")
  18. أخي عمر جرب تنزيل هذا التطبيق في هاتفك الأندرويد .. يقوم بنفس العمل 🙂 https://play.google.com/store/apps/details?id=com.poe.android&pli=1
  19. يعمل بكفاءة 👍🏼🙂
  20. افتح البرنامج بالضغط على زر الشفت shift هذا وظيفته تكون بعدما يتم تقسيم البرنامج .. 🙂
  21. هذا الملف قالب جاهز لنموذج صفحة دخول وتغيير بيانات المستخدم والتحكم بالمستخدمين 🙂 كلمة المرور لجميع المستخدمين : 123 للتحميل : 🙂 قالب جاهز لنموذج تسجيل الدخول وتغيير كلمة المرور.accdb
  22. كود لعمل ترقيم متسلسل للسجلات في النموذج المستمر أو المفرد في حقل غير منظم شرح الكود: يوضع في موديول منفصل .. ثم في حقل المسلسل في النموذج ويكون حقل غير منظم يكتب في مصدر بياناته هكذ : =RowNum([Form]) الكود: Public Function RowNum(frm As Form) As Variant On Error GoTo Err_RowNum 'Purpose: Numbering the rows on a form. 'Usage: Text box with ControlSource of: =RowNum([Form]) With frm.RecordsetClone .Bookmark = frm.Bookmark RowNum = .AbsolutePosition + 1 End With Exit_RowNum: Exit Function Err_RowNum: If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row. Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description End If RowNum = Null Resume Exit_RowNum End Function طريقة الاستدعاء (الاستخدام): =RowNum([Form])
×
×
  • اضف...

Important Information