بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
في النموذج frmEdrajSenfm ، حقل Alkmiah لا يقبل ادخال رقم اكبر من الحقل Alkmiah في النموذج الفرعي frm_mr هل انا وانت نتكلم عن نفس النماذج؟ انتبه ، انا لا اتكلم عن النموذج الفرعي SubSales
-
تفضل 828.احتساب الكميه 2.mdb.zip
-
وهكذا اصبح الكود ، ورجاء تجربته Private Sub cmd_Do_Records_Click() Dim rst As DAO.Recordset Dim rstSUB As DAO.Recordset 'نقرأ بيانات النموذج الفرعي Set rstSUB = Me.Forme_Sub_Itinerary.Form.RecordsetClone rstSUB.MoveLast: rstSUB.MoveFirst RCsub = rstSUB.RecordCount 'نقرأ كل سجل من سجلات النموذج الفرعي For j = 1 To RCsub 'اذا يوجد علامة صح في حقل "اعمل التغييرات" فقم بحذف السجلات السابقة لهذا الخط ، واعمله من جديد If rstSUB!Do_Changes = -1 Then 'نجهز الجدول لإدخال/حذف بيانات رقم المقعد mySQL = "SELECT Auto_Chair_ID AS Auto, Tabl_bus.*" mySQL = mySQL & " FROM Tabl_bus" mySQL = mySQL & " WHERE Num_Itinerary_ID=" & rstSUB!Auto_ID mySQL = mySQL & " AND Num_Itinerary=" & rstSUB!Num_Itinerary mySQL = mySQL & " AND Num_rihla=" & rstSUB!Num_rihla mySQL = mySQL & " ORDER by Auto_Chair_ID DESC" 'Debug.Print mySQL Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount If RC > rstSUB!Number_seats Then 'نحذف سجلات رقم المقعد من الجدول For i = rstSUB!Number_seats + 1 To RC rst.Delete rst.MoveNext Next i Else 'نضيف سجلات رقم المقعد في الجدول For i = RC + 1 To rstSUB!Number_seats rst.addnew rst!Num_Itinerary_ID = rstSUB!Auto_ID rst!Num_Itinerary = rstSUB!Num_Itinerary rst!Num_rihla = rstSUB!Num_rihla rst![Chair_ No] = i rst.Update Next i End If 'نقوم بتغيير حقل "اعمل التغييرات" ونزيل الصح منها rstSUB.Edit rstSUB!Do_Changes = 0 rstSUB.Update GoTo Exit_cmd_Do_Records_Click End If 'rstSUB rstSUB.MoveNext Next j Exit_cmd_Do_Records_Click: 'احذف البيانات من ذاكرة الكمبيوتر rst.Close: Set rst = Nothing rstSUB.Close: Set rstSUB = Nothing End Sub . جعفر 806.2.AAddseat.accdb.zip
-
يعني مثلا: اذا كان عندنا في جدول الباصات 40 سجل: اذا عدد مقاعد النموذج الفرعي = 30 ، اذن نقوم بحذف Auto_Chair_ID الاكبر الى الاصغر ، مثلا 31-40 اذا عدد مقاعد النموذج الفرعي = 50 ، اذن نقوم بإضافةسجلات ، 41-50 مع الاخذ بعين لاعتبار بأن الرقم الذي يتم حذفة من Auto_Chair_ID لا يمكن الحصول عليه مرة اخرى. صح هذا المطلوب؟
-
ان شاء الله
-
-
جرب هذا A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![ID_Sanf] & "' And [Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If
-
مطلوب طربقة تحديد و تقييد كتابة 9 ارقام فقط في حقل واحد
jjafferr replied to AbedElkader's topic in قسم الأكسيس Access
وعليكم السلام تستطيع استعمال هذه الطريقة ، من اعدادات الحقل في النموذج مباشرة ، بحيث يكون الشرط: >0 and <1000000000 . . . جعفر -
ابو ياسين انت تريد الكمية Alkmiah من الجدول Hrakatsanf بشرط رقم الفاتورة Rjmfatwra و رقم الصنف ID_Sanf يكونان الموجودان في النموذج الفرعي SubSales وهذا السجل هو السجل الموجود عليه التركيز هل هذا المطلوب؟
-
السلام عليكم ومثل ما اخبرتك: . في النموذج الفرعي sfrm_Room_No_Available ، السطر بين سطري j' هو الذي حل المشكلة: Private Sub cmd_Disposal_Click() Forms!frm_Rooms_Available.SetFocus If IsNull(Me.Patient_No) Or (Me.Patient_No) = "" Then MsgBox "There is no Patient", vbOKOnly, "" Me.Undo Cancel = True Exit Sub End If Me.Check = True Forms!frm_Rooms_Available!xxx = Me.Patient_No 'j Me.Dirty = False 'j DoCmd.OpenForm "frm_Discharge_Endorsement" DoCmd.OpenForm "frm_Rooms_Available", , , , , acHidden End Sub . جعفر
-
قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف وعليكم السلام أخي طاهر رجاء الإلتزام بقوانين المنتدى ، هذا الموضوع سوف يُغلق ، ويمكنك فتح موضوع آخر حسب قوانين المنتدى بالاضافة الى انه لاحظت انك تضع اسئلة في مواضيع قديمة ، فرجاء ، كذلك افتح لنفسك مواضيع جديده لها جعفر
- 1 reply
-
- 1
-
-
طيب في نموذج ، واسماء الحقول ، وكيف اصل الى المكان/الحدث؟
-
شكرا اخوي ابو خليل ، فمقتنياتك لا تُقدر بثمن جعفر
-
يجب عليك كسر الكود الى متغيرات اصغر ، حتى تستطيع فهم الكود لما تضعه مع بعض ، هكذا مثلا (معلومات المتغير B انا كتبتها من رأسي ، فيحتاج لها تعديل ، وتعديلها في if كذلك) : A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") B = DLookup("[Rjmfatwra]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _ And [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] > B Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If
-
في الاستعلام لا تستطيع استعمال if وانما تستطيع استعمال iff ادخل في تصميم الاستعلام ، ثم اضفها
-
وعليكم السلام اخوي ابو ياسين لا تعمل جملة SQL في الكود ، اعمل العكس ، اعمل الاستعلام اللي تريده ، ثم حوله الى SQL ، ثم اخذه الى الكود واعمل التعديل. ادخل الكود عن طريق Ctrl + G (ولا تدخله بطريقة اخرى) ، والذي سيعطيك شاشة الكود ، بالاضافة الى شاشة صغيرة في الاسفل ، والتي سنأخذ منها SQL لتجربيته في الاستعلام. ولما تأخذ SQL الاستعلام الى الكود ، فككه الى اسطر ، واربط كل سطر مع اللي قبله (لاحظ الكود التالي) ، واهم شيء تعمله هو ان تكتب جملة debug.print mySQL بعد نهاية عمل جملة الـ SQL وقبل ان تنفذ الامر docmd.runsql ، هذا الامر سوف يعطيك في اسفل شاشة الكود ، سيعطيك جملة الـ SQL بعد اضافة القيم فيها ، عندها تستطيع ان تنسخ هذه الجملة من اسفل شاشة الكود ، وتذهب الى الاستعلام وتلصقه هناك ، وتشغل الاستعلام ، واذا اعطاك خطأ ، فإصلح الاستعلام ، ثم اخذ SQL الى الكود للمقارنه ، وهكذا .... هذه طريقة كتابة الكود (مثلا) : mySQL = "UPDATE [Hrakatsanf]" mySQL = mySQL & " SET [Alkmiah]=[Alkmiah]-" & [Forms]![frm_Recall_sales]![SubSales]![Alkmiah] mySQL = mySQL & " WHERE Rajmsanf='" & [Forms]![frm_Recall_sales]![SubSales]![Rajmsanf] & "'" mySQL = mySQL & " And Rjmfatwra='" & [Forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra] & "'" Debug.Print mySQL DoCmd.RunSQL mySQL . جعفر
-
حفظ البيانات في النموذج تعملها مرة واحدة فقط ، ثم تعمل استعلامات قدر اللي تريد
-
وعليكم السلام اخوي بدر هناك 3 طرق لإضافة/تعديل البيانات: من النموذج مباشرة ، عن طريق ادخال/تعديل المعلومة من الجدول/الاستعلام مصدر بيانات النموذج ، عن طريق Recordset . الاكسس يراك في النموذج وبياناته ، ولكن لا يعرف من قام بتغيير البيانات عن طريق الاستعلام او Recordset ، فالاكسس لا يعرف يأخذ بيانات النموذج او البيانات المحدثه في الجدول ، فيعطيك الاختيار طريقة التغلب على هذه الرسالة هي ، ان تحفظ بيانات النموذج ، ثم تشغل الاستعلام او Recordset ، مثلا docmd.runcommand accmdsaverecord او me.dirty = false او me.requery او me.refresh ثم تعطي الامر للإستعلام docmd.openquery "aabbcc" او rst.addnew او rst.edit rst!A=123 rst.update جعفر
-
تفضل هذا الجدول بحقلين اضافيين . وهذا الكود (قد اكون قلبت قيمة Filled_Fields ، فلم افهم طلبك ، ايهم صفر وايهم 1 ) Private Sub cmd_No_Empty_Fields_Click() Dim Counter As Integer Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Counter = 0 'Fields For j = 0 To RF - 1 'Debug.Print rst(j).Name & vbTab & rst(j) If rst(j).Name <> "Auto_ID" And rst(j).Name <> "Auto_Date" And _ rst(j).Name <> "Number_of_Filled_Fields" And rst(j).Name <> "Filled_Fields" Then If Len(rst(j) & "") <> 0 Then Counter = Counter + 1 End If End If 'rst Next j rst.Edit rst!Number_of_Filled_Fields = Counter If Counter = 0 Then rst!Filled_Fields = 0 Else rst!Filled_Fields = 1 End If rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub جعفر 826.Records.mdb.zip
-
السلام عليكم ومشاركة مع اخي ابو آدم ، انظر الى طريقة عملي في هذا الرابط جعفر
-
السلام عليكم هذا ليس جوابا ، ولكن يعطيك الطريق لعمل المطلوب جعفر
-
السلام عليكم اعرض عليكم هنا طريقة قرءة السجلات Records عن طريق Recordset ، وقراءة اسماء الحقول Fields وقيمة كل حقل (للجداول والاستعلامات) . عندنا الجدول tbl_Letters ، فيه 3 سجلات ، وترقيمها يبدأ من الرقم 1 ، وعندنا 6 حقول ، وترقيمها يبدأ من الرقم صفر . هذا الكود به حدث لقراءة Fields وقيمة كل حقل ، وحدث لقراءة السجلات Records : Option Compare Database Option Explicit Dim rst As DAO.Recordset Dim i As Integer Dim RC As Integer Dim RF As Integer Dim j As Integer ' Private Sub cmd_Fields_Click() Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Debug.Print Debug.Print rst!A & vbTab & rst!B & vbTab & rst!C & vbTab & rst!D 'Fields For j = 0 To RF - 1 Debug.Print rst(j).Name & vbTab & rst(j) Next j rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub Private Sub cmd_Records_Click() Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC Debug.Print rst!A & vbTab & rst!B & vbTab & rst!C & vbTab & rst!D rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub . . نتيجة الزر الاول: a1 b1 c1 d1 a2 c2 d2 a3 b3 d3 . ونتيجة الزر الثاني (انا طلبت طباعة السجلات قبل طباعة اسم الحقل وقيمته) : a1 b1 c1 d1 Auto_ID 1 Auto_Date 26-Dec-17 2:33:22 PM A a1 B b1 C c1 D d1 a2 c2 d2 Auto_ID 2 Auto_Date 26-Dec-17 2:33:26 PM A a2 B C c2 D d2 a3 b3 d3 Auto_ID 3 Auto_Date 26-Dec-17 2:33:31 PM A a3 B b3 C D d3 جعفر 825.Records.mdb.zip