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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

Community Answers

  1. jjafferr's post in كود التالي لحقل غير منتظم بالنموذج was marked as the answer   
    وهذه طريقة اخرى 🙂
    مثل سابقتها ، ولكن بطريقة تختلف قليلا ، وبدون Recordset للانتقال للسجل التالي 🙂
     
    جعفر
    1137.3.مثال.accdb.zip
    قصدك الاستاذ خالد 🙂
  2. jjafferr's post in هل لديك تجربه لكسر كلمة سر قاعدة بيانات ؟ was marked as the answer   
    اذا البرنامج بصيغة mdb او mde ، فنعم في برامج لفك كلمة السر ،
    ولكن لا يوجد برنامج لفك كلمة السر للبرامج بصيغة accdb او accde ، فكل البرامج عندها محاولات لفك كلمة السر ، كما ذكرت في الرابط اعلاه 🙂
     
    والحكم الانترنت ، ابحث ، وبتشوف النتائج 🙂
     
    جعفر
  3. jjafferr's post in هل يمكن فتح الفورم في وضع التصميم؟ was marked as the answer   
    للأسف ما عندي تجربة في مثل الشيء ، وبعد البحث اخبرتك 🙂
    وقوانين المنتدى تقول:
    1. يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية
    لا تسمح بأن نفك كلمة سر برنامج (هذا اذا كنا قادرين اصلا) ، ولكن الانترنت مليان مثل هذه الاسئلة 🙂
     
    جعفر
  4. jjafferr's post in مشكلة ظهور الرسالة OLE was marked as the answer   
    وعليكم السلام 🙂
     
    اذا OLE ، اذن لا توجد لغة صحيحة بها UNICODE 🙂
     
     
    جعفر
  5. jjafferr's post in عدم تحضير الطالب was marked as the answer   
    في زر الاضافة ، انت تبحث عن الطالب في الاستعلام qryCheckRepeat
     

    .
    لذلك ، وجب علينا ان نكتب التاريخ ايضا في معيار حقل التاريخ ، والذي نشير اليه لحقل التاريخ في النموذج Form3 :

    .
    جعفر
  6. jjafferr's post in كيف اجبر المستخدم على أن يكون رقم الهوية يبدأ بـ 2 was marked as the answer   
    تفضل 🙂
     
    Private Sub K_id_BeforeUpdate(Cancel As Integer) If Left(Me.K_id, 1) <> 2 Then Cancel = True MsgBox "يجب ان يبدأ هذا الحقل بالرقم 2" Exit Sub End If End Sub  
    جعفر
  7. jjafferr's post in رسالة تنبيه إدخال التاريخ في الحقل المخصص was marked as the answer   
    وعليكم السلام 🙂
     
    قمت بتغيير اسم حقل التاريخ الى iDate ،
    و زر الاضافه ، اصبح كوده (يتأكد من ادخال بيانات اليوم والحصة والتاريخ ، واذا ما اردت اي منهم ، يمكنك الغاءه/حذفه من الكود) :
    Private Sub Command42_Click() 'التأكد من ان الحقول مملوءه قبل السماح بإضافة سجل If Len(Me.iDay & "") = 0 Then 'اليوم MsgBox "فضلا أدخل اليوم" Me.iDay.SetFocus Exit Sub ElseIf Len(Me.iA1 & "") = 0 Then 'الحصة MsgBox "فضلا أدخل الحصة" Me.iA1.SetFocus Exit Sub ElseIf Len(Me.iDate & "") = 0 Then 'التاريخ MsgBox "فضلا أدخل تاريخ اليوم" Me.iDate.SetFocus Exit Sub End If If DCount("[MainId]", "qryCheckRepeat") = 0 Then DoCmd.SetWarnings False DoCmd.RunSQL "insert into subst(mainid,type,TDate,Day,A1)values (' " & Me.StId & " ',' " & Me.Combo36 & " ',' " & Me.Text40 & " ',' " & Me.iDay & " ','" & Me.iA1 & "')" DoCmd.SetWarnings True Me.iStName.Requery Me.SubSt.Requery Else MsgBox "لقد تم تحضير الطالب من قبل" Exit Sub End If End Sub  
    جعفر
    1126.(02) متابعة غياب طلاب الفراغات.mdb.zip
  8. jjafferr's post in خطاء في اضافة مستخدم جديد was marked as the answer   
    تفضل 🙂
     
    تصحيح فني ، ولا علاقة له بالموضوع:
    هذه الطريقة خطأ Option Compare Database Dim UserRS As Recordset Option Explicit Public UsN Public UsM والطريقة الصحيحة Option Compare Database Option Explicit Dim UserRS As Recordset Public UsN Public UsM .
    والخطأ كان في هذا السطر:
    Set UserRS = DB.OpenRecordset(" SELECT tbl_User.* FROM tbl_User WHERE tbl_User.user_name ='" & UsN & "' AND tbl_User.City='" & UsM & "';", dbOpenDynaset)  
    ولكنك لم تخبر البرنامج ما هو المتغير DB ، لهذا السبب يمكننا تغيير الكود الى التالي:
    Set UserRS = CurrentDb.OpenRecordset(" SELECT tbl_User.* FROM tbl_User WHERE tbl_User.user_name ='" & UsN & "' AND tbl_User.City='" & UsM & "';", dbOpenDynaset) ويمكن اختصاره الى Set UserRS = CurrentDb.OpenRecordset(" SELECT * FROM tbl_User WHERE user_name ='" & UsN & "' AND City='" & UsM & "';", dbOpenDynaset) .
    جعفر
  9. jjafferr's post in Tab Contrnl was marked as the answer   
    تفضل 🙂
    Private Sub TabCtl0_Change() 'page name Me.ss1 = Me.TabCtl0.Pages.Item(TabCtl0.Value).Name 'OR 'page caption Me.ss1 = Me.TabCtl0.Pages.Item(TabCtl0.Value).caption End Sub  
    جعفر
  10. jjafferr's post in تعديل كود was marked as the answer   
    السلام عليكم 🙂
     
    تفضل 🙂
    'FileCopy varFile, destpath Name varFile As destpath  
    جعفر
  11. jjafferr's post in تضخم سجلات الجدول.. was marked as the answer   
    وعليكم السلام 🙂
     
    لا تقلق ، امامك مشوار طويل مع الاكسس وبدون مشاكل في البطئ ان شاء الله 🙂
     
    اما تحويل الجداول الى SQL server ، فقد قام اخونا السيد جمال بوضع موضوع في غاية الروعة في شرحة:
     
     
    جعفر
  12. jjafferr's post in ربط تقرير بنموذج حسب التاريخ من إلى was marked as the answer   
    تفضل ، تم التعديل على مرفقك🙂
     
    بس انت قلت انك تريد كل تاريخ في صفحة مستقلة ، وهذا اللي عملته لك !!
     
    جعفر
    1117.2.برنامج متابعة غياب طلاب الفراغات.mdb.zip
  13. jjafferr's post in ( أحتاج عندما أختار اليوم والحصة ) ما يظهر لي غير طالاب الحصة المختارة (معدل) was marked as the answer   
    تفضل 🙂
     
    تم تغيير نوع الحقل A1 في الجدول StuSce من نوع مذكرة الى نوع رقم، حتى يتم الربط بين الجدولين
    برنامج متابعة غياب طلاب الفراغات.zip
  14. jjafferr's post in تبديل رسالة خطا برسالة اخرى was marked as the answer   
    السلام عليكم 🙂
     
    اذا تسمحوا لي بالمشاركة 🙂
    لإصطياد رقم الخطأ ، يجب علينا ان نستعمل حدث "on error" ، في النموذج الذي نحصل فيه على الخطأ ، وفي حالتنا ، فهو النموذج الفرعي ، هكذا:
    Private Sub Form_Error(DataErr As Integer, Response As Integer) MsgBox DataErr End Sub  
    وعند التجربة ، نحصل على هذا:

     
    الآن وقد عرفنا رقم الخطأ ، اصبح من السهل التعامل معاه ، هكذا مثلا:
    Private Sub Form_Error(DataErr As Integer, Response As Integer) 'MsgBox DataErr If DataErr = 3314 Then Response = acDataErrContinue strMsg = "لا يمكن ترك الحقل التالي فارغ " & vbCrLf & _ "المنصرف بالوحدة الصغرى" MsgBox strMsg End If End Sub  
    ونلقى هذه الرسالة الآن:

     
    جعفر
    1110.Market.accdb.zip
  15. jjafferr's post in إشكال في المفتاح الأساسي في الجدول was marked as the answer   
    اخذا بالاعتبار مرفقك الاول ،
    الطريقة اللي تريدها تصير فقط عن طريق النموذج ،
    اعمل الكود التالي قبل حفظ النموذج:
    Private Sub Form_BeforeUpdate(Cancel As Integer) Me.مفتاح = Me.[م] & Me.[رقمها] & Me.[الآية] End Sub  
     
    جعفر
  16. jjafferr's post in سؤال : بخصوص تمرير معيار الى الرسائل فى الجدول was marked as the answer   
    نفس الطريقة اعلاه ، ولكن بتغيير في الوحدة النمطية التالية:
    Public Function MyMesg(Mesgtxt As String, _ Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, _ Optional ByVal Title As String = "Judy", _ Optional ByVal HelpFile As Variant, _ Optional ByVal Context As Variant, _ Optional ByVal AdditionalInfo As String) As VbMsgBoxResult Mesgtxt = Replace(Mesgtxt, "& Strxx", AdditionalInfo) MyMesg = MsgBox(Mesgtxt, Buttons + vbMsgBoxRtlReading + vbMsgBoxRight + vbDefaultButton1, Title) End Function  
    حعفر
    1102.الرسائل من داخل V .01.mdb.zip
  17. jjafferr's post in مشكلة في التقارير ,,, لا تظهر البيانات المطلوبة was marked as the answer   
    تفضل الشرح 🙂

    .

    .

    .
    جعفر
    1101.تجربة تقرير.accdb.zip
  18. jjafferr's post in التنسيق الشرطي was marked as the answer   
    السلام عليكم 🙂
     
    وبعد تحدي ، وصلنا للمطلوب ان شاء الله 🙂
    اضفت الحقول البرتقالية لتحسب عدد المرات الموجود فيها الرقم (من او الى) ، ويمكن جعل هذا الحقل مخفي ،
    الحقول الخضراء هي حقل محسوب في الجدول (موجود سابقا في البرنامج)

    .
    وهذا هو التنسيق الشرطي للحقل بالسهم الاحمر:

    .
    هذه الوحدة النمطية التي تقوم بالعمل ،
    Function Update_All() Dim mySQL As String Dim arr_Fields() As Variant Dim New_value As Long Dim Old_value As Long Dim Number_Field As String Dim tbl_Name As String Dim This_Count As Integer Dim Prev_Count As Integer Dim ctrlN As String Dim frmN As String Dim i As Integer Dim j As Integer Dim This_CountF As Integer Dim Prev_CountF As Integer frmN = Screen.ActiveForm.Name ctrlN = Screen.ActiveControl.Name arr_Fields = Array("من رقم الوارد", "الي رقم الوارد", "من رقـم الرمبة", "الي رقـم الرمبة", "من رقم التخليص", "الي رقـم النخليص") New_value = Forms(frmN)(ctrlN) If Len(Forms(frmN)(ctrlN).OldValue & "") <> 0 Then Old_value = Forms(frmN)(ctrlN).OldValue End If tbl_Name = "جدول الرصاص" 'save Form values If Forms(frmN).Dirty Then Forms(frmN).Dirty = False '1 'get the hieghst value of all fields For i = LBound(arr_Fields) To UBound(arr_Fields) ctrlN = arr_Fields(i) Number_Field = ctrlN & "_2" 'New value This_CountF = DCount("*", tbl_Name, "[" & ctrlN & "]=" & New_value) If This_CountF > 0 Then This_Count = This_Count + This_CountF End If 'Old value If Len(Old_value & "") <> 0 Then Prev_CountF = DCount("*", tbl_Name, "[" & ctrlN & "]=" & Old_value) If Prev_CountF > 0 Then Prev_Count = Prev_Count + Prev_CountF End If End If Next i 'save Form values If Forms(frmN).Dirty Then Forms(frmN).Dirty = False '2 'change the values in the Fields For i = LBound(arr_Fields) To UBound(arr_Fields) ctrlN = arr_Fields(i) Number_Field = ctrlN & "_2" 'New value mySQL = "UPDATE [" & tbl_Name & "] SET [" & Number_Field & "] = " & This_Count mySQL = mySQL & " WHERE [" & ctrlN & "]=" & New_value 'Debug.Print i & "N > " & mySQL; "" DoCmd.RunSQL mySQL 'Old value If Len(Old_value & "") <> 0 Then mySQL = "UPDATE [" & tbl_Name & "] SET [" & Number_Field & "] = " & Prev_Count mySQL = mySQL & " WHERE [" & ctrlN & "]=" & Old_value 'Debug.Print i & "O > " & mySQL DoCmd.RunSQL mySQL End If 'force the field in the Form to take the new value Forms(frmN)(Number_Field).Requery Next i End Function .
    ويتم مناداتها من حدث بعد التحديث لكل حقل ، مثلا :
    Private Sub الي__رقـم_الرمبة_AfterUpdate() Call Update_All End Sub .
    اسماء الحقول صارت مبرمجة في:
    الجدول ، النموذج ، الوحدة النمطية ، والتنسيق الشرطي ،
    لذا ، اذا فكرت بتغيير اسم الحقل في الجدول (او اضافة حقول جديدة) ، فيجب مراعاة تعديل الكائنات التي اشرت اليها اعلاه 🙂
     
    جعفر
    1095.مثال.accdb.zip
  19. jjafferr's post in اشلون افتح نموذج الكتاب ، عند النقر على سجل معلومة الكتاب (عنوان معدل)) was marked as the answer   
    وعليكم السلام 🙂
     
    بما انك لم تعطنا معلومات كافية ، فاليك الطريقة ، وانت قم بالباقي:
    1. نفترض ان اسم النموذج الذي فيه "معلومات الكتاب" اسمه frm_Letter
    2. في النموذج الفرعي الذي في الصورة اعلاه ، اعمل حدث على "النقر المزدوج" على الحقل "رقم" (اول حقل على يدك اليمين في الصورة) ، والحدث يكون لفتح النموذج frm_Letter بالرقم الذي نقرت عليه:
    docmd.OpenForm "frm_Letter",,,"[رقم]=" & me.رقم  
    رجاء تغيير اسماء الكائنات في الكود لتتطابق مع اسماء الكائنات في برنامجك 🙂
     
    جعفر
  20. jjafferr's post in الاوتو كى ماكرو was marked as the answer   
    تفضل 🙂

     
    جعفر
     
    1097.AutoKeys DataMacro close Form Report.zip
  21. jjafferr's post in تخزين قيم القائمة List في جدول واستدعاها was marked as the answer   
    السلام عليكم 🙂
     
    عملت نموذج جديد لإدخال بيانات القائمة ، غير مضمن ، والحقل اللي فيه كذلك غير مضمن

    .
    اضفت اسم هذا النموذج ، كنموذج تحرير لبيانات القائمة

    .
    انقر على القائمة ، حتى يفتح لك النموذج بالحقل الصحيح :

    .
    جعفر
    1093.Ex2.accdb.zip
  22. jjafferr's post in إغلاق نموذج وفتح آخر ثم الانتقل لزر جديد واستدعاء بعض الأوامر والأزرار في النموذج الآخر was marked as the answer   
    السلام عليكم 🙂
     
    بسبب انه مافي بيانات في المرفق ، فما قدرت اجرب ، وما قدرت اني اواصل !!
     
    على العموم ، اليك طرف الخيط 🙂
     
    علشان تنادي حدث في نموذج آخر:
    1. في النموذج الآخر ، يجب تغيير Private الى Public (لاحظ الدائرة الحمراء) ،
    2. علشان ننادي الحدث ، نكتب كما في النقطتين 5 و 6 .
    الامر docmd.close سيغلق النموذج/التقرير الذي عليه التركيز والذي في الواجهة ،
    لهذا السبب ، واذا اردنا ان نغلق النموذج الذي نقرنا زر الاغلاق منه (سند القبض) ، وجب ان نكتب الامر كما في الرقم 3 في الاسفل ،
    ولاحظ اننا نغلق نموذج  (سند القبض) بعد ان نعطي/نرسل الاوامر للنموذج الآخر 🙂

    .
    وعلى هذا المنوال تستطيع مواصلة المشوار 🙂
     
    جعفر
    1086.‏‏BuySal19_v04.mdb.zip
  23. jjafferr's post in تلوين خلفية مريع نص عند الضغط على مفتاح was marked as the answer   
    تفضل 🙂
     
    عملنا حقل جديد لتحديد سجل المنصرف ، واخر لسجل الوارد ، حقول غير مضمنه ، ويمكنك ان تجعلهم مخفيين

    .
    اضفنا في زر منصرف وكذلك في زر وارد ، جعلنا الحقل اعلاه = قيمة التاريخ ، وذلك لأني رايت ان حقل التاريخ هو ما يجعل كل سجل فريد

    .
    وعملنا تنسيق شرطي ، اذا كان قيمة الحقل الغير مضمن = التاريخ ، اذن اجعل خلفيته خضراء

    .
    وهذه النتيجة

    .
    جعفر
    1085.zip
  24. jjafferr's post in سؤال : حفظ البيانات التى يتم تصديرها لملف الورد واغلاقة برمجيا was marked as the answer   
    تفضل يا سيدي 🙂
    Private Sub BtnAllRcrd_Click() 'On Error GoTo ErrHandler On Error Resume Next Dim rs As DAO.Recordset Dim LWordDoc As Object Set LWordDoc = CreateObject("Word.Application") Set rs = CurrentDb.OpenRecordset("Table1") If Not rs.EOF Then rs.MoveFirst Do Until rs.EOF LWordDocOriginal = CurrentProject.Path & "\WordDoc.Doc" ' LWordDocSaveAs = CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc" ' FileCopy LWordDocOriginal, LWordDocSaveAs ' LWordDoc.Documents.Open CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc" LWordDoc.Documents.Open LWordDocOriginal LWordDoc.Visible = False LWordDoc.ActiveDocument.Bookmarks("fname").Select LWordDoc.Selection.InsertAfter Nz(rs!Fullname.Value, "") LWordDoc.ActiveDocument.Bookmarks("Civ").Select LWordDoc.Selection.InsertAfter Nz(rs!CivilNo.Value, "") LWordDoc.ActiveDocument.Bookmarks("Nat").Select LWordDoc.Selection.InsertAfter Nz(rs!Nationality.Value, "") LWordDoc.ActiveDocument.Bookmarks("Rate").Select LWordDoc.Selection.InsertAfter Nz(rs!Rate.Value, "") LWordDoc.ActiveDocument.Bookmarks("Chin").Select LWordDoc.Selection.InsertAfter Nz(rs!CheckIn.Value, "") LWordDoc.ActiveDocument.Bookmarks("Chout").Select LWordDoc.Selection.InsertAfter Nz(rs!CheckOut.Value, "") LWordDoc.ActiveDocument.Bookmarks("Pr").Select LWordDoc.Selection.InsertAfter Nz(rs!Price.Value, "") LWordDoc.ActiveDocument.SaveAs (CurrentProject.Path & "\" & rs!Fullname & "_Doc.Doc") rs.MoveNext Loop 'LWordDoc.Application.Documents(rs!Fullname & "_Doc.Doc").Save 'LWordDoc.Quit 'LWordDoc.ActiveDocument.SaveAs (rs!Fullname & "_Doc.Doc") LWordDoc.Quit Set LWordDoc = Nothing 'ErrHandler: ' If Err.Number = 3021 Then Resume Next End Sub  
    جعفر
  25. jjafferr's post in مشكلة في الاستعلام was marked as the answer   
    السلام عليكم 🙂
     
    للأسف الشديد ، مو كل شيء ممكن يتحقق بإستعلام واحد !!
     
    نعمل استعلام لعملية البيع ، واستعلام لعملية الشراء ، ثم نربط هذين الاستعلامين في استعلام ثالث واللي نحصل فيه النتيجة

    .
    والنتيجة

    .
    جعفر
    1078.Database2.accdb.zip
×
×
  • اضف...

Important Information