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

نجوم المشاركات

  1. هادى محمد المامون سالم

    هادى محمد المامون سالم

    المشرفين السابقين


    • نقاط

      7

    • Posts

      1,376


  2. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      5

    • Posts

      11,634


  3. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      4

    • Posts

      8,723


  4. Elsayed Bn Gemy

    Elsayed Bn Gemy

    الخبراء


    • نقاط

      4

    • Posts

      1,162


Popular Content

Showing content with the highest reputation on 10 فبر, 2021 in all areas

  1. السلام عليكم ورحمة الله تعالى وبركاته اخوانى الكرام منذ ان بدأت هذا المشروع ولم افكر لحظة فى ان احيد عنه الان اقدم لكم مكتبة جديدة متلافيا فيها بعض المشاكل التي قابلتنا قديما وادرجت بها دوال جاهزة وسهلة المكتبة بها اداة listview وبها ثلاث دوال الدالة الاولي ListFolder(ByVal FolderPath As String) وهى دالة لعرض الملفات فى مجلد معين حيث FolderPath هو مسار المجلد ويتم استدعااء الدوال بهذا الكود Option Explicit Option Compare Database Public listv As MsAccessListviewACX1_00.UCBySedo Private Sub Command115_Click() Set listv = Me.UCBySedo2.Object call listv.ListFolder ("C:\Users\Elsayed\Desktop\New folder\") End Sub حيث UCBySedo2 هي اسم Activex التى ادرجتها فى النموذج ========================== الدالة الثانية FillListviewWithRecord(ByVal CurrntDb As String, ByVal QuerySQl As String) وهذه الدالة لتعبئة الليست فيو بالسجلات وجهلها مثل النموذج الفرعي حيث CurrntDb هي المسار الكامل لقاعدة البيانات وهذه خاصية جيدة حيث يمكن الاتصال ياقاعدة بيانات خارجية واذا كنت تريد نفس قاعدة البيانات يمكنك ادراج هذه الجملة بدل المسار CurrentProject.FullName ============================== QuerySQl وهو الاستعلام المراد عرضه ويتم ادراجه بطريقة SQL "SELECT Accounts.ID AS [م], Customers.Customer AS [العميل], Accounts.Debit AS [مدين], Accounts.Credit AS [دائن], Accounts.Dates AS [التاريخ], Accounts.Notes AS [البيان] FROM Accounts INNER JOIN Customers ON Accounts.Customer_ID = Customers.Customer_ID;" طبعا انشئ الاستعلام الخاص بك واعرضه بطريقة SQL وانسخه وادرجه ======================= الدالة الثالثة filLvWithImage(ByVal ImgType As String, ByVal FolderPath As String) هذه الدالة لعرض الصور حيث ImgType هي نوع الصور الموجودة في المسار حيث FolderPath هو المسار المراد عرض الصور بداخله طريقة التسجيل اتمنى ان تنال اعجابكم وانا فى خدمتكم لادراج اى تحديث بها او انشاء ادوات جديدة نستفيد بها فى الاكسس --------------------------------------------------------------------------------------------------- تعديل : 12-02-2021 : قمت بانشاء قاعدة بيانات مدرج بها الاداة والدوال الثلاثة وطريقة الاستخدام الدالة الاولى وهى تعبئة الاداة بالسجلات من نفس قاعدة البيانات قم باختيار الاستعلام ( يتم عمل قائمة بالاستعلامات تلقائيا فى حدث عند التحميل وادرجها فى الكمبوبوكس ) بعد اختيار الاستعلام سيتم تحويل الاستعلام الى صيغة سيكوال تلقائيا فقط ما عليك الا ان تضغط على عرض السجلات ) الدالة الثانية اختر المسار ونوع الصورة المراد عرضها فى المسار ثم عرض الدالة الثالثة الملفات فى مجلد معين اضافة الى ايقوناتها اختر المسار ثم عرض قاعدة البيانات MsAccessListviewACX1.01.rar
    3 points
  2. السلام عليكم ستجد الحل ان شاء الله بالملف المرفق Seclect Date.xlsb
    3 points
  3. جرب هذا الماكرو فقط اكنب رقم الطالب في B فيظهر اسمه في C ثم اكتب "غ" اينما تريد (أو امسح الــ "غ" اذا اردت تعديل ذلك) ثم اضغظ الزر Run لا تثم بالترقيم في العامود A لانه يدرج الترقيم اوتومانيكياً Option Explicit Sub Get_abscent() Dim S1 As Worksheet, S2 As Worksheet Dim Horz As Range, Vert As Range Dim M%, i%, y%, X% Set S1 = SHEET1: Set S2 = SHEET2 M = Application.Max(S2.Range("A6").Resize(100)) + 4 Set Vert = S1.Range("E4:AS4").Find(S2.Range("E2"), lookat:=1) If Vert Is Nothing Then Exit Sub y = Vert.Column For i = 5 To M Set Horz = S1.Range("C4:C100"). _ Find(S2.Range("B" & i), lookat:=1) If Not Horz Is Nothing Then X = Horz.Row S1.Cells(X, y) = S2.Cells(i, "D") S1.Cells(X, y).Interior.ColorIndex = _ IIf(S2.Cells(i, "D") = "", xlNone, 6) End If Next Set S1 = Nothing: Set S2 = Nothing Set Horz = Nothing: Set Vert = Nothing End Sub الملف مرفق Nour_Vise_versa.xlsm
    2 points
  4. السلام عليكم تم التعديل كما هو مطلوب مرفق الملف بعد التعديل Find Date 01.xls
    2 points
  5. تفضل كان عليك التركيز فهذا الموضوع تكرر معك كثيراً -يمكنك استخدام هذه المعادلة =SUMIFS($C:$C,$B:$B,$G8,$D:$D,$J$7) حساب سيارة مشتركة بين موقعين1.xls
    2 points
  6. يسرني ويسعدني أن أضع بين يديكم برنامج التدريب الالكتروني قمت بتصميمه من الصفر أخذ مني جهد ووقت كبير . استفدت من خبراء هذا المنتدى المبارك. لي طلب أن تدعو لوالدي وجميع مرضى المسلمين والمسلمات بالشفاء العاجل. هذا المشروع أضعه صدقة جارية لكل طالب علم ، و كل مشارك في هذا المنتدى . أسأل الله أن يتقبل منا ومنكم صالح الأعمال . ولا تنسونا من دعواتكم الصادقة في ظهر الغيب . اترك البرنامج لكم لتكتشفوا أسراره 😄 اضف مرفقات موجوده ProTraining20.zip
    1 point
  7. السلام عليكم 🙂 اذا عملنا برنامج على الاكسس 32بت ، وفيه مكتبات الوندوز الـ 32بت (لاحظ الرقم 32 في اسم المكتبة: comdlg32.dll) ، ثم شغلنا البرنامج على اكسس 64بت ، فنحصل على هذا الخطأ : . يوجد ملف في موقع مايكروسوف (مرفق نسخة Win32API_PtrSafe.zip) ، وفيه طريقة عمل مناداة النواتين : https://www.microsoft.com/en-us/download/details.aspx?id=9970 وتوجد مواقع مجهزة الكود للنواتين ، مثل (فقط ابحث عن الدالة ، واعمل نسخ/لصق للكود) : http://www.jkp-ads.com/articles/apideclarations.asp ------------------------------------------------------------------------------------------------------------------ ولكني هنا سأناقش كيف يمكننا تعديل المكتبة بدون الرجوع لهذه الروابط (للأسف ، سنضطر للرجوع لهذه الروابط لبعض المكتبات) !! والدوال التي استعملها هنا ، هي كأمثلة فقط ، والطريقة التي سنعمل بها هي ، ان نضع برنامج 32بت فيه الدالة ، ثم نفتح البرنامج بالاكسس 64بت ، ونبدأ نلاحق الاخطاء ونصلحها. وهناك 3 احتمالات فقط ، وسنناقشها جميعا ان شاء الله 🙂 الخطوة الاولى والاهم هي اضافة كلمة PtrSafe بعد كلمة Declare ، للنواتين 32بت و 64بت. أ. الدالة : Sleep نناديها بنواة 32بت هكذا : Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) وهنا مثال لعملها : 1.Sleep.32bits.accdb.zip عندنا الطرق التالية (وجميعها تعمل وصحيحة) لنبدا العمل لجعل المكتبة تعمل على النواتين 32بت و64بت (وستكون طريقة عملنا بأحد هذه الطرق لجميع المكتبات) : نلاحظ ان الفرق بين كود 32بت (اعلاه) ، واول كود 64بت (ادناه) هو اضافة كلمة PtrSafe بعد كلمة Declare ، والتي يقبلها نظام 32بت كذلك ، وفي الطرق الثلاثة التالية ، نستخدم نفس الكود رقم 1 ، ولكننا نغلفه بالامر IF# ، ولهذا المثال ، سوف استخدم الطريقة رقم 3 : '1 'Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '2 '#If VBA7 Then ' Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#Else ' Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#End If '3 #If VBA7 And Win64 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) #Else Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) #End If '4 '#If Win64 Then ' Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#Else ' Public Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long) '#End If . ولكن ، لما نفتح الكود في الاكسس 64بت ، نلاحظ انه جعل كود 32بت باللون الاحمر : . على الرغم من البرنامج عمل لنا هذا السطر باللون الاحمر ، إلا ان الكود يعمل بطريقة صحيحة ، فلا تهتم به ، وبعد كل خطوة نعملها ، يجب ان نعمل Compile : حتى نعرف الخطأ التالي ، ونعدل عليه 🙂 ولما ما نحصل على خطأ ، فهنا نبدأ بتجربة البرنامج (على والاكسس 64بت ، والاكسس 32بت) ، حتى نتأكد بأنه يعمل بالطريقة الصحيحة ، والحمدلله ، هذه الدالة اصبحت جاهزة للعمل بالنواتين بهذا التغيير ، وتم تجربة الملف المرفق على النواتين🙂 وهذه النسخة بعد تحديثها للعمل على النواتين 32بت و64بت : 1.Sleep.64bits.accdb.zip ------------------------------------------------------------------------------------------------------ ب. الدوال: GetSystemDirectory ، GetWindowsDirectory ، GetTempDir نواة 32بت : Private Declare Function apiGetSystemDirectory& Lib "kernel32" _ Alias "GetSystemDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare Function apiGetWindowsDirectory& Lib "kernel32" _ Alias "GetWindowsDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare Function apiGetTempDir Lib "kernel32" _ Alias "GetTempPathA" (ByVal nBufferLength As Long, _ ByVal lpBuffer As String) As Long والبرنامج : 2.System_Directories.32bits.accdb.zip 64بت، خطوات التعديل ، بإضافة PtrSafe فقط: Private Declare PtrSafe Function apiGetSystemDirectory& Lib "kernel32" _ Alias "GetSystemDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare PtrSafe Function apiGetWindowsDirectory& Lib "kernel32" _ Alias "GetWindowsDirectoryA" _ (ByVal lpBuffer As String, ByVal nSize As Long) Private Declare PtrSafe Function apiGetTempDir Lib "kernel32" _ Alias "GetTempPathA" (ByVal nBufferLength As Long, _ ByVal lpBuffer As String) As Long وعمل البرنامج بشكل صحيح للنواتين : 2.System_Directories.64bits.accdb.zip ------------------------------------------------------------------------------------------------------ ج. الدالة: EnumFontFamilies عرض الخطوط fornts في مربع تحرير وسرد في الاكسس - قسم الأكسيس Access - أوفيسنا (officena.net) لأخونا @kanory 🙂 32بت : Private Declare Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, lParam As Any) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function GetFocus Lib "user32" () As Long والبرنامج: 4.Kan_Fonts.32bits.accdb.zip 64بت، خطوات التعديل ، بإضافة PtrSafe فقط: Private Declare PtrSafe Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, lParam As Any) As Long Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare PtrSafe Function GetFocus Lib "user32" () As Long - لما نعمل Compile نحصل على الخطأ في السطر التالي: . اذن الخطأ في المتغير الثالث من الدالة EnumFontFamilies ، والذي نوعه Long ، فيجب تغييره في الدالة الى LongPtr ، الخطوة الثانية تغيير النوع Long الى LongPtr في الدالة وطبعا اذا عملنا التغيير على السطر اعلاه، فالنواة 32بت ستعطيك خطأ هنا ، لذا يجب تغليف الدالة بالامر IF# ، هكذا : . وعند عمل Compile مرة اخرى ، لا نحصل على خطأ ، والبرنامج يعمل بطريقة صحيحة ، البرنامج يعمل بطريقة صحيحة : 4.Kan_Fonts.64bits.accdb.zip ------------------------------------------------------------------------------------------------------ د. دعوة لتجربة الاصدار الثالث من برنامج القران الكريم - صفحه 2 - قسم الأكسيس Access - أوفيسنا (officena.net) برنامج الذكر الحكيم لأخونا @ابا جودى 🙂 برنامج 32بت: 5.الذكر الحكيم V. 3.0.2.32bits.mdb.zip وقبل تشغيله على 64بت ، نضيف الامر PtrSafe الى جميع الدوال ، سواء لنواة 32بت او 64بت (ومنها تم عمله) ، ومنهم : Private Declare Sub ChooseColor Lib "msaccess.exe" Alias "#53" (ByVal hwnd As Long, clr As Long) '---color Picer الى Private Declare PtrSafe Sub ChooseColor Lib "msaccess.exe" Alias "#53" (ByVal hwnd As Long, clr As Long) '---color Picer والنتيجة تمام : 5.الذكر الحكيم V. 3.0.2.64bits.mdb.zip ------------------------------------------------------------------------------------------------------ هـ. عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net) مع ان الوحدة النمطية Shell_n_Wait تم اخذها من هذا الموقع : https://github.com/xxdoc/vb6-Shell-Wait/blob/master/Shell %26 Wait v2/modShellWait.bas والتي تم عملها للنواتين 32بت و64بت ، ولكن لايزال البرنامج يعطي اخطاء في بيئة 64بت ، فنفتحة في برنامج 64بت ، نضيف الامر PtrSafe الى جميع الدوال ، ونعمل Compile ، وجدنا خطأ ، ونلاحظ اننا ننادي الدالة MoveWindow والتي تعطي قيمتها الى المتغير retval : . والآن لنرى الدالة نفسها ، ولكن الدالة جاهزة من الاصل للنواة 64بت ، ولا تحتاج الى تعديل : . وبعد التمعن ، نرى ان الخطأ موجود في نوع المتغير retval ، حيث اننا اعلنا انه Long ، بينما في بيئة 64بت نلاحظ انه LongPtr ، فالحل يكون ، اما ان نعمل IF# في الكود الاول ، واما ان نوقف الاعلان في الكود الاول ، ونضيفه في الكود الثاني ، كل حسب نوعه ، وانا سأعمل المقترح الثاني: #If VBA7 Then Declare PtrSafe Function MoveWindow Lib "User32.dll" (ByVal HWnd As LongPtr, ByVal X As LongPtr, ByVal Y As LongPtr, ByVal nWidth As LongPtr, _ ByVal nHeight As LongPtr, ByVal bRepaint As LongPtr) As LongPtr Public retval As LongPtr #Else Declare Function MoveWindow Lib "User32.dll" (ByVal HWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _ ByVal nHeight As Long, ByVal bRepaint As Long) As Long Public retval As Long #End If . نعمل Compile مرة اخرى ، لنحصل على الخطأ التالي: . والدوال: . فالحل هو ان نغلف الدوال بالامر IF# ، ونجعل بيئة 64بت ان يكون LongPtr ، فقط للمتغير الاول لهذه الدالة ، . نعمل Compile مرة اخرى ، لنحصل على الخطأ التالي: . والتعديل : . وهكذا الى بقية الاخطاء المشابهة ..... الخطأ التالي ، والغير عن الاخطاء اعلاه : . بالبحث ، لا نجد له دالة ، وانما نجد انه تم الاعلان عنه: . فيجب حذفه من هذا الاعلان ، وإضافته الى التغليف IF# ، فيكون اعلاه للبيئة 32بت ، واما للنواة 64بت فيكون LongPtr ، وبعد جميع التعديلات ، تكون النسخة تعمل على النواتين ، كما في المرفق: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) ------------------------------------------------------------------------------------------------------ واخيرا: و. دالة فتح نافذة اختيار/حفظ الملف: GetOpenFileName و GetSaveFileName والتعديل على هذه الدوال لا يعتمد على التغليف IF# ، وجعل الاعلان عن المتغير فيه ، ونما نحتاج الى تغيير Len الى LenB ، ونحتاج الى تعديل هذه الجزئية كذلك: . وهذا الملف للنواتين: 9.Allow_ByPass_Key.64bits.mdb.zip بهذه الطرق ، نستطيع ان نحول برامجنا لتعمل على نواتي اكسس 32بت و64بت 🙂 الموضوع فني بحت ، وتحتاج ان يكون عندك نواتي اكسس ، حتى تعدل على النواتين ، ثم تجربهم الاثنين 🙂 ------------------------------------------------------ وهناك طريقة ثانية ، اعتقد بأنها اسهل واستعملها دائما : جعفر 1.Sleep.64bits.accdb.zip 1.Sleep.32bits.accdb.zip Win32API_PtrSafe.zip
    1 point
  8. وعليكم السلام 🙂 هذا الموضوع بيفيدك : طباعة الهويات / الباجات / بطاقات العمل - قسم الأكسيس Access - أوفيسنا (officena.net) وخصوصا لما توصل عند : جعفر
    1 point
  9. شكرا لكما احبتي @jjafferr و @kha9009lid سوف اقوم بالاطلاع والتجربة
    1 point
  10. ان شاء الله يكون المطلوب بحث.mdb بحث.rar
    1 point
  11. الملف عادي أعيد تحميله بحث.rar بحث.mdb
    1 point
  12. قم بإستيراد أو نسخ النموذج Prin و الوحدة النمطية name_report إلى قاعدتك و عند كتابة كود فتح التقرير اكتب اسفله كود استدعاء الشريط salah_hommadi
    1 point
  13. الأمر بسيط ولا يحتاج لكل هذا ... طبعاً بعد اذن استاذ هادى ... عليك بتعطيل أو حذف هذا السطر من الكود وبكده يبقى طلبك انتهى ' Sheets(MY_SH).Range("E5:AR11").ClearContents
    1 point
  14. بارك الله فيك استاذ جعفر وزادك الله من فضله
    1 point
  15. برنامج خفيف وبسيط يسجل بصيغة صور gif ويمكن التحكم بالجودة والحجم للملف التحميل من هنــــا
    1 point
  16. محاولة نظيفة وواضحة 🙂 انا استخدم تعديل كود - صفحه 2 - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
    1 point
  17. وعليكم السلام-لك ما طلبت مثال1.xlsx
    1 point
  18. تفضل هذه محاولة ولكن يبدو ان هذا البرنامج غير مجدي لا غنى لي عن اخوتي هنا لارشادي الى افضل برنامج خفيف للشرح Video_2021-02-10_105245.rar
    1 point
  19. بعد إذن الاستاذ هادى (بدون اكواد) Nour_ahmad.xlsx
    1 point
  20. السلام عليكم بارك الله فيك وحفظك الله فيه فكرة لــ أداة قد تستفيد مه مادين وهي خاصه بالصور بالتوفيق إن شاء الله
    1 point
  21. السلام عليكم .... ستجد الحل ان شاء الله بالملف المرفق Find Date.xls
    1 point
  22. تفضل التعديل ارجو ان يكون طلبك tabdeel-1.rar
    1 point
  23. Private Sub dat2_AfterUpdate() Me.dat3 = DateSerial(Year(dat1) + 1, Month(dat1) - Me.dat2, Day(dat1)) End Sub
    1 point
  24. ان شاء الله يكون المطلوب بحث.rar
    1 point
  25. جرب هذا النموذج (و حاول تطبيقه على الملف عندك) Days.xlsx
    1 point
  26. وعليكم السلام-يمكنك استخدام هذه المعادلة =IFERROR(NETWORKDAYS.INTL(L2,A2,6),"لم يصرف") تقرير فواتير مبيعات رواج من 1-1-2021 الى 18-1-2021.xls
    1 point
  27. السلام عليكم ورحمة الله تعالى وبركاته قمت بفضل الله بتصميم مكتبة dll يمكن اضافتها للاكسس نعم هى بسيطة ولكنها اول تجربة وان شاء الله احاول ان اصمم مكتبات اخرى هى اداة مثل البروجرس بار هذه شكلها بعد التسجيل ستجدها موجودة فى عناصر Active x وهذه صورة اثناء تصميم الاداة على vb.net قريبا ان شاء الله explorer bar وهذا فيديو اثبات عملى للاداة اما عن طريقة التسجيل فستجد ملف من نوع .bat ارفقته مع الاداه اسمه " تسجيل الاداة " قم بفتحة با النوتباد وقم بتغيير مسار الاداه وقم بحفظ الملف وعن التسجيل قم بفتح الملف كمسؤل وسيقوم بتسجيل المكتبةتلقائيا هذه هى المكتبة axload5.rar اتمنى ان تجربوها وتخبرونى بالنتائج دمتم لنا سندا حاجة اخيرة ايه ممكن استفاد من الاداة هذه ممكن مثلا تضعها فى نموذج مخفية وعند تنفيذ امر معين تظهرها وعند انتهاء الامر تقوم باخفائها وهكذا
    1 point
  28. والسلام عليكم اخي ما عليك الا ان تحدد مربعات النصية اللي تريد ان يكون لغة الادخال فيها بيكون العربية وتغير الخاصية الكيبورد الادخال الى العربية كما مبية في الصورة الادناه
    1 point
×
×
  • اضف...

Important Information