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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    128

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

  1. تمام ، بناءً على كلامك ، سيكون التعديل كالتالي ، وأنصح بدراسة وتجربة جميع الإحتمالات حتى تلم بها دون اي مشاكل .. استبدل التعديل السابق بالتالي في التقرير :- Private Sub ProcessNoRemarriageCertificate() Me.L3.Visible = False Me.L2.Visible = True Me.L1.Visible = True Call InitializeControlsVisibility Dim zawjValue As Integer, zawjaValue As Integer zawjValue = Nz(Me.Tbl_ZAWJ_Hamech.Value, 0) zawjaValue = Nz(Me.Tbl_ZAWJA_Hamech.Value, 0) Dim dateDivorce As Date, dateDeath As Date On Error Resume Next dateDivorce = Nz(DLookup("[تاريخ (الوفاة - الطلاق)]", "N_Mariag"), 0) dateDeath = Nz(DLookup("[تاريخ الوفاة]", "N_Mariag"), 0) On Error GoTo 0 Select Case True ' حالة "لم تطلق منذ زواجها" Case (zawjValue = 1 And zawjaValue = 1) Me.k5.Visible = False Me.Da5.Visible = True Me.Za5.Visible = True ' حالة "عدم إعادة الزواج وهي أرملة" Case (zawjValue = 2 And zawjaValue = 1) Me.k6.Visible = False Me.Da6.Visible = True Me.Za6.Visible = True ' حالة "عدم إعادة الزواج وهي مطلقة" Case (zawjValue = 1 And zawjaValue = 2) Me.k7.Visible = False Me.Da7.Visible = True Me.Za7.Visible = True ' حالة "الزواج المنعقد بين السيد والسيدة" Case (zawjValue = 1 And zawjaValue = 1) Me.k8.Visible = False Me.Za8.Visible = True Me.Com8.Visible = True Me.Ne8.Visible = True ' الحالة الجديدة أخي طاهر عندما يكون الزوج متوفي والزوجة مطلقة (zawjValue = 2 And zawjaValue = 2) Case (zawjValue = 2 And zawjaValue = 2) If dateDeath > dateDivorce And dateDivorce <> 0 And dateDeath <> 0 Then ' إذا توفي الزوج بعد تاريخ طلاق الزوجة Me.k7.Visible = False Me.Da7.Visible = True Me.Za7.Visible = True Else Me.k7.Visible = True Me.Da7.Visible = False Me.Za7.Visible = False End If End Select DoCmd.Close acForm, "A3" End Sub Private Sub InitializeControlsVisibility() Dim controlNames As Variant controlNames = Array("k5", "Da5", "Za5", "k6", "Za6", "Da6", _ "k7", "Za7", "Da7", "k8", "Za8", "Com8", "Ne8", _ "k1", "Za1", "Da1", "k2", "Za2") Dim ctrlName As Variant For Each ctrlName In controlNames On Error Resume Next Me.Controls(ctrlName).Visible = (Left(ctrlName, 1) = "k") On Error GoTo 0 Next ctrlName End Sub
  2. أخي @طاهر اوفيسنا ، توضيحك للقيم الخاصة بالهامش في الجداول جاءت لك بفائدة كبيرة وهذا الى حد ما جزء من التأسيس الصحيح . تم استخدام هياكل تحكم أفضل من الجمل الشرطية . حيث استبدلت عبارات If-ElseIf المتعددة ببنية Select Case أكثر وضوحاً واستقرار مع دالة مساعدة بسيطة ، في المرفق التالي :- فتح تقرير FACE15.zip وفي الواقع انا تلافيت التعديل والعبث في مكونات جداولك بعد تعليقك على تعديلاتي في التقرير 😅 . ردك جعلني أتراجع عن المتابعة الى حد ما سابقاً ولكن الحمد لله تيسرت بطريقتك المشروعة .
  3. اعتذر منك عن المواصلة ، فعملك يحتاج لإعادة بنااااااء . وخصوصاُ فكرة الهوامش الغير متوحدة ، بما أنك أوجدت جدول للهوامش فمن المفترض ان يضم جميع الإحتمالات وبأسلوب صحيح وليس كما في الجدول الخاص بالهامش = Tbl_Hamech هامش العملية على قيد الحياة و غير مطلقة على قيد الحياة و مطلقة بتاريخ : مطلقة بتاريخ : ومتوفيه بتاريخ : متوفية بتاريخ : وفي الجدول الخاص بالزوج = Tbl_ZAWJ الهامش متوفي بتاريخ : متوفي بتاريخ : على قيد الحياة بينما في الجدول الخاص بالزوجة = Tbl_ZAWJA الهامش على قيد الحياة و مطلقة بتاريخ : على قيد الحياة و غير مطلقة على قيد الحياة و مطلقة بتاريخ : فمن المفترض ان يلم الجدول الخاص بالهوامش بجميع الحالات والتي يمكن ان تساعدك في تحقيق طلبك . وعليه فأن القيمة في الحقل في جدول الزوج والزوجة للحقل الهانش ستكون بما يناظرها في جدول الهوامش .. هذه وجهة نظري الغير ملزمة لك ، ما لم يكن هناك وجهة نظر أخرى لأحد الأساتذة , أو إن لم أخرج لك بطريقة أخرى تحافظ على ما تريده ، مع العلم أنني استشرتك في التعديل على فكرة التقرير ، وقد سمحت لي بما يتحقق مع مطلبك ثم عدلت عن الفكرة بإنها تغير من بنية التقرير ( بسبب قيود إدارة الحالة المدنية الجزائرية .
  4. وعليكم السلام ورحمة الله وبركاته ، صدقاً لم أتجاهل طلبك ، ولكن لضغط العمل سبب في تأخري بالرد ليس إلا ,, سأحاول غداً ان شاء الله تعديل الفكرة حسب ملفك الأخير
  5. أخي @طاهر اوفيسنا ، ممكن توضح لي الحقل Hamech ???????? قيمته في جدول الزوجة Tbl_ZAWJA = الهامش على قيد الحياة و مطلقة بتاريخ : على قيد الحياة و غير مطلقة على قيد الحياة و مطلقة بتاريخ : بينما في الاستعلام = 2 OR 4 الأمر يستدعي إصلاح الكثير من الأخطاء للحصول على طلبك ،
  6. أخي @طاهر اوفيسنا ,, جرب هذا التعديل البسيط بعد ان تجاهلت ما كنت اعمل عليه سابقاً ,, فتح تقرير FACE14.zip عدلت عن السلوك السابق ، واتبعت سلوك جديد في التنفيذ ، جربه ان كان ناجحاً . فأنت أدرى مني بسلوك برنامج وآلية العمل عليه .
  7. ماتت الأفكار عند هذه النقطة ، بعد ان انتهينا من تنفيذ الفكرتين الأولى والثانية
  8. وعليكم السلام ورحمة الله وبركاته ,, أخي الكريم انت تطلب مشروع متكامل وليس طلب واحد .. حاول تجزئة طلباتك الى مواضيع منفصلة بدءً بالمهم والأساسي حتى تحصل على نتيجة تحقق لك غايتك ..
  9. سؤالي لك أخي طاهر .. هل شرط التقيد بتصميم التقرير واجب ، أم تريد أن أجد طريقة أخرى أبسط وأوفر دون الحاجة لوجود خط على النص الغير متوافق مع الحالة !!! فهمت مقصدي ؟؟
  10. مرفق جزء من أحد المشاريع السابقة ، لفاتورة البيع والشراء مع المستلزمات ،، تم حذف أجزاء كثيرة من المشروع وأكواد واستعلامات ليس لها علاقة بالمطلوب ,, New DB.accdb
  11. بعد تجربة سابقة لفكرة الجدول الواحد أو جدول الحركات ، وجدت أنها أفضل فكرة لتصميم برنامج محاسبي أو كاشير يختص بالبيع والشراء .. اذا وجدت الملف سأرفقه هنا عله يساعدك أخي @Ahmed_J في الوصول الى هدفك وطلبك ..
  12. أخي @طاهر اوفيسنا ، كل الإحترام والتقدير لك ولأهلنا في الجزائر الشقيق ,, ورغم أني أحاول فهم اسلوبك في التوضيح ، إلا أنني سأطلب منك لطفاً توجيه النقاط المطلوبة والشطر الغير مكتمل ( شرحاً وافياً ) بالعربية الفصحى ، فقط تختلط علي مصطلحات تؤدي الى فهمي الخاطئ لمقصودكم منه .
  13. دعماً للأفكار المطروحة ، جرب هذه الفكرة بعد ان تمت تجربتها Private Sub Datail_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next If Me.Counter > 25 Then Me.StuName.FontSize = 12 Me.StuName.Height = 300 Me.Datail.Height = 300 Else Me.StuName.FontSize = 14 Me.StuName.Height = 600 Me.Datail.Height = 600 End If End Sub
  14. Me.Upfield = Me.Upfield & " " & Format(Date, "yyyy,mmm,dd") أو Me.Upfield = Me.Upfield & " " & Format(Date, "yyyy,dd,mmm") جرب ما يحقق غايتك
  15. صدقاً حاولت أن افهم الفكرة من خلال المرفق الذي كنا نعمل عليه ، ولم تتوضح ، لذا وإلتزاماً منك أرجو أولا المتابعة لإنهاء المشكلة المتعلقة بهذا الموضوع ، ثم لا مانع لدي بمتابعتك في موضوع جديد للوصول الى حل لمشكلتك التي أرجو منك أيضاحها بطريقتك وبأسلوبك الرائعين ، مع دعمها بمرفق يساعدنا على ايجاد حل مناسب يلبي حاجتك
  16. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم يوجد أكثر من طريقة واسلوب وحل ، ولكن قبل الشروع بذكر أحدها سأنصحك نصيحة متفرعة = 1. الإبتعاد عن التسميات العربية للجداول والحقول والنماذج ومكوناتها . 2. عدم استخدام "-" في التسميات ، والأفضل استخدام "_" إن كنت مضطراً . الآن في النموذج سنقوم بحذف جميع الأكواد ولا حاجة لها ولا حاجة للزر أيضاً ، ثم في مديول جديد ألصق الكود التالي :- Public Sub UpdateEmployeeFiles() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strPath As String Dim strFileName As String strPath = CurrentProject.Path & "\" Set db = CurrentDb Set rs = db.OpenRecordset("جدول1", dbOpenDynaset) If Not rs.EOF Then rs.MoveFirst Do Until rs.EOF strFileName = strPath & rs!رقم_الموضف & ".pdf" rs.Edit If Dir(strFileName) <> "" Then rs!لديه_ملف = "نعم" rs!مسار_الملف = strFileName Else rs!لديه_ملف = "لا" rs!مسار_الملف = Null End If rs.Update rs.MoveNext Loop End If rs.Close Set rs = Nothing Set db = Nothing End Sub وفي النموذج يكفينا الإستدعاء للدالة في حدث عند التحميل كما يلي :- Private Sub Form_Load() UpdateEmployeeFiles End Sub حيث أن الدالة ستقوم بتحديث قيمة الحقل في كل مرة تفتح فيها النموذج للموظفين الذين لديهم ملف PDF أو لا . أيضاً سيتم تعديل مسار الملف اذا كان موجوداً بدلاً من استخدامك للكود السابق في حدث "في الحالي" . FILE.zip
  17. ما عاش اللي يتعبك معلمي الفاضل ،، بأقرب فرصة إن شاء الله سأحاول السير على خطاك لتلافي هذه المعضلة 😇
  18. وعليكم السلام ورحمة الله تعالى وبركاته.. هل جربت في التنسيق لمربع النص هذا ان يكون بهذا الشكل ؛- yyyy,mmm,dd أو بهذا التنسيق أيضاً yyyy\,dd\,mmm
  19. مساهمة بعد تعديلها لتعمل على اكسل بدلاً من اكسيس ولست متأكد منها :- في وحدة نمطية جديدة = Option Compare Database #If VBA7 Then Private Declare PtrSafe Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As LongPtr, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As LongPtr _ ) As Long Private Declare PtrSafe Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As LongPtr, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare PtrSafe Function GetCurrentProcess Lib "kernel32" () As LongPtr Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As LongPtr #Else Private Declare Function OpenProcessToken Lib "advapi32.dll" ( _ ByVal ProcessHandle As Long, _ ByVal DesiredAccess As Long, _ ByRef TokenHandle As Long _ ) As Long Private Declare Function GetTokenInformation Lib "advapi32.dll" ( _ ByVal TokenHandle As Long, _ ByVal TokenInformationClass As Long, _ ByRef TokenInformation As Any, _ ByVal TokenInformationLength As Long, _ ByRef ReturnLength As Long _ ) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As Long #End If Public Function IsRunAsAdmin() As Boolean Const TOKEN_QUERY As Long = &H8 Const TokenElevation As Long = 20 Dim hToken As LongPtr Dim elev As Long Dim retLen As Long If OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hToken) <> 0 Then If GetTokenInformation(hToken, TokenElevation, elev, LenB(elev), retLen) <> 0 Then IsRunAsAdmin = (elev <> 0) End If End If End Function Public Sub RestartAsAdmin() Dim exePath As String Dim dbArgument As String exePath = Application.FullName dbArgument = """" & Application.CurrentProject.FullName & """" ShellExecute 0, "runas", exePath, dbArgument, vbNullString, 1 Application.Quit End Sub Public Sub CreateTextFile() Dim FilePath As String Dim FileNum As Integer If Not IsRunAsAdmin Then MsgBox "البرنامج بحاجة إلى صلاحيات مسؤول (Administrator)." & vbCrLf & _ "سيتم إعادة تشغيل Access بطلب صلاحيات مرتفعة...", _ vbExclamation, "تحتاج صلاحيات" RestartAsAdmin Exit Sub End If FilePath = "C:\Windows\fs.txt" FileNum = FreeFile Open FilePath For Output As #FileNum Print #FileNum, "fs" Close #FileNum MsgBox "تم إنشاء الملف بنجاح في:" & vbCrLf & FilePath, _ vbInformation, "نجاح" End Sub الإستدعاء سيكون في الزر على سبيل المثال = CreateTextFile
  20. من أحد مشاريعي القديمة ، جرب هذا الكود في حدث عند فتح التقرير Private Sub Report_Open(Cancel As Integer) Dim lngRecordCount As Long Dim ctl As Control lngRecordCount = DCount("*", Me.RecordSource) For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then If lngRecordCount > 25 Then ctl.FontSize = 12 ctl.Height = 284 Else ctl.FontSize = 14 ctl.Height = 357 End If End If Next ctl End Sub
  21. وعليكم السلام ورحمة الله وبركاته ،،، لا اعلم ان كان هذا الموضوع سيفيدك بشيء ، ولكن الق نظرة عليه وهذا الموضوع :- وهذا الموضوع القديم لك أخي الكريم :-
  22. لي 3 اسئلة خطرت على بالي بعد القراءة للموضوع بشكل نقاط :- كيف يتم التعامل مع الإجازات التي تتخللها عطلات رسمية أو أسبوعية ؟ ما هو الغرض من الحقل isVacation في tblDailyRecords ؟ كيف يتم حساب مدة الإجازة الفعلية ( باستثناء العطل ) ؟
  23. قم بتعديل الاستعلام "qryUnionTemp" الى :- SELECT Tbl_ZAWJ.IDP, [Tbl_ZAWJA].[Nom2] & " " & [Tbl_ZAWJA].[Prenom2] AS FullNames, [Tbl_ZAWJA].[Date_Naiss2] & "بـ " & [Tbl_ZAWJA].[مكان الميلاد] AS Date_Place, "زوجة" AS Typeer FROM Tbl_ZAWJ LEFT JOIN Tbl_ZAWJA ON Tbl_ZAWJ.IDP = Tbl_ZAWJA.IDP WHERE Tbl_ZAWJ.IDP = Forms!A3!IDP UNION ALL SELECT Tbl_Enf.IDP, [Tbl_Enf].[إسم الطفل] & " " & [Tbl_ZAWJ].[Prenom1] AS FullNames, [Tbl_Enf].[تاريخ الميلاد] & "بـ " & [Tbl_Enf].[مكان الميلاد] AS Date_Place, "بنت" AS Typeer FROM (Tbl_ZAWJ LEFT JOIN Tbl_ZAWJA ON Tbl_ZAWJ.IDP = Tbl_ZAWJA.IDP) LEFT JOIN Tbl_Enf ON Tbl_ZAWJA.IDM = Tbl_Enf.IDM WHERE Tbl_Enf.IDP = Forms!A3!IDP AND (Year(Date()) - Year([Tbl_Enf].[تاريخ الميلاد])) > 17 AND Tbl_Enf.الجنس = "أ"; فقط تم اضافة الشرط في السطر الأخير
  24. لم تأت على الشرط المحدد بالإناث فقط !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
×
×
  • اضف...

Important Information