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

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

قام بنشر

 

دا الكود تحت الزرار

    On Error Resume Next

  If MsgBox("åá ÃäÊ ãÊÃßÏ ãä ÍÐÝ ÈíÇäÇÊ ÇáãÑíÖ¿", vbYesNo, "ÃäÊÈå ") = vbYes Then
    
    DoCmd.SetWarnings (0)
'    DoCmd.OpenQuery "qrydeletedPatientTest"
'    DoCmd.OpenQuery "QryDeleteTestOrderTbl"
    
    
    
    Dim strSQL1, strSQL2 As String
    
    strSQL1 = "DELETE test_order_tbl.*, test_order_tbl.ID " & _
             "FROM test_order_tbl " & _
             "WHERE (((test_order_tbl.ID)=" & Forms![reservation_frm]![ID] & "));"
             
             
                strSQL2 = "DELETE reservation_tbl.*, reservation_tbl.ID " & _
             "FROM reservation_tbl " & _
             "WHERE (((reservation_tbl.ID)=" & Forms![reservation_frm]![ID] & "));"
             
   '   strSQL2 = "DELETE test_order_tbl.test, test_order_tbl.sub, test_order_tbl.ID, test_order_tbl.tcode, test_order_tbl.torder, test_order_tbl.patient_price, test_order_tbl.num " & _
             "FROM test_order_tbl " & _
             "WHERE (((test_order_tbl.ID)=" & Forms!reservation_frm!ID & "));"
             
    DoCmd.RunSQL strSQL1
    DoCmd.RunSQL strSQL2
    DoCmd.SetWarnings (1)
    
    
    DoCmd.RunCommand acCmdDeleteRecord
    selected_list.Requery

  Else
    DoCmd.CancelEvent
  End If
    

Screenshot_3.png

  • أفضل إجابة
قام بنشر

وعليكم السلام 🙂

 

يجب إعطاء الامر Me.Requery ومعناها اجلب البيانات الجديدة من مصدر بيانات النموذج (Me معناه انا الكائن الذي تتم العمليه من خلاله ، اي مكان الحدث الذي اتى منه امر الحذف مثلا) ، بعد كل عملية تغيير في الجداول ، سواء حذف بيانات (مثل ما عندك) ، او اضافة او تغيير.

 

وممكن عمل تحديث بيانات نموذج آخر (غير النموذج الذي تم الامر من خلاله) ، فيصبح الامر Forms!frnName.requery

 

جعفر

 

  • Like 2
قام بنشر
2 hours ago, jjafferr said:

وعليكم السلام 🙂

 

يجب إعطاء الامر Me.Requery ومعناها اجلب البيانات الجديدة من مصدر بيانات النموذج (Me معناه انا الكائن الذي تتم العمليه من خلاله ، اي مكان الحدث الذي اتى منه امر الحذف مثلا) ، بعد كل عملية تغيير في الجداول ، سواء حذف بيانات (مثل ما عندك) ، او اضافة او تغيير.

 

وممكن عمل تحديث بيانات نموذج آخر (غير النموذج الذي تم الامر من خلاله) ، فيصبح الامر Forms!frnName.requery

 

جعفر

 

متشكره لحضرتك

انا اضفت الكود

بتظهر للحظات وبتختفى

هل من طريقه لعدم ظهورها تماما

قام بنشر


    On Error Resume Next

    If MsgBox("هل أنت متأكد من حذف بيانات المريض؟", vbYesNo, "تأكيد الحذف") = vbYes Then
        DoCmd.SetWarnings False
        
        Dim strSQL1 As String
        Dim strSQL2 As String
        
        strSQL1 = "DELETE FROM test_order_tbl WHERE ID = " & Forms![reservation_frm]![ID]
        strSQL2 = "DELETE FROM reservation_tbl WHERE ID = " & Forms![reservation_frm]![ID]
        
        DoCmd.RunSQL strSQL1
        DoCmd.RunSQL strSQL2
        
        DoCmd.SetWarnings True
        
        ' إعادة تحديث البيانات في النموذج بعد الحذف
        Forms![reservation_frm].Requery
    Else
        DoCmd.CancelEvent
    End If

قام بنشر

كتبت 4 ملاحظات ، هكذا: ** .1>

 

<1. ***الجملة التالية خطيرة ، ولا يجب استعمالها إلا في حالات خاصة، اما في كود طويل مثل هذا ، فيجب ان لا تُستخدم**
  On Error Resume Next

  If MsgBox("åá ÃäÊ ãÊÃßÏ ãä ÍÐÝ ÈíÇäÇÊ ÇáãÑíÖ¿", vbYesNo, "ÃäÊÈå ") = vbYes Then
    
    DoCmd.SetWarnings (0)
'    DoCmd.OpenQuery "qrydeletedPatientTest"
'    DoCmd.OpenQuery "QryDeleteTestOrderTbl"
    
    
    
    Dim strSQL1, strSQL2 As String
    
    strSQL1 = "DELETE test_order_tbl.*, test_order_tbl.ID " & _
             "FROM test_order_tbl " & _
             "WHERE (((test_order_tbl.ID)=" & Forms![reservation_frm]![ID] & "));"
             
             
                strSQL2 = "DELETE reservation_tbl.*, reservation_tbl.ID " & _
             "FROM reservation_tbl " & _
             "WHERE (((reservation_tbl.ID)=" & Forms![reservation_frm]![ID] & "));"
             
   '   strSQL2 = "DELETE test_order_tbl.test, test_order_tbl.sub, test_order_tbl.ID, test_order_tbl.tcode, test_order_tbl.torder, test_order_tbl.patient_price, test_order_tbl.num " & _
             "FROM test_order_tbl " & _
             "WHERE (((test_order_tbl.ID)=" & Forms!reservation_frm!ID & "));"
             
    DoCmd.RunSQL strSQL1
    DoCmd.RunSQL strSQL2
    'DoCmd.SetWarnings (1)	<2. **تم ايقاف عمل هذا السطر
    
    
    DoCmd.RunCommand acCmdDeleteRecord
    selected_list.Requery
	
 	me.Requery				<3. **تم اضافة هذا السطر
  	DoCmd.SetWarnings (1)	<4. **وهذا السطر
  
  Else
    DoCmd.CancelEvent
  End If

 

قام بنشر

سؤال:

شو اسم النموذج/الفرعي الذي فيه حدث الحذف؟

شو اسم النموذج/الفرعي الذي تظهر لك علامات DELETED# ؟

رجاء ارفاق حدث الحذف.

قام بنشر

السلام عليكم 

بما ان النموذج فردي single form  فالسبب ان النموذج المحذوف مفتوح

اذا كان نموذج مستمر فالمفترض بعد الامر requery يختفي السجل المحذوف ولكن في هذه الحاله

يجب اغلاق النموذج بعد الحذف او الانتقال لسجل جديد او السجل التالي حسب المفضل لك
 

  • Thanks 1
قام بنشر

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

Public Sub Refresh_Open_Forms()
On Error Resume Next
    Dim frm         As Form
    For Each frm In Access.Forms
        frm.Requery
    Next
End Sub

 

قام بنشر

اختي الفاضلة ، انظري هذا الرابط ، فهو مفيد للحاسبات البطيئة ،

يعني من مساعدات جميع الاعضاء ، الكود سيحذف السجلات ، ويطلب سجلا جديدة (Requey) ، ولكن النموذج سيظهر فيه كلمة DELETED# لجزء من الثانية ، فاذا اردنا ان لا نرى هذا ، يمكنك استخدام الامر Me.Painting ، كما هو موضح في الموضوع هنا :

 

 

جعفر

قام بنشر
1 hour ago, jjafferr said:

اختي الفاضلة ، انظري هذا الرابط ، فهو مفيد للحاسبات البطيئة ،

يعني من مساعدات جميع الاعضاء ، الكود سيحذف السجلات ، ويطلب سجلا جديدة (Requey) ، ولكن النموذج سيظهر فيه كلمة DELETED# لجزء من الثانية ، فاذا اردنا ان لا نرى هذا ، يمكنك استخدام الامر Me.Painting ، كما هو موضح في الموضوع هنا :

 

 

جعفر

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

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

قام بنشر

طيب ممكن حضرتك تجربى الاتى 

 اضافة الدالة الاتية فى وحدة نمطية
 

Public Sub RepaintAndProcessEvents(ByRef formOrControl As Object)
    ' Repaint the form or control
    formOrControl.Repaint
    
    ' Allow the system to process events
    DoEvents
End Sub

وبعدين كود الحذف على زر الامر بالشكل ده

  

Private Sub YourDeleteButton_Click()
    If MsgBox("Are you sure you want to delete the record?", vbYesNo, "Delete Confirmation") = vbYes Then
        DoCmd.SetWarnings (0)
        
        ' Query to delete records from test_order_tbl
        Dim strSQL1 As String
        strSQL1 = "DELETE FROM test_order_tbl " & _
                  "WHERE ID=" & Forms![reservation_frm]![ID] & ";"
        DoCmd.RunSQL strSQL1
        
        ' Query to delete records from reservation_tbl
        Dim strSQL2 As String
        strSQL2 = "DELETE FROM reservation_tbl " & _
                  "WHERE ID=" & Forms![reservation_frm]![ID] & ";"
        DoCmd.RunSQL strSQL2
        
        ' Requery to refresh the record list
        selected_list.Requery
        
        DoCmd.SetWarnings (1)
        
        ' Repaint the form and process events
        RepaintAndProcessEvents Me
    Else
        DoCmd.CancelEvent
    End If
End Sub

 

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