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

عايزه افضل اقتراح لطريقة تصميم فورم كل حقوله يتم ملأها من خلال الاختيار من ليست بوكس


إذهب إلى أفضل إجابة Solved by kkhalifa1960,

الردود الموصى بها

لو عندى فورم مصدره جدول كل حقوله هيتم ملأها بالضغط دبل كليك فتخرج فورم عباره عن ليست بوكس للاختيار منها 

وهل ممكن يتعمل بموديول  توفيرا للوقت لوجود حقول كثيره بالفورم ولوجود فورم اخرى يتم ملأها بنفس الطريقه

علما بأن كل الفورم يتم ملأها من نفس الليست بوكس 

تم تعديل بواسطه safaa salem5
رابط هذا التعليق
شارك

  • safaa salem5 changed the title to عايزه افضل اقتراح لطريقة تصميم فورم كل حقوله يتم ملأها من خلال الاختيار من ليست بوكس

موضوع التصميم ده بيبقي علي حسب راحه المصمم ومبيفرقش حاجه فى عرض البيانات أو إدخالها كتير الاوفى بعض الحالات لما يكون فى مثلا قوائم ديناميكية أو اختلاف اسماء مسميات الحقول 

لكن حته الموديول دي بترجع لحسب طبيعه البيانات نفسها

اللي يقدر يحكم هو اللي شايف قاعده البيانات نفسها وطريقه تصميم كل نموذج وطبيعه البيانات اللي فالليست 

مجرد وجهه نظر 

رابط هذا التعليق
شارك

11 hours ago, kkhalifa1960 said:

تفضلي استاذة @safaa salem5 حسب مافهمت هذه تجربتي .ووافيني بالرد .:fff:

DDTest602.rarFetching info...

تمام كدا بس عايزه لما اختار قيمه من الليست بوكس تظهر فى الفيلد

رابط هذا التعليق
شارك

1 hour ago, الطيب عباس said:

النموذج يكون مصدر بيانات استعلام بحث بمجرد اختيار من مربع تحرير و سرد يتم تعبئة البيانات تلقائيا 

لا الموضوع مختلف شويه لأن الليست بوكس اللى هختار منها داخل فورم اخر

رابط هذا التعليق
شارك

20 دقائق مضت, safaa salem5 said:

لا الموضوع مختلف شويه لأن الليست بوكس اللى هختار منها داخل فورم اخر

مفيش اختلاف كبير بس دا هيتوقف ع حسب قاعده البيانات بتاعتك 

رابط هذا التعليق
شارك

Just now, M.Abd Allah said:

مفيش اختلاف كبير بس دا هيتوقف ع حسب قاعده البيانات بتاعتك 

بص هو زى الملف اللى الاستاذ خليفه صممه

بس عايزه لما اختار قيمه من الليست بوكس تظهر في الحقل 

رابط هذا التعليق
شارك

  • أفضل إجابة
6 ساعات مضت, safaa salem5 said:

تمام كدا بس عايزه لما اختار قيمه من الليست بوكس تظهر فى الفيلد

تفضلي استاذة @safaa salem5المرفق بعد التعديل . ووافيني بالرد .:fff:

DDTest602-1.rar

  • Like 1
رابط هذا التعليق
شارك

  • 2 weeks later...
On 6/26/2024 at 7:56 PM, kkhalifa1960 said:

تفضلي استاذة @safaa salem5المرفق بعد التعديل . ووافيني بالرد .:fff:

DDTest602-1.rar 56.33 kB · 24 downloads

طيب لو عندى اكتر من فورم عايزه عند الاختيار فى حقول  اى فورم فيهم  يفتح نفس الفورم اللى هختار منه القيم   

                                          دى اعملها ازاى

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله تعالى وبركاته

استاذى الجليل ومعلمى القدير الاستاذ @kkhalifa1960 :fff:

اسعد الله صباحكم

طيب ايه رايك اقول لحضرتك على فكرة بنت حلال وبسيطة قوى قوى وقمة فى السهولة

نمسح كل كل الاكواد وكل الوحدات النمطية من المرفق 

وننشئ وحدة نمطية جديدة مثلا باسم : basFillFields

ونضع بها الدوال الاتية

Option Compare Database
Option Explicit

Const ListBoxFormName As String = "frm_Specifications"

Public Function OpenListBoxForm(FormName As Form)
    DoCmd.OpenForm ListBoxFormName, , , , , acDialog, FormName.Name & ";" & FormName.ActiveControl.Name
End Function

Public Function UpdateFieldFromListBox(FormName As String, FieldName As String, SelectedValue As Variant)
    Forms(FormName).Controls(FieldName).Value = SelectedValue
End Function


بس كده وفى كل النماذج فقط يكون الكود
 

Option Compare Database
Option Explicit

Private Sub CmdClose_Click()
    DoCmd.Close
End Sub

اما بالنسبة لنموذج :frm_Specifications
سوف نستخدم الاكواد الاتية

Option Compare Database
Option Explicit

Dim Args() As String

Private Sub List0_DblClick(Cancel As Integer)
    Args = Split(Me.OpenArgs, ";")
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

Private Sub List0_Click()
    Args = Split(Me.OpenArgs, ";")
    frm1 = Args(0)
    Txt2 = Args(1)
    Me.Txt1 = Me.List0.Column(0)
End Sub

Private Sub cmdOK_Click()
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

وطبعا انا استخدمت الاكواد السابقة للحفاظ على التصميم والية العمل وفقا للمرفق تماما
ولكن يمكن فقط استخدام هذا الجزء فقط والاستغناء عن باقى الاكواد الاخرى

Option Compare Database
Option Explicit

Dim Args() As String

Private Sub List0_DblClick(Cancel As Integer)
    Args = Split(Me.OpenArgs, ";")
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

طيب الان نصل الى اهم واجمل جزء الاستدعاء

سوف اقوم باستخدام Expression Builder لاستدعاء الدالة بالشكل التالى 

=OpenListBoxForm([Form])

واخيرا المرفق 

 

 

DDTest602-3.accdb

  • Like 1
رابط هذا التعليق
شارك

استاذي ومعلمي @ابو جودي دائماً مبدع . جزاك الله عنا كل الخير .:fff:

سامحني عاوز أعطيك  حقك أكثر من ذلك لكن من أول يوليو أجريت 5 عمليات جراحية منهم 2 بالعين اليمني ......... :fff:

  • Sad 1
رابط هذا التعليق
شارك

3 ساعات مضت, kkhalifa1960 said:

@ابو جودي دائماً مبدع . جزاك الله عنا كل الخير .:fff:

بل جزاكم الله انتم وكل اساتذتنا العظماء عنا نحن طلاب العلم كل الخير بما تقدمونه لنا دائما نتعلم منكم فانتم الضياء والثريا

العفو منكم استاذى الجليل ومعلمى القدير انتم فى مقام الوالد اسأل الله تعالى له الرحمة هو وكل المسلمين  لكم فى القلب مكانتكم وفوق رؤسنا انتم تيجان العلم 

3 ساعات مضت, kkhalifa1960 said:

من أول يوليو أجريت 5 عمليات جراحية منهم 2 بالعين اليمني

يوضع الإنسان في اختبار من الله فيمتحن ليعرف مدى صبره وإيمانه على قضاء ربه فاصبر واحتسب 


إلهي أذهب البأس رب الناس اشف وأنت الشافي لا شفاء إلا شفاؤك شفاء لا يغادر سقما أذهب البأس رب الناس بيدك الشفاء لا كاشف له إلا أنت يارب العالمين

يا إلهي اسمك شفائنا وذكرك دوائنا وقربك رجائنا وحبك مؤنسنا ورحمتك طبيبتنا في الدنيا والآخرة وإنك أنت المعطي العليم الحكيم يا مفرج الكرب يا مجيب دعوة المضطرين اللهم ألبس كل مريض ثوب الصحة والعافية عاجلا غير آجل يا أرحم الراحمين اللهم اشف وأنت الشافي اللهم آمين آمين آمين

  • Like 2
رابط هذا التعليق
شارك

On 7/11/2024 at 5:59 PM, kkhalifa1960 said:

استاذي ومعلمي @ابو جودي دائماً مبدع . جزاك الله عنا كل الخير .:fff:

سامحني عاوز أعطيك  حقك أكثر من ذلك لكن من أول يوليو أجريت 5 عمليات جراحية منهم 2 بالعين اليمني ......... :fff:

الف مليون سلامه عليك

  • Like 1
رابط هذا التعليق
شارك

On 7/11/2024 at 10:54 AM, ابو جودي said:

السلام عليكم ورحمة الله تعالى وبركاته

استاذى الجليل ومعلمى القدير الاستاذ @kkhalifa1960 :fff:

اسعد الله صباحكم

طيب ايه رايك اقول لحضرتك على فكرة بنت حلال وبسيطة قوى قوى وقمة فى السهولة

نمسح كل كل الاكواد وكل الوحدات النمطية من المرفق 

وننشئ وحدة نمطية جديدة مثلا باسم : basFillFields

ونضع بها الدوال الاتية

Option Compare Database
Option Explicit

Const ListBoxFormName As String = "frm_Specifications"

Public Function OpenListBoxForm(FormName As Form)
    DoCmd.OpenForm ListBoxFormName, , , , , acDialog, FormName.Name & ";" & FormName.ActiveControl.Name
End Function

Public Function UpdateFieldFromListBox(FormName As String, FieldName As String, SelectedValue As Variant)
    Forms(FormName).Controls(FieldName).Value = SelectedValue
End Function


بس كده وفى كل النماذج فقط يكون الكود
 

Option Compare Database
Option Explicit

Private Sub CmdClose_Click()
    DoCmd.Close
End Sub

اما بالنسبة لنموذج :frm_Specifications
سوف نستخدم الاكواد الاتية

Option Compare Database
Option Explicit

Dim Args() As String

Private Sub List0_DblClick(Cancel As Integer)
    Args = Split(Me.OpenArgs, ";")
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

Private Sub List0_Click()
    Args = Split(Me.OpenArgs, ";")
    frm1 = Args(0)
    Txt2 = Args(1)
    Me.Txt1 = Me.List0.Column(0)
End Sub

Private Sub cmdOK_Click()
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

وطبعا انا استخدمت الاكواد السابقة للحفاظ على التصميم والية العمل وفقا للمرفق تماما
ولكن يمكن فقط استخدام هذا الجزء فقط والاستغناء عن باقى الاكواد الاخرى

Option Compare Database
Option Explicit

Dim Args() As String

Private Sub List0_DblClick(Cancel As Integer)
    Args = Split(Me.OpenArgs, ";")
    Call UpdateFieldFromListBox(Args(0), Args(1), Me.List0.Value)
    DoCmd.Close acForm, Me.Name
End Sub

طيب الان نصل الى اهم واجمل جزء الاستدعاء

سوف اقوم باستخدام Expression Builder لاستدعاء الدالة بالشكل التالى 

=OpenListBoxForm([Form])

واخيرا المرفق 

 

 

DDTest602-3.accdb 812 kB · 17 downloads

انا مش عارفه اطبق عالملف بتاعى عشان الطريقه عندى مختلفه شويه ممكن تعديل الملف لو تكرمت جزاك الله خيرا

 

New Microsoft Access Database (2).accdb

تم تعديل بواسطه safaa salem5
رابط هذا التعليق
شارك

3 hours ago, safaa salem5 said:

انا مش عارفه اطبق عالملف بتاعى عشان الطريقه عندى مختلفه شويه ممكن تعديل الملف لو تكرمت جزاك الله خيرا

 

@ابو جوديNew Microsoft Access Database (2).accdb 1 MB · 4 downloads

 

رابط هذا التعليق
شارك

 

حبيبتي صفاء ادور معاج ❤️🌹

اشلون نسختدم مثل هذا الكود في ListBox

Dim db As DAO.Database
    Dim tbl As DAO.TableDef
    Dim i As Integer

Dim tbname As String

tbname = 'Name Or DlookUP
    lstSelectableFields.RowSource = ""
    Set db = CurrentDb
    Set tbl = db.TableDefs(tbname )


    For i = 0 To tbl.Fields.Count - 1
        If lstSelectableFields.RowSource <> "" Then lstSelectableFields.RowSource = lstSelectableFields.RowSource & ";"
        lstSelectableFields.RowSource = lstSelectableFields.RowSource & tbl.Fields(i).Name
    Next i

 

رابط هذا التعليق
شارك

في 13‏/7‏/2024 at 08:24, hanan_ms said:

 

حبيبتي صفاء ادور معاج ❤️🌹

اشلون نسختدم مثل هذا الكود في ListBox

Dim db As DAO.Database
    Dim tbl As DAO.TableDef
    Dim i As Integer

Dim tbname As String

tbname = 'Name Or DlookUP
    lstSelectableFields.RowSource = ""
    Set db = CurrentDb
    Set tbl = db.TableDefs(tbname )


    For i = 0 To tbl.Fields.Count - 1
        If lstSelectableFields.RowSource <> "" Then lstSelectableFields.RowSource = lstSelectableFields.RowSource & ";"
        lstSelectableFields.RowSource = lstSelectableFields.RowSource & tbl.Fields(i).Name
    Next i

 

 شكرا ياحنان جدا   ممكن تطبقى على الملف عشان مش عارفه

 

؟؟

 

ياريت حد يساعدنى فى النقطه دى عشان مش عرفه انفزها عالملف عندى 😢

 

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

 

 

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟                                                                                  

 

@ابو جودي

رابط هذا التعليق
شارك

وهذي مشاركتي وفكرتي الصغيورة مع الإخوة 🙂🌷

قائمة منسدلة واحدة لجميع الحقول ..

وجمعت الكود كله في موديول واحد ..

طريقة التطبيق سهلة جدا ..
1- نسخ القائمة المنسدلة في النموذج المطلوب مع الأوامر اللي في حدث بعد التحديث ،،
2- تحديد جميع الحقول المستهدفة وكتابة الدالة الموضحة في حدث عند النقر المزدوج ..


 

image.thumb.gif.efab1e994e23d76c1f79e689fdab3c68.gif

الدالة الخاصة بجميع الحقول :

image.png.f0fb0894388260c3dc934432b06be4d6.png

الدالة الخاصة بالقائمة المنسدلة المتخبية على الزاوية : 😁

image.png.99e5611520b2d53ec8f91457a988e937.png

الأكواد اللي في الموديول :

image.png.d5a91680b7d7813132efa195c05aae98.png

المرفق : Drop List For Many Fields (Moosak).accdb

  • Like 1
رابط هذا التعليق
شارك

1 hour ago, Moosak said:

الأكواد اللي في الموديول :

طريقة مميزه استاذ @Moosak ❤️🌹

جاري التجربة 

=======================================

ولكن خلاف طلب صفاء 

على سبيل المثال صرف دواء 

قاعدة بيانات متصلة لها اكثر من جدول 

1- الكميات 

2- التسعير 

3-الدواء (مواد طبية)

4- تشعيب الادوية 

=====================

نفترض عمل الفورم الازامي $

من جدول المريض 

وجدول فرعي الادوية 

عند فتح فورم المريض 

ادخل الرقم القومي او المدني 

تظهر بيانات المرض 

في الاسفل صرف حقل فارغ 

حدث عند النقر المزدوج 

نافذه المطلوبة والمطلوب من طالب السؤال

=============================

تكون متصل بقاعدة البيانات للادوية والكميات وانواعها جم جدول

يكون الفاكشن Function 

الدالة

بفحص حقول الجدول اما Dcount 

او شبيه الدالة

On 7/13/2024 at 7:24 AM, hanan_ms said:

Dim db As DAO.Database
    Dim tbl As DAO.TableDef
    Dim i As Integer

Dim tbname As String

tbname = 'Name Or DlookUP
    lstSelectableFields.RowSource = ""
    Set db = CurrentDb
    Set tbl = db.TableDefs(tbname )


    For i = 0 To tbl.Fields.Count - 1
        If lstSelectableFields.RowSource <> "" Then lstSelectableFields.RowSource = lstSelectableFields.RowSource & ";"
        lstSelectableFields.RowSource = lstSelectableFields.RowSource & tbl.Fields(i).Name
    Next i

 عرض الكمية المتوفره  فقط 

وحقل بحث وفلتر 

عند بحث يفحص ثم يحلل

اذا كان حقل نعم لا يسمح للصرف بتطابق حقل فروم مخزن قبل الاتصال

Dim User As Blooon 😇

عند الضغط ترحيل الى حقل غير منضم او الحفظ بدالة او جدول 

الغاء الاتصال والاتصال بقاعدة المرضى عند الانتهاء من الصرف واختيار كافة الادوية المطلوبة 

 =0 الكمية غير متوفر او الدواء غير متوفر

==================================================

المطلوب قاعدة بيانات (3)

1- للادوية BE

2- للمرضى BE

3-قاعدة البرنامج ممكن تسميها FE

==========================================

كما موضح في الفورم صفاء 

حقل واحد يكفي 

وفورم بحث الدواء 

ودالة الفحص والتوزيع للجداول للحقول الى قاعدة المرضى 

============================

ActiveX ListBox Form v2 And V6

( وبعض يقول فواصل النظام اظن لشي ثاني 😇)ايسط يفضل التصميم على فورم سجل من غير فواصل 

(غير مسطر) يعني الحقول لون ابيض والحدود شفافة والخلفية لون ابيض 

وفورم يضم الفورم لبعض الهندسة 😇

==============================

يمكن فهمي غلط واظن لاختصار الطلب

واسفة يا صفاء اذا كان فهمي غلط @safaa salem5😘😘🌹

رابط هذا التعليق
شارك

شكرا @Moosak

شكرا  @hanan_ms

لكن دا مش طلبى انا عندى فورم به كل الاختيارات الخاصة بتقارير التحاليل. هيتم فلترتها بناء على اسم الحقل ولغاية كدا انا عملت

المفروض لما اختار قيمه من الليست بوكس تظهر في الحقل الاساسى 

ودا اللى ناقصنى مش عارفه اعمله

رابط هذا التعليق
شارك

منذ ساعه, safaa salem5 said:

هل من مجيب؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

ان شاء الله نعم انا مجيب 

اعتذر على التأخير انا على سفر 

هناك طريقة ثانية لاختصار واختزال كل اوامر الـتركيز  >>--->>   GotFocus()
بس لما حضرتك تاكدى على الاول ان هى دى النتيحة اللى انتى عاوزاها صح يا افندم 

الطريقة الاولى.accdb

  • Like 1
رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information