اذهب الي المحتوي
أوفيسنا

ابوخليل

أوفيسنا
  • Posts

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

  • Days Won

    238

كل منشورات العضو ابوخليل

  1. انظر في خصائص النموذج / لسان التبويب بيانات الخاصية : تامين السجلات اجعلها : سجل محرر طبق على جميع النماذج المستخدمة
  2. تستطيع منع الحذف من الفرعي عند تحقق الشرط والعكس صحيح لتصبح الجملة هكذا dty = DMax("edate", "employees") If Me.edate < dty Then Me.AllowEdits = False Me.fvacations.Locked = True Me.fvacations.Form.RecordSelectors = False Else Me.AllowEdits = True Me.fvacations.Locked = False Me.fvacations.Form.RecordSelectors = True End If اما مسألة الرسالة فليس لها صلة بالموضوع والافضل ان تفرد لها سؤلا يخصها
  3. اعتقد تم طرق الفكرة في اكثر من موضوع هنا يابو جودي ابحث في المنتدى عن : اكثر من صورة
  4. وعليكم السلام تفضل الامر المسؤول عن ذلك ويمكنك استبدال الرابط الموجود داخل لسطر اما بمربع نص او متغير Call Shell("explorer " & "D:\officena\a1\b1\c1", vbNormalFocus)
  5. لم افهم ؟ ولكنك تستطيع من خلال المرفق السابق طباعة الجميع دفعة واحدة كل فصل بصفحة تخصه كما يمكنك طباعة فصل واحد فقط وهذا هو طلبك ان كنت تريد عرض جميع الطلاب كما في مرفقك الاول فلا بأس ان تحتفظ بالتقرير وتجعل له زر يخصه
  6. استخدم الدالة nz nz([a])+nz([m])+nz([f])+nz([c])+nz([d])
  7. تفضل هذا تطبيق للفكرة التي ذكرتها اعلاه dty = DMax("edate", "employees") If Me.edate < dty Then Me.AllowEdits = False Me.fvacations.Locked = True Else Me.AllowEdits = True Me.fvacations.Locked = False End If db1.rar
  8. تعليق على كلام اخونا محمد سلامة المثل عندنا يقول : من تردد في ارض عرفها اخوي زوهير المسألة بالضبط كما في اكسل سحب واسقاط من مربع الادوات انظر المثال الجديد ما تبحث عنه حقيقة صنعته لك في فورم جديد اما الفورم الاول فهو عبارة عن حركات تحاكي علامة الجدولة Tabs.rar
  9. نعم يبدوا لي يوجد مشكلة في النموذج لذا فالمعايير لا تقرأ بصورة صحيحة تصرفت قليلا بالنموذج حتى ابين لك الفكرة في المثال المرفق : اذا تركت المربعات خالية فانه يتم عرض الجميع كل فصل في صفحة ويمكنك الفلترة وتحديد المطلوب فقط cvch.rar
  10. ارفق مثالك واجعله على صيغة mdb يلاحظ في المثال الا يزيد على جدول واحد ونموذج وتقرير
  11. بحثت في المنتدى عن حماية او تعديل فرعي ولكن لم يظهر ما ابحث عنه ولكن برزت لي فكرة لتخطي تغيير تاريخ الجهاز ويمكنك التجربة وتطبيقها وهي جلب آخر تاريخ تم تسجيله في الجدول ثم مقارنته مع التاريخ الظاهر في النموذج هذه الخطوة تحل مشكلة التلاعب في تاريخ الجهاز
  12. انا لم اطلع على المرفق بسبب الاصدار ومادام يوجد نموذج رئيس وآخر فرعي فأرى ان طريقة اخونا محمد سلامة هي المناسبة والمضمونة علما انه قد مر في المنتدى مثل هذا الموضوع سابحث لك عنه
  13. يمكنك كتابة كلمة : للرفع للتذكير بوضوعك بدلا من انشاء موضوع جديد
  14. هل تقصد علامات الجدولة ؟ ايضا اليك طريقة اخرى لاخفاء اطار اكسس هذه اجعلها في وحدة نمطية عامة Global Const ME_HIDE = 0 Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal sCmdShow As Long) As Long Sub sHidwindow() Dim NMC As Long NMC = apiShowWindow(hWndAccessApp, ME_HIDE) End Sub وهذا السطر اجعله في حدث فتح النموذج Call sHidwindow اما علامة الجدولة فهي في صندوق الادوات يمكن سحبها وافلاتها داخل النموذج وهذا مثال لتلوين علامات الجدولة مع اخفاء اطار اكسس ColoredTabs.rar
  15. لم افهم المطلوب وخاصة الميلتباج اذا كنت مبتدأ جدا في اكسس فانا ضعيف جدا في اكسل هل فتحت المثال ؟ وهل اختفى اطار اكسس ؟ قد لا يختفي في الاصدارات الحديثة ، واحب التنويه الى اني اعمل على اصدار 2003
  16. وعليكم السلام DoCmd.RunCommand acCmdAppMinimize dbx.rar
  17. Private Sub Form_Current() If Me.fldate < Date Then Me.AllowEdits = False Else Me.AllowEdits = True End If End Sub باعتبار flddate هو حقل التاريخ في النموذج db2.rar
  18. الحمد لله وبارك الله فيك الله يسعدك يابوعبدالله ما يفوت عليك شي
  19. Option Compare Database Dim DBOld As String Dim DBNew As String Private Sub Form_Close() On Error Resume Next Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB OldFile = DBOld DBwithEXT = Dir(OldFile) DBwithoutEXT = left(DBwithEXT, Len(DBwithEXT) - 4) Application.SetOption "Use Hijri Calendar", False NewFile = DBNew & "\" & Format(Now, "yyyymmddhhnnss") & ".mdb" CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """" Shell CopyMyDB, 0 Exit Sub End Sub Private Sub Form_Load() DBOld = CurrentProject.Path & "\db2.mdb" DBNew = CurrentProject.Path & "\tst\" Call zerNc End Sub Sub delfiles() Dim strFldr As String Dim strFile As String Dim FileToGet As String strFldr = CurrentProject.Path & "\tst" ' modify folder to your own strFile = Dir(strFldr & "\*.*") ' get list of files in folder Do While Len(strFile) > 0 FileToGet = left(strFile, Len(strFile) - 4) If FileToGet <= CStr(Format(Date - 3, "yyyymmdd")) Then Kill strFldr & "\" & strFile Else End If strFile = Dir Loop End Sub Sub zerNc() On Error Resume Next Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB OldFile = DBOld DBwithEXT = Dir(OldFile) DBwithoutEXT = left(DBwithEXT, Len(DBwithEXT) - 4) Application.SetOption "Use Hijri Calendar", False NewFile = DBNew & "\" & Format(Now, "yyyymmddhhnnss") & ".mdb" CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """" Shell CopyMyDB, 0 Exit Sub Me.Requery Call delfiles End Sub db.rar
  20. السلام عليكم في وقت مضى احتجت الى حذف مستندات محددة في مجلد والإبقاء على أخرى حسب التاريخ والأقدمية فعرضت موضوعي هنا وقد تكفل بحل المسألة واجاد استاذنا ابو آدم جزاه الله خيرا ومن هناك انبثقت فكرة ضرورة ايجاد عملية تسبق او تلي عملية النسخ داخل الاجراء نفسه ومهمتها تحسس مجلد النسخ يتم من خلالها حذف النسخ الزائدة ان وجدت والابقاء على آخر ثلاث نسخ جديدة وقد ذكرت هذا الكلام في سياق مشاركة لي سابقة وكانت فقط اشارة الى هذه الفكرة اليكم ادناه تطبيق عملي مع الاكواد المصاحبة :
  21. يمكن وعلى نحو ما تفضلت به ولكننا نحتاج الى بعض التعديلات التعديل الاول على نوع الحقل id داخل الجدول الى نص بدلا من رقم حتى يقبل الرموز التعديل الثاني : هو اجراء المقارنة على الارقام الثلاثة الاخيرة بدلا من مقارنة الرقم كاملا والسبب وجود الرمز الفاصل وتعديلات اخرى يمكنك ملاحظتها عند المقارنة مع الكود السابق Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = DatePart("yyyy", Date) prtTxt = CLng(Left(DMax("ID", "tbl1"), 4)) xLast = CLng(Right(DMax("ID", "tbl1", prtTxt = prtyr), 3)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!ID = prtyr & "/" & Format(xNext, "000") End Sub ترقيم مع السنة.rar
  22. شكرا لكم احبتي وأساتذتي الفضلاء جعفر ومحمد والعبادلة الاستاذ جعفر .. يزيدني شرفا ان يكون لي مشاركة في أعمالك الاستاذ محمد سلامة .. لا اعرف افضل من النماذج للتحكم الكلي في الرسالة الاستاذ عبدالله قدور .. اتمنى انك استطعت تطبيق المثال الاستاذ عبدالله المجرب .. اسعدني مرورك اخي الغالي محمد عصام تفضل المثال بعد التعديل والتغيير تم على كلمة واحدة فقط في الوحدة النمطية العامة msgBox-3.rar
  23. عدم الرد من صاحب السوال جعلني ادخل مرة اخرى اواكتشف اني لم ارفق الوحدة المسؤولة عن الترجمة تفصل والصقها في صفحة وحدة نمطية جديدة Public Ok, Cancel, ABORT Public RETRY, IGNORE, YES, NO Private m_hHook As Long Private Const IDOK = 1 Private Const IDCANCEL = 2 Private Const IDABORT = 3 Private Const IDRETRY = 4 Private Const IDIGNORE = 5 Private Const IDYES = 6 Private Const IDNO = 7 Private Const WH_CBT = 5 Private Const GWL_HINSTANCE = (-6) Private Const HCBT_ACTIVATE = 5 Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, _ ByVal lpString As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" _ (ByVal hHook As Long) As Long Public Sub MessageBoxH(hwndThreadOwner As Long) Dim hInstance As Long Dim hThreadId As Long hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE) hThreadId = GetCurrentThreadId() m_hHook = SetWindowsHookEx(WH_CBT, AddressOf _ MsgBoxHookProc, hInstance, hThreadId) End Sub Private Function MsgBoxHookProc(ByVal uMsg As Long, ByVal _ wParam As Long, ByVal lParam As Long) As Long If uMsg = HCBT_ACTIVATE Then SetDlgItemText wParam, IDOK, Ok SetDlgItemText wParam, IDCANCEL, Cancel SetDlgItemText wParam, IDABORT, ABORT SetDlgItemText wParam, IDRETRY, ABORT SetDlgItemText wParam, IDIGNORE, ABORT SetDlgItemText wParam, IDYES, YES SetDlgItemText wParam, IDNO, YES UnhookWindowsHookEx m_hHook End If MsgBoxHookProc = False End Function
  24. شكرا اخي جعفر على هذه النوادر الجميلة وتفضل اخي عبدالله يمكنك كتابة اي شيء على الزر Dim resalh As Integer Ok = "أكيد موافق" Cancel = "not agree" MessageBoxH Me.hwnd resalh = MsgBox("تفضل هذه الخلطة في اللغة", vbOKCancel, "رسالة")
  25. اجعل مصدر بيانات النموذج الفرعي استعلام خارجي ثم استخدم الدالة Dlookup لفحص الاستعلام
×
×
  • اضف...

Important Information