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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. هل انت متأكد ان لديك الصلاحية في شبكة الشركة بأن تحفظ الملفات؟ يبدو الامر له علاقة بشبكة الشركة وصلاحياتك (او صلاحيات المجلد الذي تحفظ الملف فيه) ، ولا علاقة له ببرنامج الاكسس جعفر
  2. انت لم تجب على سؤالي جعفر
  3. أخوي أبوفايز طريقتي مرنه وتشتغل على جميع النماذج الرئيسية والفرعية ، ومن الكود كذلك ونعم هناك طرق اخرى ان تنادي المعايير من عدة نماذج لإستعلام واحد ، مثلا: انا في معظم برامجي عندي نموذج واجهة البرنامج ، وهذا النموذج دائما مفتوح اثناء استعمال البرنامج (وطبعا تقدر تستخدم نموذج مخفي اذا اردت) ، فاللي ممكن ان تعمله هو ، ان تعمل حقول غير مضمنه في هذا النموذج (طبعا ستكون مخفيه) ، ثم ترسل قيمة المعايير الى هذه الحقول في نموذج الواجهة ، تغير معيار الاستعلام ، بحيث يشير الى هذه الحقول. جعفر
  4. ولكن البرنامج الذي ارفقته انا لم يعالج هذه المشكلة ، بل انا شرحت لك الطريقة فقط ، وانت قمت بالتعديل على برنامجك على العموم ، جرب ان تحفظ الاستعلام بعد التعديل عليه ، وجرب ، ثم اغلق البرنامج ، وجرب ، فاذا ظهرت لك رسالة الخطأ ، انظر في قيمة الاستعلام هل تغيرت ام لا تزال كما كانت. وهناك سؤال آخر ، هل تقوم بعمل الاستعلام برمجيا في الكود؟ جعفر
  5. نعم صحيح ، في النسخة الاولى من اكسس 2007 ، الضغط والاصلاح كان يتلف قاعدة البيانات ، واصلحت مايكروسوفت الوضع بإصدار تحديثات له (ولكن وللأسف الشديد ، هناك مستخدمين يستعملون البرنامج الاصلي ، وبدون اي تحديثات له طول العمر!! فلذلك ، ولهذه النسخ بالذات ، كلامك صحيح 100%) ، بس ما دمنا نتكلم عن التحديثات ، احب ان أضيف هذه المعلومة: اول تحديث للأكسس 2000 ، كان يحتوي على اكثر من 300 تصليح/إضافة. لهذا السبب ، التحديث غاية في الاهمية ، سواء لنظام التشغيل الوندوز او الاوفيس. تم استدعائي لأحد الدول لأنظر في مشكلة برنامجهم الذي كان به بعض المشاكل ، ومن ضمن هذه المشاكل فقد جزء من البيانات ، الكهرباء كانت تنقطع ولم تكن منتظمة ، وقد كانت الشبكة عندهم عبارة عن كمبيوترات لابتوب ، والسيرفر عليه UPS ، فالمبرمج الذي عمل البرنامج والشبكة لهم اخذ في الاعتبار مشكلة عدم انتظام الكهرباء بهذه الطريقة ، ولكني اكتشفت المشكلة ، والتي كانت بسبب انقطاع الكهرباء ، وهي ان المبرمج لم يضع UPS على Switch الشبكة ، فتواصل البيانات ينقطع بين الكمبيوترات والسيرفر عند انقطاع الكهرباء ، وتم حل المشكلة بربط الـ Switch بجهاز UPS اذن في هذه الحالة ، نستطيع ان نعمل التالي: 1. بأمر من الاكسس ، نعمل نسخة إضافية من برنامج الجداول ، 2. نتأكد ان نسخة برنامج الجداول موجوده ، 3. وبأمر آخر نعمل الاصلاح والتعديل ، فاذا لأي سبب تلفت هذه النسخة ، فنستطيع استعمال النسخة الاحتياط. طبعا انا هنا اعطيت البديلبسبب انقطاع الكهرباء جعفر جعفر
  6. السلام عليكم أخي أبوخليل ، وحيا الله من يانا ممكن تشاركنا تجربتك لوسمحت انا كنت بقترح ان يتم تقسيم البرنامج الى واجهة وجداول ، ثم يتم تفعيل خاصية الضغط على جزء الجداول. جعفر
  7. وعليكم السلام ورحمة الله وبركاته لا يؤثر ، اذا كان البرنامج مقسم ، فجزء الواجهة عادة لا يحتاج الى ضغط واصلاح ، إلا اذا كنت تستخدم الجداول المؤقته فيه ، اما جزء الجداول فيحتاج ، بين فترة واخرى ، بل يعمل عدة عمليات لتعديل وضع الجداول واعادة فهرستها ، وتضبيط الاستعلامات ، والتخلص من السجلات المحذوفة (لأنك لما تحذف سجلات ، الاكسس لا يحذفها مباشرة من البرنامج ، وانما الضغط والاصلاح يحذفها ويسترجع المساحة التي كانت تحتجزه) ولكن قرأت في اوائل اصدارات الاكسس 2007 ، واذا كان برنامجك مقسم الى واجهة وجداول مرتبطة ، كان الضغط والاصلاح يحذف ربط الجداول جعفر
  8. ايوه ، كدا الفن إلا بلاش جعفر
  9. وعليكم السلام ورحمة الله وبركاته جميعا ان شاء الله جعفر
  10. قد تحتاج الى مجموعة استعلامات الحاقية صغيرة ، بدلا عن استعلام واحد لا يعمل البارحة انا انزلت مرفقك ، ولكنك للأسف اعطيت خطوط عريضة عن مشكلتك ولم تدخل في اين المشكلة بالضبط ، وحتى اسم التقرير اللي ذكرته انت هو بالعربي ، بينما مسميات برنامجك بالانجليزي!! جعفر
  11. السلام عليكم اذا كان عندك مجموعة استعلامات توحيدية ، فاحد الطرق للتغلب على مشاكلها هو ان تعمل جدول مؤقت ، وتضيف السجلات ، ثم تستخدمه للتقرير ، ولكن انتبه لشغله مهمة وهي ، لأن برنامجك مقسم ، ويستخدمه اكثر من مستخدم ، فاجعل هذا الجدول المؤقت في نسخة البرنامج الاصلي (الواجهة ، وليس في مع بقية الجداول المرتبطة) ، وإلا فستحصل لخبطة بين سجلات المستخدمين جعفر
  12. انا اشتغلت على هذا الموضوع ، ويمكنك ان تلاحظ فرق الوقت بين وقتك ووقتي اشوف لك النقطة التالية ، لأن عندك مجموعة نقاط في موضوع واحد ، وهذا اربكك انت كذلك ، لذلك المنتدى يطلب عمل موضوع مستقل لكل نقطة جعفر
  13. وعليكم السلام ورحمة الله وبركاته تفضل وهذا الكود الذي يقوم بالمهمة: Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) If Me.eat = 1 Then Me.Image13.Visible = True Me.Image14.Visible = False ElseIf Me.eat = 2 Then Me.Image13.Visible = False Me.Image14.Visible = True ElseIf Me.eat = 3 Then Me.Image13.Visible = True Me.Image14.Visible = True Else Me.Image13.Visible = False Me.Image14.Visible = False End If End Sub جعفر 284.New Microsoft Access Database.accdb.zip
  14. عليكم السلام افتح التقرير ، ثم اتبع الخطوات في الصورة المرفقة ستلاحظ وجود تغيير في رؤوس التقرير ، العب في مكان "اسم العميل" (طبعا المسمى عندك مختلف) ، وانقل حقل نص الاسم الى الرأس الصحيح ، وكله تمام جعفر
  15. وعليكم السلام ورحمة الله وبركاته تفضل يا سيدي وبدون استعلام توحيد وتتمة لما قد تحتاجه ، انظر الرابط التالي ، والذي استعنت به لبرنامجك ، وتابعه للنهاية: http://www.officena.net/ib/topic/65067-ما-هي-طريقة-استيراد-بيانات-من-عدة-صفحات-اكسل-الى-جدول-اكسس/?do=findComment&comment=423911 جعفر 283.Import_Names_List.accdb.zip
  16. وعليكم السلام ورحمة الله وبركاته تفضل وهذا كود حدث الحالي للنموذج form1 ، والذي عليه قمت بعملية قراءة النموذج الفرعي: Private Sub Form_Current() On Error GoTo err_Form_Current Me.aa1 = Nz(Int(Me![Text31] / 60), 0) Me.gg = Nz(Int(Me![aa1] / 7), 0) Dim rst As DAO.Recordset Set rst = Me.frm2.Form.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC If Len(rst!datee & "") <> 0 Then If Month(rst!datee) = 1 Then t1 = t1 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 2 Then t2 = t2 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 3 Then t3 = t3 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 4 Then t4 = t4 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 5 Then t5 = t5 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 6 Then t6 = t6 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 7 Then t7 = t7 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 8 Then t8 = t8 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 9 Then t9 = t9 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 10 Then t10 = t10 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 11 Then t11 = t11 + DateDiff("n", rst![hg1], rst![hg2]) If Month(rst!datee) = 12 Then t12 = t12 + DateDiff("n", rst![hg1], rst![hg2]) End If rst.MoveNext Next i ' ' we get a write conflict when using this method!! ' rst.MoveLast: rst.MoveFirst ' For i = 1 To RC ' If Len(rst!datee & "") <> 0 Then ' rst.Edit ' If Month(rst!datee) = 1 Then rst!DateSum = t1 ' If Month(rst!datee) = 2 Then rst!DateSum = t2 ' If Month(rst!datee) = 3 Then rst!DateSum = t3 ' If Month(rst!datee) = 4 Then rst!DateSum = t4 ' If Month(rst!datee) = 5 Then rst!DateSum = t5 ' If Month(rst!datee) = 6 Then rst!DateSum = t6 ' If Month(rst!datee) = 7 Then rst!DateSum = t7 ' If Month(rst!datee) = 8 Then rst!DateSum = t8 ' If Month(rst!datee) = 9 Then rst!DateSum = t9 ' If Month(rst!datee) = 10 Then rst!DateSum = t10 ' If Month(rst!datee) = 11 Then rst!DateSum = t11 ' If Month(rst!datee) = 12 Then rst!DateSum = t12 ' rst.Update ' End If ' rst.MoveNext ' Next i ' Forms!form1!frm2.SetFocus Forms!form1!frm2.Form.GoToFirstRecord For i = 1 To RC If Len(Forms!form1!frm2!datee & "") <> 0 Then If Month(Forms!form1!frm2!datee) = 1 Then Forms!form1!frm2!DateSum = t1 If Month(Forms!form1!frm2!datee) = 2 Then Forms!form1!frm2!DateSum = t2 If Month(Forms!form1!frm2!datee) = 3 Then Forms!form1!frm2!DateSum = t3 If Month(Forms!form1!frm2!datee) = 4 Then Forms!form1!frm2!DateSum = t4 If Month(Forms!form1!frm2!datee) = 5 Then Forms!form1!frm2!DateSum = t5 If Month(Forms!form1!frm2!datee) = 6 Then Forms!form1!frm2!DateSum = t6 If Month(Forms!form1!frm2!datee) = 7 Then Forms!form1!frm2!DateSum = t7 If Month(Forms!form1!frm2!datee) = 8 Then Forms!form1!frm2!DateSum = t8 If Month(Forms!form1!frm2!datee) = 9 Then Forms!form1!frm2!DateSum = t9 If Month(Forms!form1!frm2!datee) = 10 Then Forms!form1!frm2!DateSum = t10 If Month(Forms!form1!frm2!datee) = 11 Then Forms!form1!frm2!DateSum = t11 If Month(Forms!form1!frm2!datee) = 12 Then Forms!form1!frm2!DateSum = t12 End If Forms!form1!frm2.Form.GoToNextRecord Next i Forms!form1!frm2.Form.GoToFirstRecord Exit Sub err_Form_Current: If Err.Number = 94 Then 'null Resume Next ElseIf Err.Number = 3021 Then 'No Records Exit Sub Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub وفي النموذج الفرعي ، نتحكم في التنقل بين السجلات: Public Sub GoToFirstRecord() Me.datee.SetFocus 'Go to the first record in the subform. DoCmd.GoToRecord , , acFirst End Sub Public Sub GoToNextRecord() Me.datee.SetFocus 'Go to the next record in the subform. DoCmd.GoToRecord , , acNext End Sub Public Sub GoToLastRecord() Me.datee.SetFocus 'Go to the last record in the subform. DoCmd.GoToRecord , , acLast End Sub جعفر 282.za-Time6.12-UP1.mdb.zip
  17. وعليكم السلام تستطيع ان تستعمل طريقتي: http://www.officena.net/ib/topic/65095-كيفية-ادخال-اسم-المستخدم-في-عامود-بجدول-تلقائيا/#comment-423739 جعفر
  18. جرب هذا المرفق ، وفيه حساب ساعات العمل ، لكل الايام بس اذا تريد ان لا تتكرر الاسماء ، فيجب ان: 1. تحول الاستعلام الى استعلام مجاميع ، 2. جعل التاريخ معيار بين تاريخين ، ويمكنك استخدام نموذج لإختيار التاريخين جعفر 280.2.New.accdb.zip
  19. وعليكم السلام هذه طريقتي : http://www.officena.net/ib/topic/65095-كيفية-ادخال-اسم-المستخدم-في-عامود-بجدول-تلقائيا/?do=findComment&comment=423739 جعفر
  20. وعليكم السلام أخي كرار من متابعتي لردودك في المنتدى ، كان يجب علي ان افهم انك جربت تغيير الكود المطلوب واصطدمت بهذه الرسالة ، وتوقفت عندها : وافضل طريقة للتغلب عليها ، ان ترجع الكرة الى ملعبي السبب في حصولك هذه الرسالة ، هو ان لديك معايير 3 في الاستعلام sh11 والذي يعتمد عليه الاستعلام sh . طيب ، اذا الاستعلام sh11 يستطيع ان يقرأ المعايير من النموذج ee ، فلماذا لا يستطيع الكود ان يقرأه!! والجواب ان الاكسس عبارة عن اكثر من برنامج مرتبطه ببعضها ، فمنها الـ jet والذي الان يسمى Ace من الاصدار 2007 ، وهو مسئول عن الاستعلامات وبقية امور الاكسس ، ومنها الاكسس شخصيا ، وكود VBA جزء منه ، والبرنامجين ، صحيح انهم مرتبطين ، ولكن هناك بعض الامور التي لا يتفاهمون عليها مباشرة ، بل يجب عمل وسيط بينهم ، وحل هذه الرسالة هي احد الاشياء اللي محتاجة وسيط كود اصطياد الخطأ ، في الكود المرفق ، هو حلقة الوصل ، واخذ مني الوقت الطويل لتضبيطه ليتلائم مع برمامجك ، فاعتذر عن التأخر على الرد عليك Private Sub cmd_Combine_Click() On Error GoTo err_cmd_Combine_Click 'delete the old data mySQL = "Delete * From tbl_PP" CurrentDb.Execute (mySQL) Dim rstpp As DAO.Recordset Dim rst As DAO.Recordset Dim strSql As String Set rstpp = CurrentDb.OpenRecordset("Select * From tbl_PP") '1 'j Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash") 'j2 Set rst = CurrentDb.OpenRecordset("Select * From tb_sh Order By [تاريخ الوصل]") strSql = "Select * From sh Order By [تاريخ الوصل]" Set rst = CurrentDb.OpenRecordset(strSql) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'add all the records For i = 1 To RC rstpp.AddNew 'j rstpp!iDate = rst!tash 'j rstpp!Purchase = rst!mbsh rstpp!iDate = rst![تاريخ الوصل] rstpp!Purchase = rst!mb rstpp.Update rst.MoveNext Next i '2 'j Set rst = CurrentDb.OpenRecordset("Select * From ts Order By tats") 'j2 Set rst = CurrentDb.OpenRecordset("Select * From tb_ts Order By [تاريخ]") strSql = "Select * From ts Order By [تاريخ]" Set rst = CurrentDb.OpenRecordset(strSql) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'we should check if the date is available, then we should use it For i = 1 To RC 'j rstpp.FindFirst "iDate=#" & rst!tats & "#" rstpp.FindFirst "iDate=#" & rst![تاريخ] & "#" If rstpp.NoMatch Then rstpp.AddNew 'j rstpp!iDate = rst!tats 'j rstpp!Payment = rst!mbts rstpp!iDate = rst![تاريخ] rstpp!Payment = rst!mblk rstpp.Update Else rstpp.Edit 'rstpp!iDate = rst!tats 'j rstpp!Payment = rst!mbts rstpp!Payment = rst!mblk rstpp.Update End If rst.MoveNext Next i rstpp.Close: Set rstpp = Nothing rst.Close: Set rst = Nothing DoCmd.OpenTable "tbl_pp" Exit Sub err_cmd_Combine_Click: If Err.Number = 3061 Then 'too few parameters, expected 1 or more 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter 'Set qdf = CurrentDb.QueryDefs("strSql") Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", strSql) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm Set rst = qdf.OpenRecordset(dbOpenDynaset) DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 231.1.New .accdb.zip
×
×
  • اضف...

Important Information