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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. نعم صحيح ، في النسخة الاولى من اكسس 2007 ، الضغط والاصلاح كان يتلف قاعدة البيانات ، واصلحت مايكروسوفت الوضع بإصدار تحديثات له (ولكن وللأسف الشديد ، هناك مستخدمين يستعملون البرنامج الاصلي ، وبدون اي تحديثات له طول العمر!! فلذلك ، ولهذه النسخ بالذات ، كلامك صحيح 100%) ، بس ما دمنا نتكلم عن التحديثات ، احب ان أضيف هذه المعلومة: اول تحديث للأكسس 2000 ، كان يحتوي على اكثر من 300 تصليح/إضافة. لهذا السبب ، التحديث غاية في الاهمية ، سواء لنظام التشغيل الوندوز او الاوفيس. تم استدعائي لأحد الدول لأنظر في مشكلة برنامجهم الذي كان به بعض المشاكل ، ومن ضمن هذه المشاكل فقد جزء من البيانات ، الكهرباء كانت تنقطع ولم تكن منتظمة ، وقد كانت الشبكة عندهم عبارة عن كمبيوترات لابتوب ، والسيرفر عليه UPS ، فالمبرمج الذي عمل البرنامج والشبكة لهم اخذ في الاعتبار مشكلة عدم انتظام الكهرباء بهذه الطريقة ، ولكني اكتشفت المشكلة ، والتي كانت بسبب انقطاع الكهرباء ، وهي ان المبرمج لم يضع UPS على Switch الشبكة ، فتواصل البيانات ينقطع بين الكمبيوترات والسيرفر عند انقطاع الكهرباء ، وتم حل المشكلة بربط الـ Switch بجهاز UPS اذن في هذه الحالة ، نستطيع ان نعمل التالي: 1. بأمر من الاكسس ، نعمل نسخة إضافية من برنامج الجداول ، 2. نتأكد ان نسخة برنامج الجداول موجوده ، 3. وبأمر آخر نعمل الاصلاح والتعديل ، فاذا لأي سبب تلفت هذه النسخة ، فنستطيع استعمال النسخة الاحتياط. طبعا انا هنا اعطيت البديلبسبب انقطاع الكهرباء جعفر جعفر
  2. السلام عليكم أخي أبوخليل ، وحيا الله من يانا ممكن تشاركنا تجربتك لوسمحت انا كنت بقترح ان يتم تقسيم البرنامج الى واجهة وجداول ، ثم يتم تفعيل خاصية الضغط على جزء الجداول. جعفر
  3. وعليكم السلام ورحمة الله وبركاته لا يؤثر ، اذا كان البرنامج مقسم ، فجزء الواجهة عادة لا يحتاج الى ضغط واصلاح ، إلا اذا كنت تستخدم الجداول المؤقته فيه ، اما جزء الجداول فيحتاج ، بين فترة واخرى ، بل يعمل عدة عمليات لتعديل وضع الجداول واعادة فهرستها ، وتضبيط الاستعلامات ، والتخلص من السجلات المحذوفة (لأنك لما تحذف سجلات ، الاكسس لا يحذفها مباشرة من البرنامج ، وانما الضغط والاصلاح يحذفها ويسترجع المساحة التي كانت تحتجزه) ولكن قرأت في اوائل اصدارات الاكسس 2007 ، واذا كان برنامجك مقسم الى واجهة وجداول مرتبطة ، كان الضغط والاصلاح يحذف ربط الجداول جعفر
  4. ايوه ، كدا الفن إلا بلاش جعفر
  5. وعليكم السلام ورحمة الله وبركاته جميعا ان شاء الله جعفر
  6. قد تحتاج الى مجموعة استعلامات الحاقية صغيرة ، بدلا عن استعلام واحد لا يعمل البارحة انا انزلت مرفقك ، ولكنك للأسف اعطيت خطوط عريضة عن مشكلتك ولم تدخل في اين المشكلة بالضبط ، وحتى اسم التقرير اللي ذكرته انت هو بالعربي ، بينما مسميات برنامجك بالانجليزي!! جعفر
  7. السلام عليكم اذا كان عندك مجموعة استعلامات توحيدية ، فاحد الطرق للتغلب على مشاكلها هو ان تعمل جدول مؤقت ، وتضيف السجلات ، ثم تستخدمه للتقرير ، ولكن انتبه لشغله مهمة وهي ، لأن برنامجك مقسم ، ويستخدمه اكثر من مستخدم ، فاجعل هذا الجدول المؤقت في نسخة البرنامج الاصلي (الواجهة ، وليس في مع بقية الجداول المرتبطة) ، وإلا فستحصل لخبطة بين سجلات المستخدمين جعفر
  8. انا اشتغلت على هذا الموضوع ، ويمكنك ان تلاحظ فرق الوقت بين وقتك ووقتي اشوف لك النقطة التالية ، لأن عندك مجموعة نقاط في موضوع واحد ، وهذا اربكك انت كذلك ، لذلك المنتدى يطلب عمل موضوع مستقل لكل نقطة جعفر
  9. وعليكم السلام ورحمة الله وبركاته تفضل وهذا الكود الذي يقوم بالمهمة: 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
  10. عليكم السلام افتح التقرير ، ثم اتبع الخطوات في الصورة المرفقة ستلاحظ وجود تغيير في رؤوس التقرير ، العب في مكان "اسم العميل" (طبعا المسمى عندك مختلف) ، وانقل حقل نص الاسم الى الرأس الصحيح ، وكله تمام جعفر
  11. وعليكم السلام ورحمة الله وبركاته تفضل يا سيدي وبدون استعلام توحيد وتتمة لما قد تحتاجه ، انظر الرابط التالي ، والذي استعنت به لبرنامجك ، وتابعه للنهاية: http://www.officena.net/ib/topic/65067-ما-هي-طريقة-استيراد-بيانات-من-عدة-صفحات-اكسل-الى-جدول-اكسس/?do=findComment&comment=423911 جعفر 283.Import_Names_List.accdb.zip
  12. وعليكم السلام ورحمة الله وبركاته تفضل وهذا كود حدث الحالي للنموذج 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
  13. وعليكم السلام تستطيع ان تستعمل طريقتي: http://www.officena.net/ib/topic/65095-كيفية-ادخال-اسم-المستخدم-في-عامود-بجدول-تلقائيا/#comment-423739 جعفر
  14. جرب هذا المرفق ، وفيه حساب ساعات العمل ، لكل الايام بس اذا تريد ان لا تتكرر الاسماء ، فيجب ان: 1. تحول الاستعلام الى استعلام مجاميع ، 2. جعل التاريخ معيار بين تاريخين ، ويمكنك استخدام نموذج لإختيار التاريخين جعفر 280.2.New.accdb.zip
  15. وعليكم السلام هذه طريقتي : http://www.officena.net/ib/topic/65095-كيفية-ادخال-اسم-المستخدم-في-عامود-بجدول-تلقائيا/?do=findComment&comment=423739 جعفر
  16. وعليكم السلام أخي كرار من متابعتي لردودك في المنتدى ، كان يجب علي ان افهم انك جربت تغيير الكود المطلوب واصطدمت بهذه الرسالة ، وتوقفت عندها : وافضل طريقة للتغلب عليها ، ان ترجع الكرة الى ملعبي السبب في حصولك هذه الرسالة ، هو ان لديك معايير 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
  17. وعليكم السلام أخي محمد الاكسس يأخذ هذه التضبيطات من الكمبيوتر ، فتأكد انك مستخدم Metric بدلا عن US في الخانة رقم 5 من الصورة جعفر
  18. جزيت ووفيت ، ولا اطلب اكثر من هذا ، فجزاك الله خيرا ، ووالديك دنيا وآخرة ان شاء الله جعفر
  19. انا اعتذر منك أخوي على عدم تجربة المرفق حاليا ، فانا بين مجموعة من الاسئلة واحاول اوفق وقتي في حلها ، وان شاء الله اشوف مرفقك واخبرك رأيي فيه والعذر عند كرام الناس مقبول جعفر
  20. يا رجال ، كنت احسبك بتطلب مني اعمل لك كبسة دجاج او لحم ، وكنت بخبصها , وخلها على الله غالي والطلب رخيص (بس مو كل مرة تسافر وتيجي بفكرة جديدة) الاستعلام صار: . نقول فيه: 1. اذا الوحدة النمطية حقّت الاسم F_Name فاضية ، 2. استعمل قيم الحقل name من الاستعلام ، 3. وإلا ، فاستعمل قيمة F_Name() من الوحدة النمطية. الكود: len(F_Name() & '')=0 في الاستعلام (واما اذا كان في الكود العادي للنماذج ، تغير ' وتخليه " : len(F_Name() & "")=0 بدل عمليتين ، وانا دائما استعمله في برامجي ، والعمليتين: if isnull(F_Name) والثانية if F_Name="" والكود في نموذج الاسم اصبح: Private Sub Form_Close() 'close name as nothing f_n = "" End Sub Private Sub Form_Load() 'initilize name as nothing f_n = "" End Sub Private Sub print_AfterUpdate() 'if selected, assign the name to f_n, otherwise don't 'so f_n will only have the last value selected, NO multiple selections If Me!print = -1 Then f_n = Me!name Else f_n = "" End If End Sub والوحدة النمطية: Option Compare Database Public d_F As Date Public d_T As Date Public f_n As String ' Function d_From() d_From = d_F End Function Function d_To() d_To = d_T End Function Function F_Name() F_Name = f_n End Function 279.1.مثال استعلام.accdb.zip
×
×
  • اضف...

Important Information