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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 طبعا انت تعرف انه من الخطأ ان تستعمل كلمات عربية لأي من الكائنات في الاكسس ، سوء اسماء جداول او استعلامات او نماذج او تقارير او ماكرو ، واسماء الحقول والازرار ووووو ، وطبعا في الكود 🙂 جرب المرفق في هذه المشاركة ، قد يفيدك: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  2. السلام عليكم 🙂 هذه مشاركتي ، وانا لا احب ان اجعل المعادلات تتزاحم في الاستعلام ، ويُصعب تعديلها لاحقا 🙂 في الاستعلام ، ننادي دالة لقيمة TR ، ودالة اخرى لقيمة Type ، وبما ان القيمتين تعتمدان على قيمة الحقل nom ، فنرسل قيمته الى الدوال : . والنتيجة : . والدوال: Function TR_Check(str_N As String) As Boolean If str_N = "^" Or str_N = "#^" Or str_N = "@^" Then TR_Check = True End If End Function Function Type_Check(str_N As String) As String If IsNumeric(str_N) Or str_N = Chr(34) & "^" & Chr(34) Or str_N = Chr(34) & "*" & Chr(34) Then Type_Check = "[1 (مسند)]" ElseIf str_N = "@^" Or str_N = "@" Then Type_Check = "[2 (موقوف)]" ElseIf str_N = "^" Then Type_Check = "[3 (طريق)]" ElseIf str_N = "#^" Or str_N = "#" Then Type_Check = "[4 (زائد)]" End If End Function . ويمكنك ان تأخذ معادلات الاستعلام ، وتضعها في استعلام تحديث 🙂 جعفر 1350.MZtab.accdb.zip
  3. وهذا للتأكيد ، اذا بالفعل كنا في نهاية السجلات (EOF) ، اذن اذهب الى بداية السجلات : 'Lsql.MoveFirst If Lsql.EOF Then Lsql.MoveFirst جعفر
  4. جال هذا الخطأ في خاطري البارحة بعد ان اغلقت الكمبيوتر ، ونسيته اليوم 😁 اخبرك المشكلة ، والحل: لما تفتح النموذج ، وتشغل الكود ، احنا قلنا للكود: 1. اقرأ البيانات الى نهايتها (EOF (End of File ، 2. بعد ان يقرأ السجل ، ينتقل الى السجل التالي MoveNext ، الى ان يصل الى نهاية البيانات (السجل الاخير) ، ويتم الحاق البيانات ، الآ لما ننقر على زر الحفظ مرة اخرى : 1. يريد ان يقرأ البيانات الى نهايتها ، ولكنه اصلا وصل الى نهايتها من المرة السابقة ، فيتخطى عملية الحفظ ، ولا يحفظ شيء !! اذن ، يجب ان (نضيف هذا السطر) ونخبر الكود: 3. بأن قبل البدأ في عملية الالحاق ، اذهب الى بداية البيانات (السجلات) ، ثم قم بتطبيق الكود 🙂 . جعفر
  5. هذا ليس جوابا على سؤالك: فكرة docmd.gotoRecord movenext ثقيلة على البرنامج ، ورجاء تجرب التالي: اعمل نموذج مستمر لجدول فيه 100 او 1000 سجل ، ثم استعمل حلقة For Next وادخل فيها docmd.gotoRecord movenext ، ستجد ان الاكسس توقف عن العمل (طبعا هو شغال ، بس يبين انه مشغول جدا) ، ولا تحصل على رسالى Not Responding اعلى البرنامج !! ومثل ما يقول المثل العماني : الباب اللي يجيك منه ريح ، سدّه واستريح 🙂 جعفر
  6. تفضل يا سيدي 🙂 With sql .AddNew !PONumber = Me.T7 !MaterialCode = Lsql!code !MaterialName = Lsql!Item !ProductionDate = Me.T6 !Shift = "none" !cons = Lsql!cons !AdditionPercent = Lsql!Remarks !MaterialType = Lsql!Type !OrderQty = Nz(Lsql!cons, 0) * Nz(Me.T3, 0) .Update End With جعفر
  7. هل الحقل PONumber او T2 موجود في النموذج المستمر؟ واذا موجود ، هل قيمته تتغير ، اذا الجواب ان قيمته لا تتغير ، اكتب السطر هكذا : !PONumber = me.T7 وبغض النظر عن الحقل اعلاه ، خلينا نشوف اذا الكود شغال صح اصلا ، وعلشان الحبايب ، هذه الحقول اللي فيها مشكلة ، اوقف عمل سطرها مؤقتا 🙂
  8. لا T1 مو صحيح ، وانما الصحيح هو item ، يعني جرب: !MaterialName = Lsql!Item
  9. لا يمكنك حذف هذا ، فهو الاساس !! مو اسم الحقل ، وانما اسم مصدر بيانات الحقل
  10. جرب هاي ، اخذتهم من الاستعلام Private Sub Command204_Click() DoCmd.OpenForm "Robot" DoCmd.GoToRecord , , acNewRec Forms![Robot]![PONumber] = Me.T7 Forms![Robot]![ProductCode] = Me.t0 Forms![Robot]![OrderQty] = Me.T3 Forms![Robot]![zdate] = Me.T6 Forms![Robot]![Mold] = Me.Mold Forms![Robot]![Machine] = Me.Machine Forms![Robot]![Status] = Me.Status Forms![Robot]![ProductBomNum] = Me.Bom DoCmd.Close Dim sql As DAO.Recordset Dim Lsql As DAO.Recordset Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset) Set Lsql = Me.RecordsetClone 'DoCmd.SetWarnings False 'DoCmd.GoToRecord , , acFirst 'ÈÏÇíÉ ÇáãÔßáÉ ãä åÐÇ ÇáÓØÑ 'For m = 1 To T8 Do Until Lsql.EOF With sql .AddNew !PONumber = Lsql!T7 !MaterialCode = Lsql!Code1 !MaterialName = Lsql!T1 !ProductionDate = Lsql!T6 !Shift = "none" !cons = Lsql!T2 !AdditionPercent = Lsql!Text324 !MaterialType = Lsql!Text300 !OrderQty = Lsql!T3 .Update End With Lsql.MoveNext Loop 'DoCmd.GoToRecord , , acNext sql.Close: Set sql = Nothing Lsql.Close: Set Lsql = Nothing 'Next m MsgBox "Done", vbInformation, "Saved successfully" 'DoCmd.SetWarnings True t0 = "" T6 = "" T7 = "" T3 = "" T10 = "" T10 = "" Status = "" BomCombo = "" Me.ComboMachine = "" Me.ComboMold = "" Mold = "" Machine = "" T216 = "" Me.Requery
  11. الاسماء اللي على يمين علامة = ، رجاء تأخذ اسمها الصحيح من النموذج المستمر
  12. وعليكم السلام 🙂 ولو اننا نحاول نضرب هدف في الظلام ، ولكن الله يسهل 🙂 جرب هذا التعديل في الكود الاصل: Private Sub Command204_Click() DoCmd.OpenForm "Robot" DoCmd.GoToRecord , , acNewRec Forms![Robot]![PONumber] = Me.T7 Forms![Robot]![ProductCode] = Me.t0 Forms![Robot]![OrderQty] = Me.T3 Forms![Robot]![zdate] = Me.T6 Forms![Robot]![Mold] = Me.Mold Forms![Robot]![Machine] = Me.Machine Forms![Robot]![Status] = Me.Status Forms![Robot]![ProductBomNum] = Me.Bom DoCmd.Close Dim sql As DAO.Recordset Dim Lsql As DAO.Recordset Set sql = CurrentDb.OpenRecordset("TblPoMaterials", dbOpenDynaset) Set Lsql = Me.RecordsetClone 'DoCmd.SetWarnings False 'DoCmd.GoToRecord , , acFirst 'بداية المشكلة من هذا السطر 'For m = 1 To T8 Do Until Lsql.EOF With sql .AddNew !PONumber = Lsql!PONumber !MaterialCode = Lsql!MaterialCode !MaterialName = Lsql!MaterialName !ProductionDate = Lsql!ProductionDate !Shift = "none" !cons = Lsql!cons !AdditionPercent = Lsql!Text324 !MaterialType = Lsql!Text300 !OrderQty = Lsql!OrderQty .Update End With Lsql.MoveNext Loop 'DoCmd.GoToRecord , , acNext sql.Close: Set sql = Nothing Lsql.Close: Set Lsql = Nothing 'Next m MsgBox "Done", vbInformation, "Saved successfully" 'DoCmd.SetWarnings True t0 = "" T6 = "" T7 = "" T3 = "" T10 = "" T10 = "" Status = "" BomCombo = "" Me.ComboMachine = "" Me.ComboMold = "" Mold = "" Machine = "" T216 = "" Me.Requery واذا حصلت على نسختين من السجل الاول ، فممكن حذف كل الاسطر قبل السطر Dim 🙂 جعفر
  13. شكرا اخوي خالد 🙂 هي نفس الطريقة التي اتبعها في برنامج ونفسها التي استعملتها ، ولكن من داخل الاكسس (استخدمت اسماء متغيرات من البرنامج) : . ويبقى السؤال طافيا ، لماذا !! للعلم ، حاولت تتبع هذه النقطة وفرأت المزيد من موقع مايكروسوفت وبالبحث ، واتضح بأنه في احد الحالات ، انزلت المايكروسوفت إضافة/تحديث في الاكسس في حقل تاريخ من نوع Extended ليماشي DateTime2 الذي في SQL Server ، وبعد ان حصل الكثير على نفس رسالة الخطأ "تحتاج الى نسخة احدث" ، قالت مايكروسوفت بأنها انزلت التحديث بدون تريث ، فلهذا ازالت هذا التحديث ، واصبحت البرامج تعمل بطريقة عادية. ولكن الملفت للنظر هو ، ان مايكروسوفت لم تعمل ملف تحديث للكمبيوترات ، وانما اشتغلت البرامج بطريقة صحيحة 😮!! ويا غافل لك الله 🙂 جعفر
  14. وعليكم السلام 🙂 عملت تغيير بسيط في الكود السابق: myTotal_Page_Number = 5 Do until myPage_Number = myTotal_Page_Number myPage_Number = myPage_Number + 1 Docmd.openreport" " acviewnormal Loop اذهب الى اي وحدة نمطية عندك ، واذا ما عندك ، اعمل واحدة ، واكتب التالي في اعلى الوحدة النمطية: Option Compare Database Option Explicit اكتب التالي تحت السطر او السطرين اعلاه public myPage_Number as integer public myTotal_Page_Number as integer وفي التقرير اعمل حقلين جدد لترقيم الصفحات: حقل رقم الصفحة التي يتم طباعتها الآن ، وفي مصدر بيانات الحقل اكتب: myPage_Number= حقل مجموع عدد الصفحات التي يتم طباعتها الآن ، وفي مصدر بيانات الحقل اكتب: myTotal_Page_Number= جعفر
  15. وعليكم السلام 🙂 من تجربتي ، خط Times New Roman وذلك لأنه لا يتغير بتغيّر الكمبيوتر ونوع النظام ، فيكون نفسه عند زبائنك 🙂 جعفر
  16. اخوي ابوعبدالله_1972 الله يشفيك ان شاء الله 🙂 العنوان ، مخالف ومناشدتك مساعدة عضو معين ، مخالف وسؤالك لأكثر من طلب ، مخالف فرجاء اقرأ قوانين المنتدى ، وافتح موضوع جديد تأخذ في الاعتبار النقاط اعلاه 🙂 يُغلق جعفر
  17. نعم ، بعمل ثلاث تغييرات : . جعفر 1348.ترقيم خاص.accdb.zip
  18. حاولت الضغط والاصلاح عن طريق هذا البرنامج ، ولكن لم ينفع !! . فحاولت اعطاء الامر مباشرة ، ولم ينفع ، وحصلت على رسالة ان برنامجي قديم : Shell Chr(34) & SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE" & Chr(34) & " " & Chr(34) & "D:\Documents\Downloads\price_fa.accdb" & Chr(34) & " /compact",vbHide فحاولت بالطريقة الاخرى : Application.CompactRepair( _ LogFile:=True, _ SourceFile:="D:\Documents\Downloads\price_fa.accdb", _ DestinationFile:="D:\Documents\Downloads\price_fa_COMPACTED.accdb") وحصلت على هذه الرسالة : . فهل عملت الضغط والاصلاح من الاكسس 2019؟ وانا كذلك ، لهذا السبب هذا الامر غريب بالنسبة لي !! جعفر
  19. شكرا جزيلا اخوي خالد 🙂 هذا معناه انه في اعدادات مخفية لا تسمح للاكسس 2010 بفتح هذه الملفات !! جعفر
  20. بس حلك ابطأ من حللي ، لسبب : نوع الحقل في الجدول عبارة رقم ، ومعرّف انه Double ، فقمت انت في الدالة بتغيير نوعه الى Variant ، وارجعت القيم الى الاستعلام كنص (لما يكون محاذاة القيمة في الحقل ، الى اليمين ، فمعناه انه رقم او تاريخ ، بينما اذا كانت محاذاته الى اليسار فيكون نص) ، ثم رجعت في الاستعلام (او النموذج) وغيرته الى Double ، وفي حقل المجموع في النموذج استعملت الدالة NZ مرة اخرى ، والتي كذلك تحتاج الى وقت للقيام بعملها 🙂 اما طريقتي جعفر
  21. وعليكم السلام 🙂 نعم وذلك بتنفيذ طلب الاكسس وذلك بإالغاء العلاقات بين الجداول المرتبطة ، ثم تغيير نوع الحقل في جميع الجداول المرتبطة (ولو انه يُفضل تغييرها في جميع الجداول) ، ثم تعمل العلاقات بين الجداول مرة اخرى 🙂 ولكن هناك حالات لا تحتاج فيها الى تغيير نوع الحقل ، فياريت تعطينا معلومة اكثر عن طلبك 🙂 جعفر
  22. لم استطع فتح جميع المرفقات في هذا الموضوع : ضرب حقلين داخل استعلام بواسطة فاكشن - قسم الأكسيس Access - أوفيسنا (officena.net) ثم استخدمت الاكسس 2019 ، وتفجاءت بأن المرفق جدا بسيط ولا يوجد فيه اي من الاشياء الي تكلمنا عنها هنا !! جعفر
  23. السلام عليكم 🙂 الاكسس 2010 لم يستطع فتح المرفقات جميعا ، وحصلت على هذه الرسالة (مع ان الاكسس عندي يتم عمل له تحديث تلقائي) : . فاضطررت ان استعمل الاكسس 2019 ، واحول البرنامج الى صيغة mdb ، حتى اتعامل معاه على الاكسس 2010 !! شكرا اخوي احمد ، وبسبب ملاحظتك عن وجود حقول فارغة ، فتوصلت الى هذا الحل ، والذي يحاكي حلك ، ولكن يتفاعل مع اصل البيانات الفارغة من الاستعلام قبل ارسالها للدالة ، اما اذا ارسلت البيانات الغير كامة الى الدالة ، فستضطر ان لا تصرح عن المتغير في الدالة على انه Double 🙂 ) . والنتيجة: . جعفر 1346.price_fa.mdb.zip
×
×
  • اضف...

Important Information