-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
نقل قيمة حقل من فورم الي حقل اخر في فورم اخر
jjafferr replied to محمدوحوح's topic in قسم الأكسيس Access
وعليكم السلام 🙂 ياريت تعطينا مثال من برنامجك حتى نقدر تتبعه 🙂 ثم النموذجين 1 و 2 مقفلان ، فلم استطع ان اختار شيئا منهم !! جعفر -
-
وعليكم السلام 🙂 هناك العديد من المواضيع في المنتدى بهذا الخصوص ، ويمكنك ان تخبرنا الطريق التي اتبعتها في برنامجك ، لتحصل على آراء الاعضاء 🙂 الحماية ليست من تخصصي (يعني 99% من برامجي ليست فيها حماية) ، لهذا السبب فأنا أفضل ان يساعدنا بقية الاعضاء ذوي الخبرة 🙂 جعفر
-
ترقيم صفحات التقرير عند طباعه أكثر من نسخه من نفس التقرير
jjafferr replied to esam munir's topic in قسم الأكسيس Access
والكود الذي عملته -
وعليكم السلام 🙂 تم حذف هذه الميزة من اكسس 2013 ، ولكن هناك اداة من مايكروسوفت لتقوم بنفس العمل اسمها SSMA ، ويمكنك انزالها من هذا الرابط : https://www.microsoft.com/en-us/download/confirmation.aspx?id=54255 جعفر
-
شكرا شباب 🙂 كنت ابحث عن هذا الموضوع ، والحمدلله لقيته ، وفيه نصائح عن الامور التي تحتاجها لأي برنامج ، وكان لأخوي @kha9009lid السهم الاكبر من هذه النصائح (شكرا اخوي خالد 🙂) : . جعفر
-
السلام عليكم 🙂 ملاحظاتي: 1. يجب ان يكون هذا الحقل هكذا ، وعادة يكون المفتاح الاساس ، ولكن لأن عندك مفتاح اساس آخر ، فمافي مشكلة: . 2. وجميع الحقول لا تستخدم خاصية Lookup الجدول : . 3. تسمية الجداول/النماذج/الاستعلامات/التقارير تبدأ بحرف/حروف تميزها عن بقية الكائنات (ما يكون عندك جدول واستعلام ونموذج وتقرير بنفس الاسم ، Type1 ، مثلا) ، وانما يكون tbl_Type1 و qry_Type1 ..) ، ونجعل الحقل مفهرس لأن عنده علاقة مع جدول آخر (انظر الصورة رقم 11) ، ويجب ان يكون في جدول الحقلين Auto_ID و Auto_Date (المسمى غير مهم ، وانما الاعدادات مهمة) ، فبالاضافة الى فائدة Auto_ID لتسريع جلب بيانات الجدول ، و Auto_Date لمعرفة وقت عمل السجل ، فإن هذين الحقلين هما الاساس في تحويل جدولك الى SQL Server لاحقا اذا شئت : . 4. مصدر سجلات الحقل من جدوله tbl_Type1 ، بينما مصدر بيانات السجل من جدول MZ_TAB : . 5. هكذا نرى في النموذج الاسم الذي نريد المستخدم ان يراه : . 6. . 7. بعد ان يُدخل المستخدم قيمة للحقل nom ، يمكن استخدام الدوال لتحديث الحقلين الآخرين في النموذج : . 8. وبما انن نحدّث الحقلين تلقائيا ، فنقفلهم حتى لا يعبث بهما المستخدم : . 9. نوع القيمة المسترجعة من الدالة ، يجب ان تطابق تلك التي في الجدول : . 10. تجنب استخدان الكلمات العربية في اي من كائنات برنامجك ، فمن السهل التغلب على هذه النقطة من البداية ، ولكن اذا لم تفعل هذا ، فستقلب كف على كف : . 11. العلاقة بين الجدول الجديد والجدول/الجداول التي تكون فيها قيمة TYPE1 ، اما العلاقة التي في الاعلى ، فمالك شغل في اولاد الجيران وعملهم 😁 . جعفر 1350.1.MZtab08.accdb.zip
-
ونصيحة ، ابدا لا تستخدم هذه الخاصية في الجدول : . وانما اعمل جدول خاص بقيم هذا الحقل ، ثم في الاستعلام تربط هذا الحقل بحقل الجدول الآخر. لاحظ ان جوابي في المشاركة السابقة لم يتطرق لهذا الحقل ، لأنه لا يوجد طريقة لمعرفة استخدامك لهذه الخاصية إلا بفتح الجدول في وضع التصميم ومعرفة القيم !! عليه ، الدوال يجب تغييرها الى: 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 Long 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 جعفر
-
وعليكم السلام 🙂 طبعا انت تعرف انه من الخطأ ان تستعمل كلمات عربية لأي من الكائنات في الاكسس ، سوء اسماء جداول او استعلامات او نماذج او تقارير او ماكرو ، واسماء الحقول والازرار ووووو ، وطبعا في الكود 🙂 جرب المرفق في هذه المشاركة ، قد يفيدك: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
-
السلام عليكم 🙂 هذه مشاركتي ، وانا لا احب ان اجعل المعادلات تتزاحم في الاستعلام ، ويُصعب تعديلها لاحقا 🙂 في الاستعلام ، ننادي دالة لقيمة 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
-
جال هذا الخطأ في خاطري البارحة بعد ان اغلقت الكمبيوتر ، ونسيته اليوم 😁 اخبرك المشكلة ، والحل: لما تفتح النموذج ، وتشغل الكود ، احنا قلنا للكود: 1. اقرأ البيانات الى نهايتها (EOF (End of File ، 2. بعد ان يقرأ السجل ، ينتقل الى السجل التالي MoveNext ، الى ان يصل الى نهاية البيانات (السجل الاخير) ، ويتم الحاق البيانات ، الآ لما ننقر على زر الحفظ مرة اخرى : 1. يريد ان يقرأ البيانات الى نهايتها ، ولكنه اصلا وصل الى نهايتها من المرة السابقة ، فيتخطى عملية الحفظ ، ولا يحفظ شيء !! اذن ، يجب ان (نضيف هذا السطر) ونخبر الكود: 3. بأن قبل البدأ في عملية الالحاق ، اذهب الى بداية البيانات (السجلات) ، ثم قم بتطبيق الكود 🙂 . جعفر
-
هذا ليس جوابا على سؤالك: فكرة docmd.gotoRecord movenext ثقيلة على البرنامج ، ورجاء تجرب التالي: اعمل نموذج مستمر لجدول فيه 100 او 1000 سجل ، ثم استعمل حلقة For Next وادخل فيها docmd.gotoRecord movenext ، ستجد ان الاكسس توقف عن العمل (طبعا هو شغال ، بس يبين انه مشغول جدا) ، ولا تحصل على رسالى Not Responding اعلى البرنامج !! ومثل ما يقول المثل العماني : الباب اللي يجيك منه ريح ، سدّه واستريح 🙂 جعفر
-
جرب هاي ، اخذتهم من الاستعلام 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
-
وعليكم السلام 🙂 ولو اننا نحاول نضرب هدف في الظلام ، ولكن الله يسهل 🙂 جرب هذا التعديل في الكود الاصل: 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 🙂 جعفر
-
اين هى اذونات المستخدمين بـ اكسيس 2013 , 2016 , 2019
jjafferr replied to EMM2020's topic in قسم الأكسيس Access
شكرا اخوي خالد 🙂 هي نفس الطريقة التي اتبعها في برنامج ونفسها التي استعملتها ، ولكن من داخل الاكسس (استخدمت اسماء متغيرات من البرنامج) : . ويبقى السؤال طافيا ، لماذا !! للعلم ، حاولت تتبع هذه النقطة وفرأت المزيد من موقع مايكروسوفت وبالبحث ، واتضح بأنه في احد الحالات ، انزلت المايكروسوفت إضافة/تحديث في الاكسس في حقل تاريخ من نوع Extended ليماشي DateTime2 الذي في SQL Server ، وبعد ان حصل الكثير على نفس رسالة الخطأ "تحتاج الى نسخة احدث" ، قالت مايكروسوفت بأنها انزلت التحديث بدون تريث ، فلهذا ازالت هذا التحديث ، واصبحت البرامج تعمل بطريقة عادية. ولكن الملفت للنظر هو ، ان مايكروسوفت لم تعمل ملف تحديث للكمبيوترات ، وانما اشتغلت البرامج بطريقة صحيحة 😮!! ويا غافل لك الله 🙂 جعفر -
ترقيم صفحات التقرير عند طباعه أكثر من نسخه من نفس التقرير
jjafferr replied to esam munir's topic in قسم الأكسيس Access
وعليكم السلام 🙂 عملت تغيير بسيط في الكود السابق: 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= جعفر -
وعليكم السلام 🙂 من تجربتي ، خط Times New Roman وذلك لأنه لا يتغير بتغيّر الكمبيوتر ونوع النظام ، فيكون نفسه عند زبائنك 🙂 جعفر
-
عدم سبب الرد كان مرضي للاستاذ و اخي الفاضل محمد ابوعبدالله
jjafferr replied to ابوعبدالله_1972's topic in قسم الأكسيس Access
اخوي ابوعبدالله_1972 الله يشفيك ان شاء الله 🙂 العنوان ، مخالف ومناشدتك مساعدة عضو معين ، مخالف وسؤالك لأكثر من طلب ، مخالف فرجاء اقرأ قوانين المنتدى ، وافتح موضوع جديد تأخذ في الاعتبار النقاط اعلاه 🙂 يُغلق جعفر- 1 reply
-
- 1
-