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

اخفاء واظهار الازرار


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

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

السادة الخبراء الافاضل  عندى طلب مش عارف ان كان ممكن يتم تنفيذة ام لا لكنى اثق فى خبراتكم        

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

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

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

Dental.accdb

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

33 دقائق مضت, jo_2010 said:

المشكلة عند الانتقال الى سجل جديد يظهر بة التعديل الذى تم عملة على السجل السابق

هذا بسبب ان الحقل غير مضمن (اي غير مرتبط بحقل في جدول/استعلام) ، في نموذج مستمر 🙂

 

جعفر

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

استاذى الفاضل جعفر

شكرا على الرد لكن ماذا افعل ممكن استسمحك تعدل على القاعدة حتى اصل لحل المشكلة ارجوك لانى لوكنت اعرف ماكنت سالت

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

4 ساعات مضت, jo_2010 said:

ثانيا عند خلع الضرس 1. يكتب رقم الضرس فى مربع النص 2. يظهر زر يغطى الضرس المخلوع

رجاء تشرح هذه وبالتفصيل ، وبمثال ، وبأسماء الحقول 🙂

 

جعفر

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

السلام عليكم

لقد اخذت مثال واحد فقط عن  السن رقم 18 

اول شيء نكتب الاسم ثم نختار السن ثم نكتب رقم السن ثم التسجيل وننتقل للسجل التالي 

هذا الذي فهمتهه منك

اتمنى يكون المطلوب

تحياتي

 

test.rar

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

استاذى الفاضل خالد سيسكو

عند الانتقال لسجل جديد يظهر معى التعديل الذى اجريتة على السجل السابق اريد ان يكون كل سجل مستقل بذاتة فى سجل جديد يظهر الفك خالى من اى اشارات وانا اقوم بعمل اى تعديل على الفك 

وعند سجل جديد يظهر الفك خالى من اى اشارات مرة اخرى

عند كتابة اى رقم فى مربع النص يظهر لون لااخفاء السن او الضرس كانة تم خلعة هذا مااريد  ولك خالص الشكر

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

سيدي الفاضل 🙂

 

1. تم حذف جميع هذه الكائنات :

image.png.2aa5db01a3286273cd306773dd727c87.png

.

2. تم حذف النموذج Tooth ،

3. تم اخذ الصور وبقية الكائنات كجزء من النموذج الرئيسي All_P ،

4. هذه الكائنات اصبحت غير مرتبطة بجدول :

image.png.491ec2adcf4d0e3961f415af5e998c26.png

.

5. عند النقر المزدوج ، جميع هذه الكائنات تنادي الوحدة النمطية f_Remove_a_Tooth :

image.png.3530e93648badb08e028fb79601586e5.png

.

6. هناك جدول فرعي جديد stbl_All_P ، يرتبط بالجدول All_P ، عن طريق الحقل PCode ، وفيه الحقول التالية : dDate ، Tooth_Number ، Remarks ،

7. هناك نموذج فرعي sfrm_All_P (نموذج مستمر) والذي يأخذ بياناته من الجدول stbl_All_P ، وعمل هذا الجدول تسجيل الضرس/الاضراس التي يتم قلعها ، بالوقت والملاحظات ، بحيث يبقى هذا كتاريخ لجميع الاضرس التي قلعها الدكتور ،

8. عند النقر مرة على الضرس ، يتم تحويل لونه الى اللون الازرق ، وعند النقر مرتين على الضرس ، فالوحدة النمطية f_Remove_a_Tooth تقوم بعمل التالي :

  أ. عمل سجل جديد ، ويكتب في السجل رقم الضرس ، والوقت ، ويقف التركيز على حقل الملاحظات ،

 ب. اخفاء الضرس من الصورة ،

9. يمكن اضافة اي عدد من الاضراس في النموذج الفرعي ،

10. في حدث الحالي للنموذج الرئيسي ، فأنه بقراءة الاضراس المقلوعة من النموذج الفرعي ، ويقوم بإخفاء هذه الضروس من الصورة ،

Private Sub Form_Current()
On Error GoTo err_Form_Current

    Dim rst As DAO.Recordset
    Dim i As Integer
    
    Set rst = Me.sfrm_All_P.Form.RecordsetClone
    rst.MoveLast: rst.MoveFirst: RC = rst.RecordCount
    
    For i = 1 To RC
        Me("A_" & rst!Tooth_Number).Visible = False
        rst.MoveNext
    Next i
    
    
Exit_Form_Current:

    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

والنتيجة:

image.png.a819fea5c70ac612eb869ded325b3e2b.png

.

11. تم العمل على الصورة التي على اليمين ، ويجب ان تعمل نفس الشيء للصورة على اليسار ،

12. الوحدة النمطية f_Remove_a_Tooth :

Public Function f_Remove_a_Tooth()

    Dim frm As String
    Dim fld As String
    
    frm = Screen.ActiveForm.Name
    fld = Screen.ActiveControl.Name
    
    'add a new Record, and add the Tooth number in to
    Forms!All_P.SetFocus
    Forms!All_P!sfrm_All_P.SetFocus
    DoCmd.GoToRecord , , acNewRec
    
    Forms!All_P!sfrm_All_P!DDate = Now()
    Forms!All_P!sfrm_All_P!Tooth_Number = Replace(fld, "A_", "")
    Forms!All_P!sfrm_All_P!Remarks.SetFocus
    
    'now hide the tooth
    Forms(frm)(fld).Visible = False
    
End Function

.

جعفر

 

1188.Dental.accdb.zip

تم تعديل بواسطه jjafferr
تعديل خطأ
  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

الخبير الفاضل jjafferr

ماقمت بعملة عمل اكثر من رائع ولكن تظل المشكلة قائمة من خلال

الصور ة الاولى نجد المريض محمد خلع السن رقم 24 وسوف يقوم بمعالجة الضرس 25

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

احيط سيادتكم علما بانى اعمل على اوفيس 2010 ولك جزيل الشكر

Untitled.png

Untitled21.jpg

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

تفضل 🙂

 

تم تعديل النموذج والكود ليشمل جميع كائنات  A و P ،

التعديلات في مشاركتي السابقة على الحقول A ، تم تنفيذها على الحقول P ،

كود الحالي اصبح :

Private Sub Form_Current()
On Error GoTo err_Form_Current

    Dim rst As DAO.Recordset
    Dim i As Integer

    
    
    'un Select the Selected option buttons
    For i = 11 To 48
        Me("A_" & i) = 0
        Me("A_" & i).Visible = True
    Next i
    
    For i = 51 To 85
        Me("P_" & i) = 0
        Me("P_" & i).Visible = True
    Next i
    
    
    
    
    'Hide the Removed teeth
    Set rst = Me.sfrm_All_P.Form.RecordsetClone
    rst.MoveLast: rst.MoveFirst: RC = rst.RecordCount
    
    For i = 1 To RC
    
        Select Case rst!Tooth_Number
            Case 11 To 48
                Me("A_" & rst!Tooth_Number).Visible = False
                
            Case 51 To 85
                Me("P_" & rst!Tooth_Number).Visible = False
        End Select
        
        rst.MoveNext
    Next i
    
    
Exit_Form_Current:

    Exit Sub
err_Form_Current:

    If Err.Number = 3021 Then
        'when there is NO Record
        Resume Exit_Form_Current
        
    ElseIf Err.Number = 2465 Then
        'the numbers are 11 to 28, then 38 to 48
        'so instead of doing another loop, we'll ignor the error
        Resume Next
    
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

.

والوحدة النمطية اصبحت :

Public Function f_Remove_a_Tooth()

    Dim frm As String
    Dim fld As String
    
    frm = Screen.ActiveForm.Name
    fld = Screen.ActiveControl.Name
    
    'add a new Record, and add the Tooth number in to
    Forms!All_P.SetFocus
    Forms!All_P!sfrm_All_P.SetFocus
    DoCmd.GoToRecord , , acNewRec
    
    Forms!All_P!sfrm_All_P!DDate = Now()
    Forms!All_P!sfrm_All_P!Tooth_Number = Replace(Replace(fld, "A_", ""), "P_", "")
    Forms!All_P!sfrm_All_P!Remarks.SetFocus
    
    'now hide the tooth
    Forms(frm)(fld).Visible = False
    
End Function

 

جعفر

 

1188.Dental.accdb.zip

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

السلام عليكم

بعد اذن استاذنا العزيز @jjafferr

انا امس عملت لك تجربه على سن واحد (18) فقط  لكنك لم تستخدم الزر next (الذي فيه الكود) انت استخدمت الزر new record (لايوجد فيه كود)

المهم وبنقس الطريقة السابقة على كل الاسنان من 11-48

اتمنى يكون المطلوب حسب مافهمت من طلبك

اعلمنا النتائج

تحياتي

 

test-2.rar

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

استاذى ومعلمى الجليل الخبير الفاضل jjafferr

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

مشكلتى مثلا المريض احمد على

حشو عصب  فى الضرس 28

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

كل مااريدة الذى احدد ة بالازرق يظل محدد  بالازرق حسب كود المريض

مريض محمود محدد ضرس 22

مريض خالد محدد الضرس 45

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

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

هممم

في هذه الحالة ، خلينا نجمع جميع العمليات مع بعض ، الحشو ، التنظيف ، الخلع ، ....

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

وعلى حسب الاختيار (رقم الضرس ونوع العمل على الضرس) نخفي الضرس ، او نجعل لونه ازرق ، تبدأ من آخر سجل وتنتهي بأول سجل 🙂

 

مخمخها في دماغك ، بحيث يكون عندك في النموذج الفرعي سجل كامل بأسنان الزبون ،

وطبعا لاحقا في المستقبل ، اكيد ستزيد حقول النموذج الفرعي ، حتى تتأقلم وطلبات الدكتور 😁

 

جعفر

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

استاذى الفاضل  jjafferr

بعدالتحية وخالص الشكر على الرد وسعة صدرك واحتمالك لجهلى بالمقارن بخبرتك 

عندما ارفقت القاعدة فى المرة الاولى كنت رابط الاسنان بجدول  teeth وعندالضغط على الضرس يظهر امام رقم الضرس فى الجدول -1 وبالتالى يظل محدد فى النموذج الا توجد طريقة نضم طريقة حضرتك الرائعة فى خلع الاسنان وطريقتى المتواضعة فى تحديد الضروس وبكدة اكون قد حصلت علة ضالتى المنشودة خالص الشكر والتقدير 

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

استاذى الخبير  جعفر

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

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

YOUSSEF_2020.accdb

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

تفضل اخي jo 🙂

 

بدلا عن
    For i = 1 To RC
    
        Select Case rst!Tooth_Number
            Case 11 To 48
                Me("A_" & rst!Tooth_Number).Visible = False
                
            Case 51 To 85
                Me("P_" & rst!Tooth_Number).Visible = False
        End Select
        
        rst.MoveNext
    Next i
    



استعمل
    For i = 1 To RC
    
        Select Case rst!Tooth_Number
            Case 11 To 48
                Me("A_" & rst!Tooth_Number).Visible = False
                Me("s" & rst!Tooth_Number).Visible = False
                
            Case 51 To 85
                Me("P_" & rst!Tooth_Number).Visible = False
                Me("s" & rst!Tooth_Number).Visible = False
        End Select
        
        rst.MoveNext
    Next i

.

جعفر

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

ولكني اريد ان ارجع الى مقترحي السابق :

في ١٨‏/٣‏/٢٠٢٠ at 13:56, jjafferr said:

في هذه الحالة ، خلينا نجمع جميع العمليات مع بعض ، الحشو ، التنظيف ، الخلع ، ....

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

وعلى حسب الاختيار (رقم الضرس ونوع العمل على الضرس) نخفي الضرس ، او نجعل لونه ازرق ، تبدأ من آخر سجل وتنتهي بأول سجل 🙂

 

مخمخها في دماغك ، بحيث يكون عندك في النموذج الفرعي سجل كامل بأسنان الزبون ،

وطبعا لاحقا في المستقبل ، اكيد ستزيد حقول النموذج الفرعي ، حتى تتأقلم وطلبات الدكتور 😁

 

واليك التفاصيل من واقع تجربتي مع اطباء الاسنان ، وكلامنا عند النقر المزدوج على الضرس ، وبها يتم ادراج سجل جديد في النموذج الفرعي :

1. سيكون لديك سجل عن رقم الضرس التي تم قلعها ، ومتى وملاحظات الدكتور ،

2. بالنسبة الى حشو الضرس (والذي هو محل نقاشنا) ، ومن تجربتي ، وبعد 5 الى 10 سنوات ، يأتي الشخص الى الدكتور وفيه وجع ، ويقوم الدكتور بالفحص ويسأل :

  • اي ضرس تم العمل عليه سابقا ،
  • متى تم العمل عليه ،
  • ماهي الخطوات التي قام الدكتور بعملها (هل اكمل العمل في جلسة واحدة لسبب معين ، او اكثر من جلسة ، وماذا عمل في كل جلسة) ،
  • من الدكتور الذي قام بالعمل ، وهل هناك ملاحظات خاصة تركها الدكتور لهذا الضرس ،
  • هل تم ازالة العصب ،
  • هل تم عمل حشو مؤقت من نوع معين ، على ان يرجع الشخص بعد وقت معين لجلسة اخرى لعمل حشو من نوع آخر ،
  • متى تم تنضيف الاسنان .

هذه بعض الملاحظات اللي تجي على بالي ، وبرنامجك لا يقوم بها ،

بينما اذا عملت البرنامج مثل اقتراحي ، فيمكنك اضافة جميع هذه الملاحظات في النموذج الفرعي (وهو جاهز بنسبة 70-80%) ، وحذف الـ 54 كائن من Option Group والتي تزيد من ثقل النموذج !!

مجرد إضافة حقل "نوع العمل" كومبوبكس ، واسم الدكتور ، والسلام 🙂

طبعا الكود سيقوم بإظهار وإخفار الضروس ، حسب "نوع العمل" 🙂
ومثل ما قلت لك سابقا :

في ١٨‏/٣‏/٢٠٢٠ at 13:56, jjafferr said:

مخمخها في دماغك ، بحيث يكون عندك في النموذج الفرعي سجل كامل بأسنان الزبون ،

وطبعا لاحقا في المستقبل ، اكيد ستزيد حقول النموذج الفرعي ، حتى تتأقلم وطلبات الدكتور 😁

.

جعفر

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

الخبير الفاضل والاستاذ الجليل jjafferr

مافعلتة فاق ماكنت احلم بة خالص الشكر لحضرتك فعلا لقب خبير اقل بكثير مما تستحقة

يعجز لسانى عن تقديم خالص الشكر لحضرتك 

سؤال جانبى ممكن تعطينى الخيط اللى اتبعة اذا اردت زيادة Service_Type (حشو وخلع وتركيب)واضافة تنظيف مثلا مع القائمة لكى تصبح الدائرة خضراء بدل حمراء هل هذا صعب على ان انفذة ام يحتاج خبير بحجم حضرتك

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

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

  • أفضل إجابة

حياك الله 🙂

 

نعم تقدر تضيف اي عدد تريد ، وهذا الكود المسؤول عن الاخفاء (للخلع) ، او كأنك نقرت عليه ويتحول لونه للأزرق (للحشو) ، او عليه الدائة الحمراء (للتركيب) ،

وتم اضافة حلقة خضراء للتنظيف في نهاية الكود :

        'mark the tooth
        If rst!Service_Type = "خلع" Then        'خلع
            
            Me(iTooth & rst!Tooth_Number).Visible = False
            Me(iTooth & rst!Tooth_Number).BorderStyle = 0 'transparent
            
        ElseIf rst!Service_Type = "حشو" Then    'حشو
            
            Me(iTooth & rst!Tooth_Number) = -1
            Me(iTooth & rst!Tooth_Number).BorderStyle = 0 'transparent
                
        ElseIf rst!Service_Type = "تركيب" Then  'تركيب

            Me(iTooth & rst!Tooth_Number).Visible = True
            Me(iTooth & rst!Tooth_Number).BorderStyle = 1 'solid
            Me(iTooth & rst!Tooth_Number).BorderWidth = 2
            Me(iTooth & rst!Tooth_Number).BorderColor = RGB(255, 0, 0)
                    
        ElseIf rst!Service_Type = "تنظيف" Then  'تنظيف

            Me(iTooth & rst!Tooth_Number).Visible = True
            Me(iTooth & rst!Tooth_Number).BorderStyle = 1 'solid
            Me(iTooth & rst!Tooth_Number).BorderWidth = 2
            Me(iTooth & rst!Tooth_Number).BorderColor = RGB(0, 255, 0)
                      
        End If

.

وبالنسبة لـ Service_Type ، فالافضل ان يكون له جدول مستقل ، بحيث تقدر وبدون برمجة ، ان تضيف اي نوع تريد 🙂

.

وبسبب ان حقل الملاحظات صغير ، فلما تنقر عليه مرتين ، سترى نافذة اكبر تظهر (ZoomBox والتي تستطيع اظهارها بالضغط على F2) ، وتقدر ان تكتب فيها الملاحظة او مجرد ان تراها بالكامل 🙂

image.png.15f44d735e10875a7d815ab4d6ebce37.png

 

جعفر

1188.2.YOUSSEF_2020.accdb.zip

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

نقبل الايادي معلمى الجليل jjafferr شكرا كثر خيرك 

بارك الله فيك ولك 

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

 

تم تعديل بواسطه jo_2010
  • Like 1
رابط هذا التعليق
شارك

2 ساعات مضت, jo_2010 said:

بارك الله فيك ولك 

قمت باضافة جديدة ولونتها بالازرق وانا فى غاية السرور

حياك الله 🙂

 

هناك ملاحظات يجب ان تقوم بها :

1. حذف الجدول ، والحقول في النماذج التابعة له :

في ٢١‏/٣‏/٢٠٢٠ at 12:35, jo_2010 said:

وضعت رز تبديل اخر وقمت بربطة بجدول teeth

 

2. حذف جميع الحقول في الجدول All_P :

ابتداءً من A_11 الى P_85

 

3.

11 ساعات مضت, jjafferr said:

وبالنسبة لـ Service_Type ، فالافضل ان يكون له جدول مستقل ، بحيث تقدر وبدون برمجة ، ان تضيف اي نوع تريد 🙂

 

4. اذا تم تنظيف ضرس اليوم ، فيعمل البرنامج حوله حلقة بلون اخضر ،

طيب ، وبعد سنه عمل له حشو ، فيصير لون الضرس باللون الارزق ،

حاليا (واعتقد هي الطريقة الصحيحة) ، فلون التنظيف الاخضر سيتم استبداله باللون الارزق ، كون لون العملية الاخيرة فقط هي التي تشير اليها الصورة.

 

جعفر

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information