-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
مثل ما اختي أم خلود قالت ، يُفضل ان ترفق برنامجك ، وتخبرنا متى (عند ضغط اي زر) يحصل هذا. ما كنت اعنيه: المرفق في الرابط التالي يخفي خلفية اكسس: http://www.officena.net/ib/topic/66410-ارغب-في-اخفاء-اطار-اكسس-عنوان-معدل/?do=findComment&comment=431836 اسم المستخدم وكلمة السر 123 فاذا كان برنامجك فيه الكود ليعمل هذا ، فيجب ازالت الكود او تضبيطه جعفر
-
السلام عليكم الظاهر عندك كود اللي يخفي خلفية الاكسس ، ويمكن فيه شروط معينة تخلي الكود يشتغل !! جعفر
-
مطلوب عمل تقرير نهائي كما موضح بالصور ومرتبط بنموذج
jjafferr replied to محمود_سعيد's topic in قسم الأكسيس Access
وعليكم السلام اخوي رمهان 1. حياك الله ، ولك مثل ما دعوت لي وزيادة ان شاء الله 2. كلامك صحيح ، هذا لأن الاخ محمود سعيد اخبرني ان الموضوع كله متعلق بالجدول Blagh ، فلهذا السبب شغلي كله كان عليه ، مع اني شفت الجدولين الثانيين ، ولكني لم اربط بينهما ، ولكن وبعد ملاحظتك ، قمت بتعديل البرنامج ، بحيث اصبح يأخذ من الجداول الثلاثة: Blagh والمصابين والوفيات ، ومرفق نسخة منه ، 3. لا تستطيع ان تستغني عن حقلي المصابين والوفيات في الجدول Blagh ، وذلك لأنه في حالات يوجد بلاغ ولا يوجد مصابين ولا وفيات ، ولا يوجد جدول مستقل لحالات البلاغ ، وقد عملت البرنامج على حساب هذين الحقلين في الجدول شكرا على المتابعة وعليكم السلام اخي محمود لوسمحت المرات الجاية ، لوسمحت لا تضع ملف تجريبي ، لأن العمل يصير مرتين استعمل احد برامج الضغط مثل winzip او winrar ، وارفق ملفك في الموضوع ، فانا لا املك حساب في الموقع الذي رفعت فيه الملف. جعفر 411.Database11.accdb.zip- 16 replies
-
- 2
-
-
- قاعدة بيانات
- تقرير
-
(و2 أكثر)
موسوم بكلمه :
-
مطلوب عمل تقرير نهائي كما موضح بالصور ومرتبط بنموذج
jjafferr replied to محمود_سعيد's topic in قسم الأكسيس Access
الله يسلمك اخوي محمد اذا تلاحظ ، مافي كود في العملية كلها في طريقة ثانية عن طريق الكود ، بس تحتاج نكتب في جدول مؤقت ، بحيث يأخذ التقرير بياناته من هذا الجدول المؤقت ، وانا اتفادى الجداول المؤقته ، لأنها تُكبّر من جحم البرنامج ، ويجب عليك الضغط والاصلاح لتصغير البرنامج جعفر- 16 replies
-
- 1
-
-
- قاعدة بيانات
- تقرير
-
(و2 أكثر)
موسوم بكلمه :
-
مطلوب عمل تقرير نهائي كما موضح بالصور ومرتبط بنموذج
jjafferr replied to محمود_سعيد's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته السؤال ظاهرا سهل ، ولكني لم اجد طريقة سهلة لحلّه اليك خطوات عملي: الجدول الذي نأخذ منه البيانات: . والنموذج الذي يجب ان نحتار التاريخين فيه: . استعلام المجاميع Totals لجمع البيانات حسب الحالات المتشابهة بين تاريخي النموذج: . ونتيجته: . وفي الواقع ، كل العمل التالي هو لجعل معلومات الاستعلام اعلاه تدور 90 درجة الاى اليمين ، ليصبح: . لعمل الدوران لكل حالة ، نحن محتاجين نعمل استعلام جدولي Crosstab Query ، وفي حالتنا عندنا 3 حالات ، عدد البلاغات ، عدد المصابين ، عدد الوفيات: . والنتيجة لكل حالة: . ولكن الاستعلام الجدولي محتاج تضبيط قبل ان يشتغل بالطريقة الصحيحة: اولا: بإدخال جميع الحالات الموجودة ، حتى تظهر لنا في التقرير (وإن لم يكن فيها قيمة للفترة بين تاريخين): . ثانيا: بتعريف المعايير التي تم استخدامها في استعلام المجاميع سابقا: . الآن لدينا 3 استعلامات جدولية ، وفي كل واحد منها قيمة ، ولكننا نريد القيم الثلاث ، لذا يجب ان نعمل استعلام تجميع Union query لهذه الاستعلامات الثلاث: . والنتيجة: . ولكن الاستعلام اعلاه جدا حساس ، واذا غيّرت شئ ، فلن يعمل الاستعلام!! ولكننا بحاجة الى عمل مجموع للقيم !! لذا ، سنأخذ الاستعلام السابق ، ونعمل منه استعلام جديد عادي Select ، بحيث نجمع القيم في الحقل Total ، كمل عملنا حقل للملاحظات (طبعا انت يجب ان تربطه بجدول): . والنتيجة: . بس انت ولا يهمك كل الكلام اعلاه ، فقط اضغط في النموذج على زر معاينة التقرير ، علشان تحصل على نتيجة جميع الاستعلامات اعلاه: سهله هاه جعفر 411.Database11.accdb.zip- 16 replies
-
- 4
-
-
- قاعدة بيانات
- تقرير
-
(و2 أكثر)
موسوم بكلمه :
-
موضوع متكرر
-
ان شاء الله بس بعض الاوقات لازم نفتح النموذج ، وفي الامر نخبر البرنامج اننا نريد فتحه على هيئة ورقة بيانات ، هكذا: DoCmd.OpenForm "frm_Silver", acFormDS جعفر
-
بالاضافة الى ملاحظة أخي رمهان ، يُفضل ان ترفق هذه الجزئية من برنامجك ، وتخبرنا عن طريقة عرض النموذج (عن طريق الزر الفلاني) ، ومنها الجواب يكون ادق جعفر
-
وعليكم السلام هاي احنا ما طلّعنا الزار ولا عزمنا ولا عملنا بخور ولبان وحرمل ولا استعنّا بالشيخ الحل كان بسبب شرحك ومثالك الواضح (مب شرحك الاول ) ، المشكلة تصير لما السائل يسأل بكلمتين ويرفق برنامجه ، وبدون مثال ، وبدون ما يقول اي نموذج / جدول يتكلم عنه ، ولا حتى اي حقل ، بل بعض الاوقات يطلب الجواب بصيغة معينة (يعني هو يكون الـ Navigator وانت السائق ، هو يوجّهك في الاتجاه الذي يريد) ، وبهذه الطريقة ياتوصل الى طريق مسدود او الى طريق وعر حياك الله جعفر
-
السلام عليكم عملي كله معتمد على: لتسهيل الامر ، اضفت الى النموذج زر: أ. اذا النموذج الفرعي فارغ ، فعند النقر على الزر فانه يضيف 5 سجلات فيه حسب ما وضحت انت ، ولا يعمل الزر اذا كان فيه سجلات ، ب. سواء استخدمت الزر او ادخلت البيانات يدويا بنفس الترتيب (نفس الوجبات ونفس الترتيب) ، فهنا يبدأ الكود في العمل ، مثلا: لا يسمح لك بإدخال سجل سادس ، لا يسمح لك تغيير قيمة حقل الكميات في السجل الرابع والخامس ، عند تغيير قيمة حقل الكميات في اي سجل ، فانه يقوم بعملية الحساب من جديد. هذا كود زر الاضافة: Private Sub cmd_add_5_Click() On Error GoTo err_cmd_add_5_Click Dim rst As DAO.Recordset Dim food_list 'save the Record of the Main Form, if not saved If Me.Dirty Then Me.Dirty = False Set rst = Me.main.Form.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'this should be a new set, make sure we don't have Records If RC <> 0 Then MsgBox "لا يمكن الاضافة ، توجد سجلات مسبقا" & vbCrLf & _ "Can't add on existing Records" GoTo Exit_cmd_add_5_Click End If food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") For i = 1 To 5 rst.AddNew rst!cid = Me.ID rst!food = food_list(i - 1) rst.Update Next i Exit_cmd_add_5_Click: rst.Close: Set rst = Nothing Exit Sub err_cmd_add_5_Click: If Err.Number = 3021 Then 'No Records Resume Next ElseIf Err.Number = 3201 Then 'No Record in main Form MsgBox "رجاء تعبئة بيانات النموذج الرئيسي اولا" & vbCrLf & _ "Please fill Main Form first" Resume Exit_cmd_add_5_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub وهذا كود النموذج الفرعي: Private Sub food_AfterUpdate() 'do the calculations for Records 4 and 5 Call Check_Record End Sub Function Check_Record() On Error GoTo err_Check_Record ' If Me.NewRecord = True Then Exit Function If Me.Dirty Then Me.Dirty = False 'DoCmd.RunCommand acCmdSaveRecord Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then 'get the 4th and 5th Records values rst.MoveFirst Q1 = rst!qty rst.MoveNext Q2 = rst!qty RQ5 = Q2 / 5 rst.MoveNext Q3 = rst!qty RQ4 = Q1 - (Q3 + RQ5) rst.MoveNext rst.Edit rst!qty = RQ4 rst.Update rst.MoveNext rst.Edit rst!qty = RQ5 rst.Update End If Exit_Check_Record: rst.Close: Set rst = Nothing Exit Function err_Check_Record: If Err.Number = 3021 Then Resume Exit_Check_Record Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function Private Sub Form_Current() On Error GoTo err_Form_Current If Me.NewRecord = False Then Exit Sub Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then Cancel = True Me.Undo DoCmd.GoToRecord , , acPrevious MsgBox "لا يمكنك اضافة سجل جديد" & vbCrLf & _ "Can't add a new Record" Exit Sub End If Exit_Form_Current: rst.Close: Set rst = Nothing Exit Sub err_Form_Current: If Err.Number = 3021 Then Resume Exit_Form_Current Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub Private Sub qty_AfterUpdate() 'do the calculations for Records 4 and 5 Call Check_Record End Sub Private Sub qty_BeforeUpdate(Cancel As Integer) On Error GoTo err_qty_BeforeUpdate Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then If Me.food = "sheep" Or Me.food = "tona" Then Cancel = True Me.Undo MsgBox "لا يمكنك تغيير قيمة الكمية اذا كانت الوجبة " & vbCrLf & Me.food & vbCrLf & _ "Can't change Qty if food is " & Me.food Exit Sub End If End If Exit_qty_BeforeUpdate: rst.Close: Set rst = Nothing Exit Sub err_qty_BeforeUpdate: If Err.Number = 3021 Then Resume Exit_qty_BeforeUpdate Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 407.قيمة محسوبة.mdb.zip
-
وهل اصبح الموضوع واضح الان ، ام تحتاج لمزيد من التوضيح ؟ جعفر
-
السلام عليكم أخي صالح لم ارد الرد ، ولكن بما انك ارسلت لي رسالة على الخاص ، فهذا دلوي : الاستعلام الذي عملته انت ، يأخذ معياره من قيمة موجودة (مثله مثل لو طلعت لك رسالة تطالب بالقيمة ، وانت ادخلت القيمة ، فلن تظهر لك الرسالة) ، ولكن ، غير المعيار (مثلا) : من [جدول2]![id] الى [جدول2]![id2] واضغط على زر الامر في النموذج ، فاذا ادخلت رقم صح ، مثلا 1 ، فلن تظهر لك الرسالة (كما هو الحاصل مع الاخ الشاعر) ، ولكن عندما تنقر على الزر cancel ، فستظهر لك رسالة الخطأ (كما هو الحاصل مع الاخ الشاعر) ، وهنا بيت القصيد جعفر
-
السلام عليكم أخي صالح: عمل قواعد البيانات ، بإختصار : ادخال بيانات ، فرز وتصفية لإخراج البيانات ، فلا يوجد شئ اسمه اول سجل ولا آخر سجل ، لإستخراج سجل معين ، يجب علينا الفرز / التصفية ، الفرز يكون بقيمة حقل / حقول ، والتصفية كذلك يكون بقيمة حقل / حقول ، لهذا السبب ، وجود حقل ترقيم تلقائي AutoNumber مفهرس ، مهم لهذا السبب ، حقل الرقم التلقائي في الواقع هو مهم في سرعة الوصول الى اي سجل ، ويجب ان يكون في كل جدول ، بالاضافة الى حقل تاريخ تلقائي (القيمة الافتراضية Now ) والآن الى سؤالك على اليمين جدولك كما هو ، وعلى اليسار نسخة من الجدول ، ولكن تم حفظه بعد فرز حقل الاسم تنازليا ، الظاهر ان اكسس يحتفظ بتسلسل الادخال ، حتى ولو تمت عملية الفرز ، واللي عملته اني وضعت حقلين في النموذج باسم nom_1 و nom_11 ، استعملت الكود التالي على زر cmd_1: Private Sub cmd_1_Click() Dim rst As DAO.Recordset mySQL = "SELECT TOP 1 nom FROM tbl" Set rst = CurrentDb.OpenRecordset(mySQL) Me.nom_1 = rst!nom mySQL = "Select * FROM tbl2" rst.MoveLast: rst.MoveFirst Me.nom_11 = rst!nom rst.close : set rst = nothing End Sub الكود الاول يأخذ قيمة واحدة من الجدول الاول (والذي بدون فرز) ، بينما الكود الثاني يأخذ الجدول الثاني ، ثم يأخذ اول قيمة منه ، والنتيجة كانت "صلاح" ولكن ، الافضل دائما اضافة حقل الرقم التلقائي ، والذي تستطيع ان تعمل الفرز عن طريقه ، للوصول الى اي سجل مطلوب ، والنتيجة تكون دقيقة فعند إضافة حقل الترقيم التلقائي ، فان اكسس يعطي الرقم حسب الادخال الاصل وليس حسب فرز الجدول ، فيكون الجدولان هكذا: هذا هو الكود للحقل nom_2 في النموذج ، وهي الطريقة الصحيحة في العمل: mySQL = "Select * From tbl2 Order by Auto_ID" rst.MoveLast: rst.MoveFirst Me.nom_2 = rst!nom جعفر 410.استخراج قيمة السجل الأول.accdb.zip
-
اخي محمد مثالك فيه خطأ !! رجاء تعديله واذا كان عندك اكثر من 5 سجلات ، فما هي المعادلة المطلوبة؟ جعفر
-
السلام عليكم اخي صالح ، السؤال يحتاج الى توضيح لوسمحت ، وياريت ترفق لنا جدول و تخبرنا ما معنى السجل الاول لأحد الحقول ، وماهو من مثالك ، والذي على اساسه يمكننا المساعدة ان شاء الله جعفر
-
أخوي محمد انت تعرف ان اسالتك غريبة فياريت تعطينا مثال واضح نقتدي به جعفر
-
السلام عليكم أخي حسين الظاهر انك صاحب تجربة في هذا الموضوع اخي محمد الان اصبح عندك طريقتين ، فاختر ما شئت جعفر
-
السلام عليكم ادخل البيانات وجرب نتيجة النموذج لوسمحت هذه تجربة اولى حتى نتوصل للمطلوب ان شاء الله بالنسبة الى sex&state ، اين سنجد هذه المعلومة في النموذج؟ جعفر 400.Parameter.mdb.zip
-
طبعا ، فهي مجموع جميع الكميات ، اليس هذا سؤالك؟ جعفر
-
-
تفضل الجدول: الاستعلام ، ونتيجته: . والان إضافة حقل مادة المستوى . الان اصبح الترتيب صحيحا ، ولكننا نريد العشرة الاوائل فقط: . والنتيجة: جعفر 406.First_Ten.mdb.zip
-
الموضوع مخالف قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف جعفر
-
السلام عليكم أخي صالح جربت الطريقة وما نفعت ، رسالة الخطأ لازلت تظهر حياك الله أخي الشاعر جعفر
-
في أكسس إنتقال مؤشر الفأرة إلى سطر جديد, و ليس إلى حقل جديد
jjafferr replied to خليل خليل داماس's topic in قسم الأكسيس Access
السلام عليكم في النموذج ، وللإنتقال من حقل الى آخر عند الضغط على الزر TAB او Enter ، فهذا يعتمد على رقم Tab index الحقل (انظر الى الصورة): فعند فتح النموذج ، فإن مؤشر الادخال يكون على الحقل الذي رقمه 0 صفر والذي يكون Tab Stop نعم ، وعند الضغط على الزر Tab او Enter ، فانه ينتقل الى الحقل المسلسل التالي ، لذلك ، تأكد ان حقل ادخال الباركود لا يحمل آخر رقم في النموذج ، والذي ينتج عنه الانتقال الى سجل جديد ، وكذلك ، اذا لم ترد ان تنتقل الى سجل جديد ، فغير اعدادات النموذج الى Current Record: يعني ، لا تغير اعدادات الاكسس وتلخبط عمل جميع برامج الاكسس ، وانما غيّر اعدادات النموذج وحقوله جعفر -
وعليكم السلام تفضل: Private sub .... on error goto err_No_2001 ..... ..... Exit_N0_2001: exit sub err_No_2001: if err.number=2001 then Resume Exit_N0_2001 else msgbox err.number & vbcrlf & err.description endif end sub جعفر