اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

طريقة اظهار بيانات سجل من جدول بناء على حقل من جدول اخر


إذهب إلى أفضل إجابة Solved by M.Abd Allah,

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

عندى فورم اسمه

urine_frm

مصدر بياناته جدول اسمه

urine_tbl

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

Fixed_tbl

فى حقول غير مرتبطه فى نفس الفورم

فمثلا 

عند الوقوف فى حقل

volume

المطلوب

TestnameN=Volume(Urine)

Reportname=Volume

default=Random sample

Normal=Random sample
    
    
    وهكذا لكل الحقول
    

انا حاولت 

=DLookUp("fixedname";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

=DLookUp("Reportname";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

=DLookUp("fixeddefault";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

=DLookUp("fixednormal";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

بس مش عارفه اظبط الكود

وهل فى ماكرو للفورم بكل حقوله بدلا من وضع الكود فى كل حقل

Screenshot_4.png

New Microsoft Access Database (2).accdb

Screenshot_5.png

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

  • أفضل إجابة

تم الغاء الداله حسب فهمي بما ان الحقول المفروض تاخد من الجدول الفاضي تم عمل سجل فالجدول الفاضي للتجربه عليه 

image.gif

safaa n.accdb

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

جزاك الله خيرا  هو دا المطلوب

بس اطمع بعمل ذلك باستخدام

 داله DLookUp

زى كدا

DLookUp("fixedname";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

DLookUp("Reportname";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

DLookUp("fixeddefault";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

DLookUp("fixednormal";"fixed_tbl";"[fixedname] = 'Volume(Urine)'")

 

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

مش فاهم يعني قصدك عايزه تكتبي فى حقل volume مثلا يظهر نفس النتائج دي فالحقول الغير منضمه  اللي بتطابق مع الجدول التاني ولا أنا فاهم غلط ؟

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

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

تم تعديل بواسطه M.Abd Allah
رابط هذا التعليق
شارك

37 minutes ago, M.Abd Allah said:

مش فاهم يعني قصدك عايزه تكتبي فى حقل volume مثلا يظهر نفس النتائج دي فالحقول الغير منضمه  اللي بتطابق مع الجدول التاني ولا أنا فاهم غلط ؟

الحقول كلها هيكون ليها قيمه 

default

هتيجى من الحقل

fixeddefault

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

هو ممكن يعمل تعديلات عادى 

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

فى مكان تانى خاص بالتعديل على القيم ال default 

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

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

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

الحقول كلها هيكون ليها قيمه 

default

هتيجى من الحقل

fixeddefault

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

هو ممكن يعمل تعديلات عادى 

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

فى مكان تانى خاص بالتعديل على القيم ال default 

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

انا اصلا مبقاش يعنيني موضوع تقييم الاجابات لاني فهمت الموضوع ببساطه 

كل مافي الموضوع اني أغلب الوقت بفهم بالمشقلب أو اوقات مبفهمش الموضوع صح 

عندي ثقه إن شاءالله مفيش اي مشكله ملهاش حل بس اكون فاهم كويس ايه المطلوب وجايز مش مشكله عندك 

اكيد المشكله عندي اني مش فاهم ايه المطلوب بالظبط 

تحياتي 

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

41 minutes ago, M.Abd Allah said:

انا اصلا مبقاش يعنيني موضوع تقييم الاجابات لاني فهمت الموضوع ببساطه 

كل مافي الموضوع اني أغلب الوقت بفهم بالمشقلب أو اوقات مبفهمش الموضوع صح 

عندي ثقه إن شاءالله مفيش اي مشكله ملهاش حل بس اكون فاهم كويس ايه المطلوب وجايز مش مشكله عندك 

اكيد المشكله عندي اني مش فاهم ايه المطلوب بالظبط 

تحياتي 

تمام تسلم لمجهودك واهتمامك وبجد اجابتك جميله وماشيه مع طلبى بالتمام بس انا  كان نفسى اتعلم اعملها بالداله دى  بس خلاص مش مهم

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

الان, safaa salem5 said:

تمام تسلم لمجهودك واهتمامك وبجد اجابتك جميله وماشيه مع طلبى بالتمام بس انا  كان نفسى اتعلم اعملها بالداله دى  بس خلاص مش مهم

والله انا مش متأخر بس انا فعلا أغلب الوقت مبفهمش بسهوله أو فعلا جايز مبعرفش اعبر 

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

و الباقي إن شاءالله بسيط

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

1 دقيقه مضت, safaa salem5 said:

هو ينفع تحويل الكود دا لماكرو لانى عندى حقول كتيره

وكمان فى فورم تانيه نفس الكلام

بسيطه إن شاءالله شوفي لو عايزه تعملي حاجه تانيه بالمره مفيش مشكله 🤓

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

16 minutes ago, M.Abd Allah said:

بسيطه إن شاءالله شوفي لو عايزه تعملي حاجه تانيه بالمره مفيش مشكله 🤓

بص حضرتك هى كل الفورم التانيه هتاخد

default 

بتاعها من

من نفس الجدولfixed_tbl

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

زى

URINE بول

STOOL براز

SEMEN سائل منوى

STOONE  حصوه

CSF سائل النخاع الشوكى

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

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

بص حضرتك هى كل الفورم التانيه هتاخد

default 

بتاعها من

من نفس الجدولfixed_tbl

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

زى

URINE بول

STOOL براز

SEMEN سائل منوى

STOONE  حصوه

CSF سائل النخاع الشوكى

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

واحد بيشتغل زي مهو بالاكواد 

والتاني بيشتغل بالماكرو 

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

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

 

safaa new.accdb

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

وحسب ما فهمت كده من اخر طلب 

إن كل الاعتماد فى أغلب النماذج علي جدول fixed_tbl اللي فيه كل انواع التحاليل 

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

وطبعا ينفع تعملي اكتر من كمبو بوكس وتستدعي تحاليل مختلفه وبرضو ينفع يتعمل اكتر من نتيجه تحاليل فى نفس النموذج والموديل هيكون ثابت فقط تغيري اسماء الحقول الجديده وتعملي موديل ( دا إن وجد اكتر من تحليل في نفس النموذج ) لو مكانش مش هيتم تغيير اي حاجه 

وفالمثال نموذجين مختلفين وبيعملوا نفس النتيجه مع نفس الموديول

safaa edit.accdb

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

8 hours ago, M.Abd Allah said:

وحسب ما فهمت كده من اخر طلب 

إن كل الاعتماد فى أغلب النماذج علي جدول fixed_tbl اللي فيه كل انواع التحاليل 

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

وطبعا ينفع تعملي اكتر من كمبو بوكس وتستدعي تحاليل مختلفه وبرضو ينفع يتعمل اكتر من نتيجه تحاليل فى نفس النموذج والموديل هيكون ثابت فقط تغيري اسماء الحقول الجديده وتعملي موديل ( دا إن وجد اكتر من تحليل في نفس النموذج ) لو مكانش مش هيتم تغيير اي حاجه 

وفالمثال نموذجين مختلفين وبيعملوا نفس النتيجه مع نفس الموديول

safaa edit.accdb 684 kB · 1 download

صباح الخير 

تسلم جزاك الله خيرا

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

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

2 ساعات مضت, safaa salem5 said:

صباح الخير 

تسلم جزاك الله خيرا

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

ينفع إن شاءالله مفيش حاجه فالغالب متنفعش فالاكسس الا حاجات نادره جدا

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

لو سمحت حضرتك يا استاذ @M.Abd Allah

عايزه اعمل تعديل يسيط فى الكود دا

 

 Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = rs!fixedname
        Me.default = rs!fixeddefault
        Me.Normal = rs!fixednormal
        Me.Reportname = rs!Reportname


   Else
      MsgBox "لا يوجد سجل & fieldName
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

عايزه 

Testname N

يساوى اسم الفيلد اللى انا واقفه فيه مع اسم SUB

يعنى مثلا لو انا واقفه فى فيلد اسمه Color

واسم SUB

URINE

يبقى

Testname N

يساوى

Color(URINE)

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

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

لو سمحت حضرتك يا استاذ @M.Abd Allah

عايزه اعمل تعديل يسيط فى الكود دا

 

 Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = rs!fixedname
        Me.default = rs!fixeddefault
        Me.Normal = rs!fixednormal
        Me.Reportname = rs!Reportname


   Else
      MsgBox "لا يوجد سجل & fieldName
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

عايزه 

Testname N

يساوى اسم الفيلد اللى انا واقفه فيه مع اسم SUB

يعنى مثلا لو انا واقفه فى فيلد اسمه Color

واسم SUB

URINE

يبقى

Testname N

يساوى

Color(URINE

مفيش اي مشكله 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = fieldName & "(" & subName & ")"
        Me.default = rs!fixeddefault
        Me.Normal = rs!fixednormal
        Me.Reportname = rs!Reportname
    Else
        MsgBox "لا يوجد سجل " & fieldName, vbExclamation
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

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

5 minutes ago, M.Abd Allah said:

مفيش اي مشكله 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = fieldName & "(" & subName & ")"
        Me.default = rs!fixeddefault
        Me.Normal = rs!fixednormal
        Me.Reportname = rs!Reportname
    Else
        MsgBox "لا يوجد سجل " & fieldName, vbExclamation
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

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

Screenshot_2.png

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

دا عشان هو لقى فراغات 

خليكي فالتعديل ده 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = fieldName & "(" & subName & ")"
        
        If Not IsNull(rs!fixeddefault) Then
            Me.default = rs!fixeddefault
        Else
            Me.default = ""
        End If
        
        If Not IsNull(rs!fixednormal) Then
            Me.Normal = rs!fixednormal
        Else
            Me.Normal = ""
        End If
        
        If Not IsNull(rs!Reportname) Then
            Me.Reportname = rs!Reportname
        Else
            Me.Reportname = ""
        End If
    Else
        MsgBox "لا يوجد سجل " & fieldName, vbExclamation
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

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

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

نقطه اخيره والله عارفه انى تقلت عليك

هو هنا لو ملقاش قيمه حقل من التلاته متسجله هيدينى رسالة لايوجد سجل

لا انا عايزاه يجيب القيم المتسجله واللى مش متسجل  عادى الحقل بتاعه يفضل فاضى

بدل مايدينى لا يوجد  سجل عايزاه يجيب قيمة اى حقل متسجل

 Else
        MsgBox "لا يوجد سجل " & fieldName, vbExclamation

 

انت ابن حلال والله تقريبا هود دا اللى انا كنت بشرحه لحضرتك

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

لا عادي مفيش مشكله 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = fieldName & "(" & subName & ")"
        
        If Not IsNull(rs!fixeddefault) Then
            Me.default = rs!fixeddefault
        Else
            Me.default = ""
        End If
        
        If Not IsNull(rs!fixednormal) Then
            Me.Normal = rs!fixednormal
        Else
            Me.Normal = ""
        End If
        
        If Not IsNull(rs!Reportname) Then
            Me.Reportname = rs!Reportname
        Else
            Me.Reportname = ""
        End If
    Else
        ' إذا لم يتم العثور على أي سجل، تعيين الحقول كقيمة فارغة
        Me.testnameN = fieldName & "(" & subName & ")"
        Me.default = ""
        Me.Normal = ""
        Me.Reportname = ""
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

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

فى حاجه بسيطه خالص لو مالقاش سجل

بنفس الشرط اللى فى الكود دا

 WHERE fixedname = '" & fieldName & "'"

فى الحاله دى

يعمل كدا

Me.testnameN = fieldName & "(" & subName & ")"

        Me.default = null
        Me.Normal = null
        Me.Reportname = null

ورساله تخرج لا يوجد قيم مسجله لهذا التحليل

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

بسيطه إن شاءالله 

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
    
    Set db = CurrentDb
    sql = "SELECT * FROM Fixed_tbl WHERE fixedname = '" & fieldName & "'"
    Set rs = db.OpenRecordset(sql)
    
    If Not rs.EOF Then
        rs.MoveFirst
        Me.testnameN = fieldName & "(" & subName & ")"
        
        If Not IsNull(rs!fixeddefault) Then
            Me.default = rs!fixeddefault
        Else
            Me.default = Null
        End If
        
        If Not IsNull(rs!fixednormal) Then
            Me.Normal = rs!fixednormal
        Else
            Me.Normal = Null
        End If
        
        If Not IsNull(rs!Reportname) Then
            Me.Reportname = rs!Reportname
        Else
            Me.Reportname = Null
        End If
    Else
        ' إذا لم يتم العثور على أي سجل، تعيين الحقول كـ Null
        Me.testnameN = fieldName & "(" & subName & ")"
        Me.default = Null
        Me.Normal = Null
        Me.Reportname = Null
        
        ' عرض رسالة تنبيه
        MsgBox "لا يوجد قيم مسجلة لهذا التحليل", vbExclamation
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

 

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information