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

jjafferr

أوفيسنا
  • Posts

    8,919
  • تاريخ الانضمام

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

  • Days Won

    359

Community Answers

  1. jjafferr's post in العودة الى الفورم الذي استدعى الفورم عند الاغلاق was marked as the answer   
    جميل ،
    اذن LisetViewData ليس اسم النموذج ،
     
    سوف نرسل قيمتين في المتغير OpenArgs ،
    يجب ان يكون الامر عندك هكذا ، نرسل اسم النموذج وقيمة حقل LisetViewData  :
    DoCmd.OpenForm "frm_QualityEvaluation", , , , , acDialog, me.name & "|" & LisetViewData .
    عند اغلاق النموذج frm_QualityEvaluation ، اكتب :
    dim x() as string x=split(me.openargs,"|") Forms(x(0)).Visible = True او Forms(split(me.openargs,"|")(0)).Visible = True .
    وبالنسبة للسجل:
    dim x() as string x=split(me.openargs,"|") rs.Open "SELECT * FROM tbl_QualityEvaluation WHERE id_Ccallg = '" & x(1) & "' And Deletrecord =1 ORDER BY tbl_QualityEvaluation.id_Ccallg DESC;", sqldb او rs.Open "SELECT * FROM tbl_QualityEvaluation WHERE id_Ccallg = '" & split(me.openargs,"|")(1) & "' And Deletrecord =1 ORDER BY tbl_QualityEvaluation.id_Ccallg DESC;", sqldb .
    جعفر
  2. jjafferr's post in نماذج التنقل was marked as the answer   
    الحمدلله 🙂
     
    خلينا من البداية نعطي قيمة ID الى متغير :
    dim myID as long myID= me.ID DoCmd.BrowseTo acBrowseToForm, "General", , , "PA", acFormEdit Forms!General!PA.SetFocus SendKeys "~", True DoEvents Forms!General!JO.SetFocus Dim rst As DAO.Recordset Set rst = Forms!General!JO.Form.RecordsetClone rst.FindFirst "[PCode]=" & myID Forms!General!JO.Form.Bookmark = rst.Bookmark rst.close: Set rst = Nothing 'TurnOnNumLock  
    جعفر
  3. jjafferr's post in عدم التكرار في استعلام الالحاق was marked as the answer   
    وعليكم السلام 🙂
     
    موجود في الاستعلام

    .
    والاستعلام جاهز للعمل 🙂
     
    جعفر
  4. jjafferr's post in مشكلة فى الجمع بين الخلايا و تحديث تلقائى was marked as the answer   
    الحدث الذي يقوم بعمل المطلوب هو "عند التغيير" ،
    ولكن ، وبما ان الحقل (aa2 مثلا) يكون في وضع "تعديل" لما تكتب فيه ، والقيمة اللي فيه لا تكون محفوظه في الحقل بعد ، فلا يمكن استعمال قيمته بعد ،
    لذا ، يجب الاستعانه بحقل آخر (aa22 مثلا ، كما في الصورة التالية ، باللون البرتقالي ، ومخفي) ، بحيث يأخذ قيمة Text. الحقل aa2 ،
    وهكذا الحال للحقل الثاني bb2 ،

    .

    .
    عليه تصبح المعادلات:
    Private Sub Form_Load() Me.aa2 = Empty Me.bb2 = Empty Me.ee2 = Empty Me.aa22 = Empty Me.bb22 = Empty End Sub Private Sub aa2_Change() Me.aa22 = Me.aa2.Text Call Calc_ee2 End Sub Private Sub bb2_Change() Me.bb22 = Me.bb2.Text Call Calc_ee2 End Sub Sub Calc_ee2() Me.ee2 = Val(Nz(Me.aa22, 0)) + Val(Nz(Me.bb22, 0)) End Sub  
    جعفر
    1512.Add fields.accdb.zip
  5. jjafferr's post in التصدير الى الاكسل بتسمية الحقل وليس اسمه was marked as the answer   
    الحقول اللي تصدرها ، تريد استيرادها ، فما فرقت ، التصدير يصير من الجدول او الاستعلام ، فالخطأ سيظل نفسه !!
     
    هناك حل انك تستعمل جداول مؤقته تستورد فيها من ملف الاكسل ، ثم تلحقها بالجدول الصحيح ، ثم تحذف بيانات الجدول المؤقت:
     اذا كانت هذه الجداول المؤقته في نفس البرنامج ، فسيكبر حجم قاعدة البيانات ، لهذا السبب احبذ هذه الطريقة ، ولكن ممكن ان نجعل هذه الجداول المؤقته في قاعدة بيانات خارجية ، بحيث نصنعها عند الحاجة ، ثم نحذفها عند الانتهاء من عملها !!  
    الحل الآخر هو جلب البيانات عن طريق الكود ، وفي الكود نلحق البيانات للحقول الصحيحة ،
    والحل الأخير ، وقد يكون الاسهل ، وهذا يعتمد على ان مجلد واسماء الملفات تظل مثل ما هي ولا تتغير (يجب عليك تعديلها لأول مرة فقط) ، وعليه نستطيع عن طريق الاستعلام ان نستورد البيانات الى الجدول الصحيح 🙂
     
    في انتظار ردك 🙂
     
    جعفر
  6. jjafferr's post in التصدير الى الاكسل بتسمية الحقل وليس اسمه was marked as the answer   
    الحقول اللي تصدرها ، تريد استيرادها ، فما فرقت ، التصدير يصير من الجدول او الاستعلام ، فالخطأ سيظل نفسه !!
     
    هناك حل انك تستعمل جداول مؤقته تستورد فيها من ملف الاكسل ، ثم تلحقها بالجدول الصحيح ، ثم تحذف بيانات الجدول المؤقت:
     اذا كانت هذه الجداول المؤقته في نفس البرنامج ، فسيكبر حجم قاعدة البيانات ، لهذا السبب احبذ هذه الطريقة ، ولكن ممكن ان نجعل هذه الجداول المؤقته في قاعدة بيانات خارجية ، بحيث نصنعها عند الحاجة ، ثم نحذفها عند الانتهاء من عملها !!  
    الحل الآخر هو جلب البيانات عن طريق الكود ، وفي الكود نلحق البيانات للحقول الصحيحة ،
    والحل الأخير ، وقد يكون الاسهل ، وهذا يعتمد على ان مجلد واسماء الملفات تظل مثل ما هي ولا تتغير (يجب عليك تعديلها لأول مرة فقط) ، وعليه نستطيع عن طريق الاستعلام ان نستورد البيانات الى الجدول الصحيح 🙂
     
    في انتظار ردك 🙂
     
    جعفر
  7. jjafferr's post in مشكلة البحث بين تاريخين في حقل DATETIME was marked as the answer   
    ولا يهمك ، تفضل يا سيدي:
    Dim mySQL As String mySQL = "SELECT * " mySQL = mySQL & " FROM tbl_Employ" mySQL = mySQL & " WHERE Format([Startdate],'yyyymmdd') Between '" & Format(Me.TxtStartDate, "yyyymmdd") & "' And '" & Format(Me.TxtEndDate, "yyyymmdd") & "'" Me.ListData.RowSource = mySQL او على سطر واحد Me.ListData.RowSource = "SELECT * FROM tbl_Employ WHERE Format([Startdate],'yyyymmdd') Between '" & Format(Me.TxtStartDate, "yyyymmdd") & "' And '" & Format(Me.TxtEndDate, "yyyymmdd") & "'" .
     
     
    الامر Format يغير ما ما يحتويه من رقم او تاريخ ، الى نص ، 
    والفضل في هذه المعادلة يعود لأخي @رمهان ، حيث قال :
     
    جعفر
  8. jjafferr's post in كيفية معرفة المفتاح بعد الضغط عليه was marked as the answer   
    في النموذج ، اعمل حقل بإسم str_Key ، وضع فيه هذا الكود
    Private Sub str_Key_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) Me.str_Key = Empty End Sub .
    او على مستوى النموذج:
    Private Sub Form_KeyPress(KeyAscii As Integer) Debug.Print ChrW(KeyAscii) End Sub  
    الفرق ان هذا الكود يستعمل KeyAscii ، اي ارقام الحروف ،
    بينما الكود في المشاركات السابقة يستعمل KeyCode ، اي ارقام ازرار الكيبورد !!
     
    جعفر
  9. jjafferr's post in قائمة منسدلة تعبئة تلقائية was marked as the answer   
    وعليكم السلام 🙂
     
    اهلا وسهلا بك في المنتدى ، وللاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى: اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة
     
    الطلب في غاية البساطة ، والمنتدى مليء بمثل هذا السؤال ، فاستعمل البحث للحصول على هذه المواضيع ،
    واليك احد الروابط وبه طلبك
     
    جعفر
  10. jjafferr's post in طريقة لترقيم سجلات الحقل was marked as the answer   
    اذا قصدك تدخل البيانات مباشرة في اول حقل من اول سجل مباشرة

    .
    فيصبح الكود:
    Private Sub Numberx_AfterUpdate() ' 'Access looks at it this way: 'user 1 = first entry was done in the Form by hand 'user 2 = the code below enters values automatically ' 'so it will give the popup option to either: save these change, drop the saving, or place them in clipboard 'to avaoid this message, we should first save the hand made value, then run the code 'save the Records If Me.Dirty Then Me.Dirty = False Dim rst As DAO.Recordset Dim i As Long Set rst = Me.RecordsetClone rst.MoveFirst i = Me.Numberx Do Until rst.EOF i = i + 1 rst.Edit rst!Numberx = i ' rst!serial = Me.str_serial rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub Private Sub serial_AfterUpdate() Dim rst As DAO.Recordset Dim i As Long Dim str As String str = Me.serial 'save the Records If Me.Dirty Then Me.Dirty = False Set rst = Me.RecordsetClone rst.MoveFirst Do Until rst.EOF rst.Edit ' rst!Numberx = Me.int_Numberx + i rst!serial = str rst.Update rst.MoveNext Loop 'MsgBox "Done" End Sub  
    جعفر
    1505.1.make serial numbers.mdb.zip
  11. jjafferr's post in 🙂 كيف أجعل تنسيق حقل رقمي مرة تكون رقمية لسجلات معينة ومرة تكون نسبة لسجلات أخرى ؟ 🤔🙄 was marked as the answer   
    وعليكم السلام 🙂
     
    استخدم حقل رقم ، Double 🙂
     
    جعفر
  12. jjafferr's post in تعريف متغيرات عند مناداة الدالة ، واخرى داخل الدالة was marked as the answer   
    وعليكم السلام 🙂
     
    1. اذا تم مناداة الدالة (من الاستعلام مثلا) ، فعادة يتم ارسال قيم اليها ، حتى تقوم الدالة بحساب المطلوب ،
    وعليه ، الاكسس لا يسمح لك بإرسال بيانات من نوع مختلف ،
    2. ولكن الدالة تحتاج الى متغيرات اخرى لتقوم بعملها ، لذا نعرّف هذه المتغيرات داخل الدالة 🙂
    كما انك تستطيع ان لا تُعرّف المتغيرات كما في رقم #1 ، بل تقوم بتعريفها داخل الدالة ، ولكن حينها تقع عليك مسؤولية التأكد من ان نوع البيانات صحيحة 🙂
     
    فدع الاكسس يقوم بعمله ، وهي الطريقة الصحيحة 🙂
     
    جعفر
  13. jjafferr's post in طباعة 6 هويات في ورقة واحدة was marked as the answer   
    تفضل هذا المثال :

    .

    .
    جعفر
    1495.More than one picture in Report.mdb.zip
  14. jjafferr's post in الصور في اكسس was marked as the answer   
    وعليكم السلام 🙂
     
    الكمبيوتر لا يعمل صور دائرية.
    للحصول على طلبك ، وخلينا نستخدم الصورة الاولى التي ارفقتها:
    1. منطقة الدائرة (اللون الرمادي) ، اجعلها شفافة (في موضوعي الآخر شرحت هذه الطريقة) ،
    2. اجعل الصورة العادية خلف الدائرة ،
    3. يعني ستكون عندك صورتين خلف بعض ، والنتيجة صورة حولها برواز دائري ، فتصبح الصورة دائرية 🙂
     
    جعفر
  15. jjafferr's post in تحديث اجمالي المبلغ مباشره في النموذج الرئيسي بعد تحديث الكمية في النموذج الفرعي was marked as the answer   
    من زمان ما عامل الكود على حدث "عند التغيير" OnChange للحقل ، فأخذ مني بعض الوقت 🙂
    اضفت حقل جديد txt41 باللون البرتقالي ، وممكن تعمله مخفي

    .
    اذا اردنا ان نعمل تغيير في بيانات النموذج عند كل ضغطة زر على لوحة المفاتيح (الكيبورد) ، ممكن لغرض البحث ، او للحصول على مجموع عند ادخال كل رقم ، فلابد من استخدام حدث "عند التغيير" OnChange للحقل.
     
    صحيح ان نتائج ضغطة ازرار لوحة المفاتيح تظهر مباشرة في الحقل ، ولكن البرنامج لا يحصل على آخر زر ، فيجب الاستعانة بحقل آخر ، خليني اوضح :
    1. في حدث "عند التغيير" OnChange للحقل ، اكتب debug.print me.TXT4 ، ولاحظ النتائج في نافذة immediate في نافذة VBE ،
    سترى ان آخر الازرار اللي ضغطت عليها لا تظهر قيمتها ، لأن me.TXT4 معناها قيمة الحقل المحفوظة في الجدول ،
    بينما اذا اردنا ان نأخذ القيمة التي لم يتم حفظها الى الآن ، فيجب ان نستخدم me.TXT4.Text ،
    لاحظ الفيديو التالي ، القيمة الاصلية المحفوظة في الجدول هي 15 :

    .
    2. على هذا الاساس ، عملت حقل جديد اسميته txt41 (باللون البرتقالي في الصورة اعلاه ، ويمكن عمله مخفي) ، بحيث نعطيه القيمة الغير محفوظة من الحقل TXT4 ، هكذا :
    Me.txt41 = Me.TXT4.Text
    3. وبعدها ممكن عمل المعادلة Me.TXT5 = TXT3 * txt41  ، حيث الحقل TXT5 سيحصل على القيمة الصحيحة من الحقل TXT4 ،
    4. ولكي تظهر قيمة مجموع حقل TXT5 ، فيجب حفظ قيمة السجل ، فعليه عندنا مجموعة طرق ، منها :
        DoCmd.RunCommand acCmdSaveRecord
        If Me.Dirty Then Me.Dirty = False
        Me.Refresh (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية)
        Me.Requery (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية)
    5. وبسبب اننا تدخلنا في حفظ السجل ، فالمؤشر سيرجع لأول الحقل كلما ضغطنا على زر على الكيبور ، يعني لما تريد تكتب 25 ، سيظهر لك 52 ،
    لهذا السبب ، فيجب لما نضغط على اي زر ، يجب برمجيا ان نجعل المؤشر يذهب الى نهاية الحقل ، فيمكننا استعمال الامر SelStart ، والذي يجبر مكان المؤشر في الحقل ، فعندنا الطرق التالية لجعل المؤشر يذهب الى آخر الحقل :
        Me.TXT4.SelStart = Len(Me.TXT4)
        Me.TXT4.SelStart = vbKeyEnd
     
    والكود يصبح:
    Private Sub TXT4_Change() On Error GoTo err_TXT4_Change Me.txt41 = IIf(Len(Me.TXT4.Text & "") = 0, 0, Me.TXT4.Text) Me.TXT5 = TXT3 * txt41 DoCmd.RunCommand acCmdSaveRecord Me.TXT4.SelStart = Len(Me.TXT4) Exit_TXT4_Change: Exit Sub err_TXT4_Change: If Err.Number = 94 Or Err.Number = 13 Then Me.TXT5 = 0 DoCmd.RunCommand acCmdSaveRecord Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub  
    جعفر
    1491.AZIZ.accdb.zip
  16. jjafferr's post in نموذج الفرز والتصفية في الاستعلام was marked as the answer   
    وعليكم السلام اخوي سامي 🙂
     
    اقول لك ، صاني لقيت جني خاش عمره تحت النموذج الفرعي ، للعلم 😁

     
     
    عملت البحث فقط 🙂
     
    جعفر
    1490.‏‏‏‏devicesdb12 -9_00011.accdb.zip
  17. jjafferr's post in البحث في Listbox داخل نموذج وعرض البيانات في نفس النموذج was marked as the answer   
    السلام عليكم 🙂
     
    تفضل :
    بالنسبة للبحث ، اضفت هذا الحقل بالحقول المطلوبة ، فتقدر تضيف وتنقص منها اللي يناسبك :

    .
    وهذه الاكواد:
    Private Sub cmd_New_Student_Click() 'عمل سجل جديد DoCmd.GoToRecord , , acNewRec Me.namestudent.SetFocus End Sub Private Sub SearchList_DblClick(Cancel As Integer) 'عند النقر مرتين، الانتقال الى اسم الطالب Me.Recordset.FindFirst "codestudint=" & Me.SearchList Me.Bookmark = Me.Recordset.Bookmark Me.namestudent.SetFocus End Sub Private Sub srch_txt_AfterUpdate() 'البحث في Listbox Me.SearchList.Requery End Sub .
    اما زر حفظ ، وحفظ التعديل ، فلم يتم استعمالهم 🙂
     
    جعفر
    1488.Microsoft.accdb.zip
  18. jjafferr's post in فشل في دخول للمنتدى بحسابي الاساسي was marked as the answer   
  19. jjafferr's post in تحويل قيمة من جدول رواتب من عمودي الى افقي was marked as the answer   
    السلام عليكم 🙂
     
    المشكلة ليست في تصدير البيانات الى اكسل ، وانما الصعوبة في عمل مجاميع كل عمود في الاكسل ، وهناك طريقتين لعمل هذا:
    أ. تصدير البيانات والتعامل مع بيئة الاكسل (Excel Object) برمجيا ،
    ب. عمل مجاميع الاعمدة من الاكسس وتصديرها جاهزة للاكسل ، وانا اتبعت هذه الطريقة 🙂
     
    عملت 4 طرق ، وانت تختار الافضل لك:

    .
    بسبب انه في الاستعلام export_selfa ممكن يكون عندك الاسم مكرر اكثر من مرة () ، فكان لازم نعمل استعلام المجاميع qry_Sum_export_selfa ، بحيث يجمع قيم الموظف في سجل واحد :

    .
    الطريقة 3. من هنا عملنا التقرير rpt_Sum_export_selfa والذي مصدر بياناته الاستعلام اعلاه ، 
    وعملنا تجميع الاعمدة في التقرير:

    .
     
    الفكرة الاخرى ، ان نعمل مجموع الاعمدة في الاستعلام نفسه ،
    والطريقة اللي توصلت لها ، هي عمل استعلام مجاميع الاعمدة فقط qry_Sum_export_selfa_2 :

    .
    وتكون نتيجتها

    .
    ثم نعمل استعلام توحيد qry_Sum_export_selfa_3 فيه الاستعلام الاول qry_Sum_export_selfa والثاني qry_Sum_export_selfa_2

    .
    فتصبح النتيجة

    .
    الطريقة 1. بتصدير الاستعلام qry_Sum_export_selfa_3 الى اكسل عن طريق الامر TransferSpreadsheet ،
    الطريقة 2. بتصدير الاستعلام qry_Sum_export_selfa_3 الى اكسل عن طريق الامر OutputTo ،
    الطريقة 4. عمل تقرير من الاستعلام qry_Sum_export_selfa_3 وتصدير التقرير الى اكسل عن طريق الامر OutputTo :

    .
     
    وهذه اكواد الطرق اعلاه:
    Private Sub cmd_Transffer_Query_Click() '1 Dim File_Name As String File_Name = CurrentProject.path & "\" & "تفصيل سلفة متنوعة" & Format(Date, "---DDDD-DD-mmmm-yyyy") & ".xlsx" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_Sum_export_selfa_3", File_Name, True End Sub Private Sub cmd_Output_qry_Click() '2 Dim File_Name As String File_Name = CurrentProject.path & "\" & "تفصيل سلفة متنوعة" & Format(Date, "---DDDD-DD-mmmm-yyyy") & ".xls" DoCmd.OutputTo acOutputQuery, "qry_Sum_export_selfa_3", acFormatXLS, File_Name, True, , , acExportQualityPrint End Sub Private Sub cmd_Output_rpt_Click() '3 Dim File_Name As String File_Name = CurrentProject.path & "\" & "تفصيل سلفة متنوعة" & Format(Date, "---DDDD-DD-mmmm-yyyy") & ".xls" DoCmd.OutputTo acOutputReport, "rpt_Sum_export_selfa", acFormatXLS, File_Name End Sub Private Sub cmd_Output_rpt_3_Click() '4 Dim File_Name As String File_Name = CurrentProject.path & "\" & "تفصيل سلفة متنوعة" & Format(Date, "---DDDD-DD-mmmm-yyyy") & ".xls" DoCmd.OutputTo acOutputReport, "rpt_Sum_export_selfa_3", acFormatXLS, File_Name End Sub  
    ونصيحة:
    انت مستعمل 160 حقل في الجدول FILE-1 ، ويجب عليك تفكيكه الى على الاقل 3 جداول ، وتربط بينهم برقم الموظف ، ثم في استعلام تجمعهم جميعا !!
     
    جعفر
     
     
    1486.Database1 (2).accdb.zip
  20. jjafferr's post in مشكلة في التقرير حقل محسوب يعطي رموز was marked as the answer   
    وعليكم السلام 🙂
     
    يجب تعديل مصدر بيانات الحقل text37 الى :
    اذا قيمة حقل البنزين = 0 اذا اردت قيمة الحقل text37 = "" =IIf([fuel]=0,"",[text35]*20/[fuel]) اذا اردت قيمة الحقل text37 = 0 =IIf([fuel]=0,0,[text35]*20/[fuel]) .
    قد تضطر الى استعمال الفاصلة المنقوطة ; بدلا عن الفاصلة في الكود اعلاه.
     
    والنتيجة

     
    جعفر
  21. jjafferr's post in مساعدة في استدعاء كود من نموذج فرعي بواسطة النموذج الرئيسي was marked as the answer   
    وعليكم السلام 🙂
     
    هل انت طالب او مدرس ، لأن اسألتك تدور حول بديهيات الاكسس ، كأنها دروس 😁
     
    عملت تغيير في النموذج ، فاصبحت الازرار

    .
    اول 3 ازرار ترسل البيانات مباشرة من النموذج الرئيسي لحقول النموذج الفرعي :
    Private Sub cmd_xr_Click() 'عند الضغط على الزر في النموذج الرئيسي xr Me.fx!x = "xr" Me.fx!x1 = 2 Me.fx!x2 = 4 Me.fx!x3 = 1 Me.fx!x4 = 0 End Sub Private Sub cmd_xm_Click() 'عند الضغط على الزر في النموذج الرئيسي xm Me.fx!x = "xm" Me.fx!x1 = 2 Me.fx!x2 = 4 Me.fx!x3 = 1 Me.fx!x4 = 0 End Sub Private Sub cmd_xn_Click() 'عند الضغط على الزر في النموذج الرئيسي xn Me.fx!x = "xn" Me.fx!x1 = 2 Me.fx!x2 = 4 Me.fx!x3 = 1 Me.fx!x4 = 0 End Sub .
    الزرين الاخيرين ، ننادي دالتين في النموذج الفرعي :
    Private Sub cmd_xs_Click() Call Form_fx.Enter_xs End Sub Private Sub cmd_Subform_Event_Click() Call Form_fx.I_am_MsgBox End Sub .
    نعمل دوال في النموذج الفرعي ، ولكي نستطيع ان نراها/نقرأها من خارج النموذج ، يجب ان نستعمل Public  :
    Public Sub Enter_xs() Me.x = "xs" Me.x1 = 2 Me.x2 = 4 Me.x3 = 1 Me.x4 = 0 End Sub Public Sub I_am_MsgBox() MsgBox "قيمة x تساوي" & vbCrLf & Nz(Me.x, "") End Sub .
    جعفر
    1482.fyfx.accdb.zip
  22. jjafferr's post in مساعدة في تخفيف الكود was marked as the answer   
    هذا كأنه خط يدي 🙂
     
    اللي اعتقده مفروض يصير:
    Option Compare Database Option Explicit Dim rst_fy As DAO.Recordset Dim rst_n As Integer ' Private Sub namebook_Click() 'take the Recordset one time, use it many times If rst_n = 0 Then Set rst_fy = Forms!freadermain!finfo.Form.RecordsetClone rst_n = 1 End If 'j rst_fy.OpenRecordset rst_fy.FindFirst "namebook='" & Me.namebook & "'" If rst_fy.NoMatch Then rst_fy.AddNew rst_fy!namebook = Me.namebook rst_fy!Serialnamebook = Me.Serialnamebook 'j Me.Parent!finfo.SetFocus 'j DoCmd.GoToRecord , , acNewRec '''''!!!!!! ??? 'j Me.Parent!finfo!namebook = Me.namebook ''''''!!!!!! ??? 'j Me.Parent!finfo!Serialnamebook = Me.Serialnamebook ''''''!!!!!! ??? 'j DoCmd.GoToRecord , , acNewRec ''''''!!!!!! ??? rst_fy.Update Else 'j Me.Parent!finfo.Form.Bookmark = rst_fy.Bookmark Me.Parent!finfo.SetFocus Me.Parent!finfo.Form.Bookmark = rst_fy.Bookmark + 1 'j Me.Parent!finfo!numberreadbook = Me.Parent!finfo!numberreadbook + 1 ''''''!!!!!! ??? End If rst_fy.Close End Sub  
    جعفر
  23. jjafferr's post in مساعدة في إستثناء رتب من الظهور في الاستعلام was marked as the answer   
    وعليكم السلام 🙂
     
    اذا عندكم كم كبير من البيانات اللي تريد تستعملها في معيار ، فالافضل ان تعمل لهم جدول خاص ، مثل :

    .
    ثم في الاستعلام ، في المعيار ، نقول له اننا ما نريد اي من البيانات اعلاه تظهر في المعيار (Not In) :

    .
    وبعدين نقول له ، كذلك في الحقل Grde ، اذا من اليسار (اول الكلمة) ، اول 17 حرف = "ممارس متخصص مساعد" ، اذن هاي كذلك لا تظهرهم 🙂
     
    جعفر
    1476.Database28.accdb.zip
  24. jjafferr's post in اضافة بيانات متشابهة لسجلات محددة من خلال زر اختيار was marked as the answer   
    وعليكم السلام 🙂
     
    علشان تختار اكثر من اسم ، عندك اختيارين:
    1. السجل تعمل فيه حقل iSelect من نوع نعم/لا ،
    ثم تعمل نموذج مستمر ، ويمكنك ان تختار اكثر من سجل/اسم.
    2. تعمل مربع خيار ListBox ، ثم تجعل خيارات 

    .
    فتستطيع بالنقر مرة على الاسم ان تختاره او تلغي الاختيار

    .
    وتضع احد الاختيارين في نموذج رئيسي ، 
    وتعمل بقية الحقول المطلوبة ، والتي لا تكون مرتبطة بجدول ،
    وبعد اختيار الاسماء وتعبئة الحقول ، يكون عندك زر لتفريغ هذه البيانات في الجدول لهذه الاسماء ، سواء ان تُلحق سجل جديد ، او تعمل تحديث لسجل موجود ،
    كود الزر يعمل حلقة دوران للاسماء ، ويُدخل بيانات الحقول 🙂
     
    جعفر
     
  25. jjafferr's post in كود لمعيار في استعلام يستخرج بيانات للشهر الاخير و لكن يبدأ بيوم يحددة المستخدم was marked as the answer   
    وعليكم السلام 🙂
     
    عندك طريقتين لكي "تحدد اليوم الذي يريدة الذي يبدأ الشهر منه" :
    1. المعيار في الاستعلام مباشرة (يجب ان تكون الكتابة نفسها في المكانين) :

    .
    ولما نستخدم الكلمات العربية :

    .
    هذا هو الكود:
    Between [Please enter FROM date] And DateAdd("m",1,[Please enter FROM date])-1 .
    2. في النموذج frm_Main في الحقل Date_From :
    فيكون المعيار في الاستعلام :

    .
    Between [Forms]![frm_Main]![Date_From] And (DateAdd("m",1,[Forms]![frm_Main]![Date_From])-1) .
     
    وهذا الكود DateAdd("m",1,[Forms]![frm_Main]![Date_From]) معناه اضف :
    m = شهر
    1 = المدة التي نريد ان نضيفها
    [Forms]![frm_Main]![Date_From] = على هذا التاريخ
     
    فيعطينا شهر واحد بعد هذا التاريخ ،
    ولكنك تريد شهر ناقصا يوم واحد ، لهذا السبب نضيف 1- في نهاية الامر
     
    جعفر
×
×
  • اضف...

Important Information