بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
4372 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
183
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
إليك هذا التعديل اخي الكريم :- Private Sub C8_AfterUpdate() Me.s1 = Null Me.s2 = Null Me.s3 = Null Me.s4 = Null Select Case Me.C8.ListIndex Case 0 Me.s1 = "X" Case 1 Me.s2 = "X" Case 2 Me.s3 = "X" Case 3 Me.s4 = "X" End Select End Sub
-
حسناً.. سألقي نظرة على الملف حال وصولي للكمبيوتر 🤗
-
مطلوب تحديد محتوى كومبوبكس بناء على معلومات حقل بالنموذج
Foksh replied to أحمد العيسى's topic in قسم الأكسيس Access
ما شاء الله عليك ،، ابدعت بتحوير الفكرة للمطلوب الذي تريده . بهذا تستطيع اغلاق الموضوع باختيار أفضل إجابة 😇 . -
وعليكم السلام ورحمة الله وبركاته .. أولاً يجب تنبيهك الى ضرورة حذف المسافة الزائدة من الاختيار الرابع من الكومبوبوكس C8 الآن في حدث بعد التحديث ، استعمل الكود التالي :- Private Sub C8_AfterUpdate() Me.s1 = False Me.s2 = False Me.s3 = False Me.s4 = False Select Case Me.C8.Value Case "سكن اجتماعي" Me.s1 = True Case "سكن أقارب" Me.s2 = True Case "سكن مؤجر" Me.s3 = True Case "محل غير قابل للسكن (مستودع، فوضوي، قبو)" Me.s4 = True End Select End Sub حيث استخدمت الدالة Case بدلاً من الجمل الشرطية If وطبعاً يوجد حل آخر بعيد عن تحديد القيم النصية من الكومبوبوكس ( وخصوصاً أنها باللغة العربية ) ، بحيث نستخدم الـ Index أو فهرس الكومبوبوكس نفسه كالتالي :- Private Sub C8_AfterUpdate() Me.s1 = False Me.s2 = False Me.s3 = False Me.s4 = False Select Case Me.C8.ListIndex Case 0 Me.s1 = True Case 1 Me.s2 = True Case 2 Me.s3 = True Case 3 Me.s4 = True End Select End Sub وهذا أيضاً حل ثالث :- Private Sub C8_AfterUpdate() Me.s1 = (Me.C8.Value = "سكن اجتماعي") Me.s2 = (Me.C8.Value = "سكن أقارب") Me.s3 = (Me.C8.Value = "سكن مؤجر") Me.s4 = (Me.C8.Value = "محل غير قابل للسكن (مستودع، فوضوي، قبو)") End Sub IF.accdb
-
مطلوب تحديد محتوى كومبوبكس بناء على معلومات حقل بالنموذج
Foksh replied to أحمد العيسى's topic in قسم الأكسيس Access
وهذه فكرة كما أشرت لك بتغيير نوع مربع نص Gender إلى مربع تحرير وسرد حيث سيكون له الحدث بعد التحديث = Private Sub Gender_AfterUpdate() If Me.Gender.Value = "ذكر" Then Me.الديانه.RowSource = "مسلم;مسيحي" Me.الديانه.Value = "مسلم" Me.الحالة_الاجتماعية.RowSource = "متزوج;أعزب;مطلق;أرمل" Me.الحالة_الاجتماعية.Value = "متزوج" ElseIf Me.Gender.Value = "أنثى" Then Me.الديانه.RowSource = "مسلمة;مسيحية" Me.الديانه.Value = "مسلمة" Me.الحالة_الاجتماعية.RowSource = "متزوجة;آنسة;مطلقة;أرملة" Me.الحالة_الاجتماعية.Value = "متزوجة" End If End Sub بيانات المدرسين (1).mdb -
حاول التعديل بحيث يكون مربع النص المخصص للإدخال في النموذج الرئيسي بدلاً من الفرعي وإجراء تعديلاتك على هيكلة الكود بحيث يتعامل مع نموذج فرعي
-
حسناً الآن لتلافي عدم تمكنك من الدخول الى وضع التصميم ولا اعلم السبب ( إلا اذا كنت قد منعت مفتاح الـ Shift ) . عليك ما يلي :- 1. انشاء قاعدة بيانات جديدة فارغة . 2. استيراد جميع العناصر المكونة لمشروعك من قاعدة البيانات التي لم تستطع الدخول لها في وضع التصميم . 3. التأكد من جميع المكتبات التي كانت هناك في المصدرالتالف بإضافتها الى القاعدة الجديدة .
-
مطلوب تحديد محتوى كومبوبكس بناء على معلومات حقل بالنموذج
Foksh replied to أحمد العيسى's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته ,, اعتقد ان هناك نقطة تفصل بين المنطق والتطبيق .. المنطق ان يتم جعل مربع النص = مربع تحرير وسرد يحتوي قيمتين ( ذكر ، أنثى ) بحيث اذا كان ذكر يتم عرض القيم الذكورية في مربعي التحرير والسرد ( الحالة الاجتماعية و الديانه ) والعكس عندما تكون قيمة كومبوبوكس النوع = أنثى . التطبيق اذا كان هذا النموذج الموضح في الصورة هو فقط لإدخال البيانات فلا اعتقد انك تحتاج تعقيد في منطق التصميم لأن البيانات والقيم سيتم ادخالها بشكل يدوي من قبل الموظف ، صحيح ؟؟ -
أخي الكريم @hanan_ms ، أولا اسمح لي بأن يكون تعليقي أول تعليق في موضوعك هذا .. رغم أنيي أحاول جاهداً تفسير معظم الجمل التي تكون في مواضيعك ، إلا أنها ليست بشيء مقارنة مع كمية التداخل والمتاهات والدهاليز التي تعتمدها في تصاميم نماذجك ... دعني أبسط لك الأمر ، في أسلوب مسلسلات الكرتون والقنوات الفاضائية التي تخص الأطفال إن كانت غنائية أو كرتونية ، يكون هناك دراسة لعقل الطفل بحيث ان الطفل الطبيعي وللفت انتباهه الى التلفاز يتم انشاء نمط معين يحاكي العقل البشري ( بغض النظر عن العمر ) للفت الإنتباه له بأساليب تقنية علمية واضحة وبسيطة ( تخيل انها كلها في نهايتها كانت بسيطة ) والهدف شد انتباه الطفل لها . الرابط في كلامي واسلوبك في التصميم هو الفرق فيما بينهامن حيث التشتيت الكبير الذي تصنعه في تصاميمك ,, خذ كلامي برجابة صدر ولا تستاء من كلماتي . فوالله ما هي الا نصيحة أخوية ليست إلا وليس لي فيها غاية سوى أن أدلك على طريق التبسيط في التصميم لإيصال فكرتك بسلاسة وليس بسلاسل ( فرق كبير بينهما ) وشكراً لك على حسن استماعك وقراءتك إن كنت قد وصلت لهذه الجملة .
-
اذاً الأمر بسيط أخي الكريم .. أولاً ادخل الى التقرير في وضع التصميم ، وقم بتغيير الخط كخطوة أولى لضمان أن المشكلة ليست في آكسيس ثانياً اذا اشتغلت معك قاعدة البيانات بشكلها الطبيعي السابق ، تأكد أولاً من أخذ نسخة احتياطية منها ، ثم إزالة الخط الذي تم اضافته . قد يكون هناك مشكلة في بنية الخط وعدم توافقه مع واجهة معظم التطبيقات كما حصل معك . ثالثاً في حال عدم نجاح أي من هذه الخطوات ، قم بتجربة استخدام الخط مرة أخرى في التقرير ، من ثم ضغط وإصلاح قاعدة البيانات . كلها مجرد احتمالات ما دام الأمر يمنعك من رفع الخط و قاعدة البيانات . أيضاً كخطوة استفسارية .. هل الخط يتم تثبيته من خلال أكواد VBA أو ليس لهذا الموضوع اي وجود في مشروعك ؟؟
-
وعليكم السلام ورحمة الله وبركاته .. على ما أسلف به أستاي ومعلمي الأستاذ أبو خليل .. ما توضح لي هو أنك تريد تنظيم امتحانات لطلاب في مرحلتين :- الاختبار الشفوي : يقسم الطلاب لمجموعات في جلسات صباحية ومسائية . اختبار اللياقة : يجمع الطلاب من مجموعات شفوية مختلفة في جلسات أكبر . في المرحلة الأولى : كفكرة سنحاول التقسيم للاختبار الشفوي بحيث نأخذ كل صف دراسي على حدة ، ثم نقسم طلاب الصف لمجموعات ( كل مجموعة 20-25 طالب حسب حجم القاعة ) → على سبيل المثال طبعاً ؛ ثم نوزع المجموعات بين الفترتين الصباحية والمسائية . على سبيل المثال :- الصف الثالث ( 275 طالب ) → 12 مجموعة ( 6 صباحاً ، 6 مساءً ) أما في المرحلة الثانية = التوزيع لاختبار اللياقة ، سنأخذ المجموعات الشفوية الجاهزة وندمجها لتكوين مجموعات لياقة أكبر ( 70 صباحاً ، 60 مساءً ) . قد نأخذ جزء من مجموعة شفوية ونضيفها لمجموعة لياقة ، على سبيل المثال :- مجموعة شفوي 1 ( 22 طالب ) + مجموعة 2 ( 22 طالب ) + مجموعة 3 ( 22 طالب ) + ( 4 طلاب ) من مجموعة 4 = 70 طالب ( جلسة لياقة صباحية ) هذا ما توضح لي كفكرة من خلال سياق التوضيح الذي أوضحه أخونا @أحمد عمروف .
-
سؤال يطرح نفسه ,, هل البرنامج ما زال بصيغة Accdb ؟؟
-
لم افهم المطلوب بشكل واضح ... فسر من خلال مثال كي تتوضح الصورة والفكرة التي في ذهنك
-
وكتوضيح ومشاركة مع أستاذي @ابوخليل .. من المتعارف عليه في تعدد أعمدة الكومبوبوكس ( مربع التحرير والسرد ) أن الـ :- Column(0) تشير إلى العمود الأول و الـ Column(1) تشير الى العمود الثاني ,,,, وهكذا .
-
وعليكم السلام ورحمة الله وبركاته .. هناك عدة أسباب بعد النظر الى طريقة كتابة الكود .. أذكر منها :- عمليات التحديث المتكررة : الكود يقوم بـ Me.Refresh عدة مرات مما يجبر النموذج على إعادة رسم نفسه . الانتقال بين السجلات : استخدامك لـ DoCmd.GoToRecord و Me.Recordset.FindFirst يتسبب في إعادة تحميل البيانات . أيضاً إيقاف تحذيرات النظام : DoCmd.SetWarnings False/True المتكرر قد يؤثر على أداء النموذج . التحديث المستمر للعناصر : إعادة تعيين Me.txtsave إلى Null مرتين متتاليتين . جرب التعديل التالي للكود على جهازك .. Private Sub txtsave_AfterUpdate() On Error GoTo ErrorHandler DoCmd.SetWarnings False Application.Echo False Dim x1, x2, x3, barw, n, x Dim barcodeValue As String barcodeValue = Me.txtsave.Value x1 = Nz(DLookup("barcode", "tabl1", "[barcode]='" & barcodeValue & "'"), 0) x2 = Nz(DLookup("barcode", "tabl1", "[barcodeset]='" & barcodeValue & "'"), 0) x3 = Nz(DLookup("barcode", "tabl1", "[barcodecarton]='" & barcodeValue & "'"), 0) If x1 = 0 And x2 = 0 And x3 = 0 Then Me.txtsave = Null DoCmd.Beep Me.txtsave.SetFocus GoTo CleanUp End If barw = Nz(DLookup("barcode", "tabl1", "[barcode]='" & barcodeValue & "'"), 0) If barw > 0 Then If Nz(DCount("barcode", "tabl2", "[barcode]='" & barcodeValue & "'"), 0) > 0 Then Me.Recordset.FindFirst "barcode='" & barcodeValue & "'" Me.Qtyplas = Me.Qtyplas + 1 Else DoCmd.GoToRecord , , acNewRec n = DLookup("[barcode]&'|'&[INAME]&'|'&[sal_price]&'|'&[Qtyplas]", "tabl1", "[barcode]='" & barcodeValue & "'") x = Split(n, "|") Me.barcode = x(0) Me.INAME = x(1) Me.sal_price = x(2) Me.Qtyplas = x(3) End If End If Me.txtsave = Null Me.txtsave.SetFocus CleanUp: Application.Echo True DoCmd.SetWarnings True Exit Sub ErrorHandler: MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical Resume CleanUp End Sub هذه بعض التغييرات والأسباب التي رأيتها ، ما لم يكن هناك حلول أفضل أخرى
-
رغم أنني لا أشجعك بالإستمرار في النهج الذي تتبعه في مشاريعك ( التسميات العربية ) ، ولكن أنظر لهذه الفكرة البسيطة من خلال دالة تقوم بحساب رصيد الزبون السابقة من نفس الجدول بشرط اسم الزبون كالآتي :- Function SumByCustomer(CustomerName As Variant) As Currency Dim db As DAO.Database Dim rs As DAO.Recordset Dim SQL As String Dim Total As Currency If IsNull(CustomerName) Or Trim(CustomerName & "") = "" Then SumByCustomer = 0 Exit Function End If Set db = CurrentDb SQL = "SELECT Sum([المجموع بالدينار]) AS TotalSum " & _ "FROM [اطراف قائمة البيع] " & _ "WHERE [اسم الزبون3] = '" & Replace(CustomerName, "'", "''") & "'" Set rs = db.OpenRecordset(SQL) If Not rs.EOF Then Total = Nz(rs!TotalSum, 0) Else Total = 0 End If rs.Close Set rs = Nothing Set db = Nothing SumByCustomer = Total End Function وهذا مرفق بسيط للفكرة ، ففي نموذج "قائمة البيع" ستلاحظ مربعي نص ، الأخضر للذمم السابقة ، والأحمر لمجموع الذمم السابقة مع مجموع الفاتورة الحالي . فأن كان هذا طلبك أخبرني بذلك . Ahmed_J.zip
-
وعليكم السلام ورحمة الله وبركاته .. أخي العزيز @Ahmed_J ، الطرق والحلول ستعتمد اعتماد كلي على بناء استعلامات ( ومتأكد أنك تعلم ذلك ) ، وحتى تبني استعلامك لابد لأي شخص من معرفة أسماء الجداول والحقول ... إلخ . لذا فأرجو منك تكرماً بمساعدتنا بذلك . ومتأكد إننا سنجد الحل بمساعدتك 😇 .
-
وعليكم السلام ورحمة الله وبركاته ,, هل هذه النتيجة صحيحة من المطلوب ؟ جرب هذا الاستعلام :- SELECT tbaa.* FROM tbaa INNER JOIN (SELECT MIN(id) AS MinID FROM tbaa GROUP BY ll) AS UniqueRecords ON tbaa.id = UniqueRecords.MinID; طبعاً يوجد أكثر من فكرة للقيام بالوطلوب ، والسابق هي فكرة حيث أن الاستعلام سيجلب أول سجل (حسب أصغر ID) من كل مجموعة قيم ll ، سواء كانت مكررة أو لا . أما اذا كنت تريد حسب أكبر ID فقط نستبدل بدلاً من Mini = Max كالتالي :- SELECT tbaa.* FROM tbaa INNER JOIN (SELECT MAX(id) AS MaxID FROM tbaa GROUP BY ll) AS UniqueRecords ON tbaa.id = UniqueRecords.MaxID; وكفكرة أخرى على سبيل المثال :- بواسطة استعلام باستخدام DISTINCT ON :- SELECT tbaa.ll, FIRST(tbaa.id) AS first_id, FIRST(tbaa.rr) AS first_rr, FIRST(tbaa.fax) AS first_fax, FIRST(tbaa.mo) AS first_mo FROM tbaa GROUP BY tbaa.ll; وهناك فكرة تعتمد على استعلامين اثنين أحدهما مبني على الآخر ، ولكني لا اعتقد انك قد ترغب باستعلامين ما دام الأمر يمكن تنفيذه باستعلام واحد بأكثر من شكل .
- 1 reply
-
- 1
-
-
انظر هذه الفكرة في نموذج واحد ، والتطبيق سيكون نفس المبدأ على باقي النماذج الفرعية Personnel_affairs.zip
-
نعم تم الإتطلاع على الفكرة التي اقترحتها ، وكانت النتيجة كما أشرت =