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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم لما تعمل تنصيب للاوفيس ، يعطيك اختيارين ، اختار اللى عليه السهم (طبعا الصور للتوضيح فقط): . ثم اختار: . بس قبل ان تعمل هذا ، رجاء انزال المرفق ، وتجربة تحويل الماكرو للنموذجين ، واخبرنا النتيجة لوسمحت جعفر 327.New.accdb.zip
  2. وعليكم السلام وكيف نعرف في اي اسبوع نحن الان؟ جعفر
  3. وعليكم السلام اخي نبيل ارفق البرنامج اللي عملته ، وخلينا نتواصل من هناك خطوة بخطوة واذا لم تبدا ، فالرجاء تبدا جعفر
  4. السلام عليكم انا كنت متابع وبصمت لأن اخي الاستاذ رمهان متخصص في التحليل ، فالافضل كان ان نرى النتائج وقبل ان تقوم بتنصيب اوفيس 2010 32بت (ويجب ان تختار "تخصيص" وتختار وتنصب جميع الخيارات) ، غيّر اسماء الحقول في النموذج الى انجليزي ، وجرب تحويل الماكرو الى كود جعفر
  5. وعليكم السلام الافتراض انك تريد ملاحظة واحدة فقط في النموذج Form1 ، تفضل 1. في الحدث "عند تحميل" النموذج Form1 ، نعمل الكود التالي ، والذي يجعل النموذج Form1 يفتح على يمين النموذج frm_Patient_Drugs : Private Sub Form_Load() r = Forms!frm_Patient_Drugs.Width + 0.6 * 576 D = 0 'Forms!frm_Patient_Drugs.Section(acDetail).Height + 1.2 * 576 '0.6 * 576 'w = Forms!frm_Patient_Drugs.Width 'H = Forms!frm_Patient_Drugs.WindowHeight - Forms!frm_Patient_Drugs.Section(acDetail).Height - 1.5 * 576 'docmd.MoveSize Right, Down, Width, Height DoCmd.MoveSize r, D ', w , H ' Me.Text0 = Forms.frm_Medication.ListDosing.Column(6) End Sub 2. النموذج Form1 يأخذ بياناته من حقل Comments من السجل الحالي للنموذج الفرعي sfrm_Patient_Drugs ، لذا نضيف الكود التالي على حدث "الحالي" ، وقبل ارسال المعلومة للنموذج Form1 ، الكود يتأكد ان النموذج Form1 مفتوح ، وإلا فإنه يفتحه: Private Sub Form_Current() If CurrentProject.AllForms("Form1").IsLoaded = False Then DoCmd.OpenForm "Form1" End If Forms!Form1!Text0 = Me.Comment End Sub 3. طيب ، واذا اضفنا دواء جديد ، فاننا نريد ان نرى الملاحظة في النموذج Form1 كذلك ، لذلك ، وعلى حدث Private Sub ListDosing_DblClick للنموذج frm_Medication ، نضيف الكود التالي: وقبل ارسال المعلومة للنموذج Form1 ، الكود يتأكد ان النموذج Form1 مفتوح ، وإلا فإنه يفتحه: 'now lets pass the comments to Form1 'if Form1 is not open, then open it If CurrentProject.AllForms("Form1").IsLoaded = False Then DoCmd.OpenForm "Form1" End If Forms!Form1!Text0 = Me.ListDosing.Column(6) جعفر 298.2.Medication.accdb.zip
  6. في هذه الحالة ، استخدم هذا السطر: Path1 = me.parent.pate & "\" بدلا عن Path1 = Application.CurrentProject.Path & "\" جعفر
  7. استاذ عبدالفتاح احنا الاثنين نعمل بطرق مختلفة وقد واجهت الكثير من الصعوبات في هذه المسألة بالذات ، لهذا السبب قدمت هذا الاقتراح جعفر
  8. نعم هذا صحيح ، عندما نريد ان نرى اسم الدرجة وليس كود الدرجة ، وربط الجداول في الاستعلام سهل ولن تُخطئ او تحتار فيه ، ولكن ، خلينا نعمل مثال اشرح فيه السبب في طلبي ، وعلشان المسألة تكون واضحة: اسم الحقل: Level_ID ، نوع الحقل: رقم ، القيمة الحقيقة للحقل: 3 ، القيمة الظاهرة: الثانية-واحد (حيث اننا عن طريق Dlookup جعلناها القيمة الظاهرة في مربع التحرير والسرد ComboBox) : . والنتيجة التى سيراها المستخدم/المبرمج: . ولأنه لا يرى إلا هذا المسمى ، فالكود التالي سيكون خطأ (لأننا اعتبرنا ان الحقل نص وليس رقم): A = DCount("[Level_ID]", "tbl_Levels", "[Level_ID]='الثانية-واحد'") . والادهى من هذا ، انه لا توجد طريقة لدينا لمعرفة رقم هذه الدرجة ، إلا اذا جئنا الى الجدول ، ووضعناه بوضع التصميم ، ثم تعال واحسب الفوارز لمعرفة رقم الدرجة (والله يكون في عونك اذا المسميات فيها عربي وانجليزي مثل اللي في مثالي) جعفر
  9. السلام عليكم انا سوف انظر الى ملاحظاتكم ، واعلّق عليها ، اما البرنامج فاترك لكم النظر فيه 1. ياريت يُكتب هذا الكلام بحروف من ذهب ، ويُعلق في منتدى الاكسس تسلم ايدك أخوي ابو خليل على التبسيط وللأسف ، هناك من المبرمجين من يبدأ بالعلاقات ، و وايلاه ، يتعقد الموضوع عنده وووو ، وهو في الاصل ليس بحاجة الى علاقة بين الجداول اصلا 2. طبعا هذا من الشروط الاساسية لعمل قاعدة البيانات ، فعن طريق النموذج ، تسيطر على بيانات الادخال ، ورجاء ، رجاء ، لا تعمل Dlookup في الجدول لأي من الحقول ، وانما اعملها في النموذج ، بحيث تكون البيانات في الجدول واضحة ، دون اللجوء الى جدول آخر 3. وهذه هي الطريقة الصحيحة وأخي كرار له وجهة نظر صحيحة في بعض البرامج ، إلا انه لا يُفضل عمله لمثل هذا البرنامج واعطيك سببين لأهمية هذه الجداول من تجربتي: أ. وبعد استعمال احد البرامج في احد المؤسسات بفترة ، اخبرني المستخدم بأن احد المسميات تم تغييرها رسميا !! فاذا كانت الجداول مثل ما اقترح اخوي ابو خليل ، فما كان عليّ إلا ان اغير المسمى في سجل واحد في جدول الخدمية فقط ، وإلا ، فيجب تغيير المسميات في جميع السجلات في الجدول ، واذا كانت هذه المسميات في جداول اخرى فنعمل نفس الشئ ، والمشكلة الكبرى تكون في الكود ، بحيث يجب ان يتم تغييرها هناك ايضا ، وفي الاستعلامات والتقارير وووو ، إن وُجدت ب. من السهل عمل اكثر من لغة للمسمى ، كذلك في جدول الخدمية ، وبدون تغيير اي شئ في الجدول الاصل جعفر
  10. السلام عليكم أخي حسام رجاء اخبرني ماذا افعل في النموذج/السجل حتى اوصل للذي تريده. انا لا افهم شئ من برنامجك ، فلا استطيع العمل بدون توجيهك جعفر
  11. السلام عليكم هذه الطريقة طبق الاصل من طريقة أخي الاستاذ عبدالرحمن ، ولكنها اسرع ، حيث لا يقوم الاكسس بالتركيز على اي حقل يريد النتيجة منه ، وانما يقوم بتصفية السجلات حسب المعطيات = DCount("*", "sdad", "[تم]=-1 and [رقم]=forms![a]![رقم]") جعفر
  12. 1. هاي بسيطة: غير هذا السطر If Me.m_sum < Me.com_name.Column(2) Then بهذا السطر If Me.m_sum > Me.com_name.Column(2) Then . 2. إزاي راح اعمل دي!! ممكن ، بحيث نعمل جدول خاص (او حقل خاص) للقيم التي يجب ان لا تتغير ، اي لا نطرح القيمة من الحقل m_full وانما من حقل آخر ، وتظل قيمة m_full غير متغيرة ، بحيث نرجع لها في حال تغيير/حذف القيمة ، ولكن هذه الطريقة غير متعارف عليها ، وغير مُتّبعة في قواعد البيانات ، لأنك لا تعرف الوقت الذي يجب ان تحفظ القيمة ، من الوقت الذي تسجل قيمة جديدة ، وقد تعمل لك مشاكل في المستقبل جعفر
  13. وعليكم السلام أخي كرار رجاء ارفاق عدة نماذج من برنامجك ، وخليني اشوف الموضوع عن قرب ولكني لاحظت في الصورة اعلاة ، انه حدث "حدثت مشكلة اثناء فتح الماكرو" ، فطبيعي ما يحول الماكرو الى كود جعفر
  14. وعليكم السلام أخي محمد ، وعذرا على التأخير 1. الزرين عندك بنفس الاسم ، فما عرفت ايهم يعمل ماذا 2. في كود الزرين ، انت قلت ان ملفات الـ pdf موجودة في Path1 = Application.CurrentProject.Path & "\" file1 = Path1 & Me.name_morfke بينما في الصورة التي ارفقتها ، فعندك "مسار فولدر الحفظ" ، فهل الاثنان نفس الشئ ، وإلا ، فرجاء تغيير مسار الملفات في الكود اعلاه ، جعفر
  15. السلام عليكم تذكرت اني في يوم من الايام ساعدت احد الشركات في مشكلة تختلف قليلا عن هذ المشكلة ، وقد عملت كود لهم ، فالرجاء النظر في الكود (سهل) ، ثم عمل شئ مماثل لمشكلتنا التي تنكلم عنها في هذا الموضوع ، والموضوع بإختصار ، هو إعادة محاولة حفظ السجل كل نصف ثانية (ولمدة 20 ثانية) (والمفروض ان قطع الاتصال يأخذ أقل من هذا): Private Sub Form_BeforeUpdate(cancel As Integer) On Error GoTo err_Form_BeforeUpdate Dim a, msg As String Dim mTries, nTries As Integer Dim PauseTime, Start As Double 'MsgBox "Before update" TryAgain3: DoCmd.RunCommand acCmdSaveRecord Exit Sub err_Form_BeforeUpdate: If Err.Number = 3218 Or Err.Number = 3261 Then 'Could not update; currently locked 'show the user a busy mouse cursor, which indicates the system is busy DoCmd.Hourglass True 'Maximum allowed tries (seconds) mTries = 20 'how many times did we try nTries = nTries + 1 'give up if the number of tries equals the maximum allowable tries If mTries = nTries + 1 Then msg = "The table Phone_Data seems to be busy," & vbCrLf & _ "Do you want to try again?" If MsgBox(msg, vbYesNo + vbDefaultButton1, "Process taking too long") = vbYes Then nTries = 1 Else DoCmd.Hourglass False a = SysCmd(acSysCmdSetStatus, "Ready") Exit Sub End If End If 'pause 1 second 'PauseTime = 1 ' Set duration. PauseTime = 0.5 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop a = SysCmd(acSysCmdSetStatus, "Table is busy, number of tries = " & nTries & " of " & mTries) 'ignore the error this time, and start again Resume TryAgain3 ElseIf Err.Number = 2115 Then 'complaints about the SaveRecord command, ignor 'version 5: 'We have to know the error number of the error message 'commented the line below, 'added 4 lines 'commented the endif 'Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Next 'End If End Sub جعفر
  16. وعليكم السلام أخي أوس نعم هذه نقطة هامة ايضا ، لذلك ، وفي تنسيق حقل التاريخ في الجدول ، يجب ان يكون التنسيق dd/mm/yyyy او اي تنسيق رقمي آخر ، فهذا سيحل المشكلة من البداية اسمح لي أخي أبو عبدالله ان اقول ، انه لا يُفضل الكتابة باللغة العربية في اي من كائنات البرنامج ، إلا كبيانات في جدول ، لأني يوم من الايام صادفت مشكلة في هذه النقطة كذلك جعفر
  17. وعليكم السلام نعم هناك خلل في الاكسس (تجربتي مع اكسس 2010) مع هذه الاعدادات ، وثقيل لما ينتقل من حقل الى آخر ، ولكن بعد تحديثات الاكسس ، كل شئ تمام الان هذا رابط حزم تحديثات الاكسس: http://pcsupport.about.com/od/keepingupwithupdates/a/office-service-pack.htm جعفر
  18. السلام عليكم اذا كان هذا الذي تريد: . فالكود اصبح: Option Compare Database Dim rst As DAO.Recordset Function Get_Dates(ID) mySQL = "Select * From tbl_Loans" mySQL = mySQL & " Where [EmployeeID]=" & ID mySQL = mySQL & " And Year([Payment_Month])= " & [Forms]![FrmOtherDiscountReport]![txtYear] mySQL = mySQL & " Order by Payment_Month" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For I = 1 To RC Get_Dates = Get_Dates & vbCrLf & rst!Remarks rst.MoveNext Next I Get_Dates = Mid(Get_Dates, 3) ' If RC = 1 Then ' ' Get_Dates = "Discount for the month " & Format(rst!Payment_Month, "m/yyyy") ' Else ' ' For I = 1 To RC ' ' If I <> RC Then ' ' Get_Dates = Get_Dates & " and " & Month(rst!Payment_Month) ' Else ' ' Get_Dates = Get_Dates & " AND " & Format(rst!Payment_Month, "m/yyyy") ' End If ' ' rst.MoveNext ' ' Next I ' ' Get_Dates = "Discount for the months " & Mid(Get_Dates, Len(" and ")) ' ' End If End Function جعفر
  19. سيدي الفاضل لما تنقص رقم صغير من رقم كبير ، فلابد وان تكون النتيجة بالسالب ، وهذا ما يظهر لك بإشارة - وجربت المرفق ، ولم يحذف السجل ، ولكني لاحظت ان ترتيب الانتقال من حقل الى آخر غير صحيح ، لاحظ الصورة ، فالارقام الحمراء هي التسلسل ، والحقل m_id مثلا ، بدل ان تكون قيمته 1 ، فانها 3 !! . اذا لم افهم طلبك ، رجاء التوضيح اكثر جعفر
  20. لا ، وانما المشكلة في اي لغة / حروف غير اللغة الانجليزية ، فاذا استخدمت حروف اللغة الفرنسية مثلا ، ولأن بها حروف غير Unicode ، فستظهر لك المشكلة :( جعفر
×
×
  • اضف...

Important Information