Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Gọi thực hiện 1 Private Sub trên Form này từ Form khác.
#1
Nhờ các ACE Pro chỉ giáo cách gọi thực hiện 1 Private Sub hoặc Function trên form này từ 1 Form khác. Cụ thể:

1. tmtien261 có: 2 Form (form1, form2).
2. tmtien261 muốn: Khi 2 form đều đang mở. Click 1 nút trên Form2 thì form2 đóng, sau đó gọi thực hiện lệnh textbox_AfterUpdate trên Form1.

tmtien261 đã nhờ "Bác Google" nhưng vẫn ko làm được.
Xin các Pro chỉ giúp !
Thanks !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#2
Giả sử Form 2 có text box tên Text2, Form 1 có combobox tên cmb1.
Code nút button form 2
Mã PHP:
Private Sub Command4_Click()
Forms!form1!cmb1 Me.Text2
DoCmd
.Close
End Sub 
Reply
Những người đã cảm ơn
#3
Chưa đúng yêu cầu bạn ơi !
Ý mình là từ form 2 yêu cầu thực thị 1 Function hoặc Sub trên Form1 (VD như: gọi Sub textbox_AfterUpdate) chứ ko phải gán giá trị cho các đối tượng trên Form1 !
Thanks bạn đã quan tâm !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#4
Cách của em thế này không biết đúng chưa007
Mã PHP:
Public Function abc()
Forms!form1!cmb1 Forms!form2!Text2
DoCmd
.Close
End 
Function 
Tại form 2
Mã PHP:
Private Sub Command4_Click()
Call abc
End Sub 
Reply
Những người đã cảm ơn Noname
#5
(23-01-14, 12:31 PM)tmtien261 Đã viết: Nhờ các ACE Pro chỉ giáo cách gọi thực hiện 1 Private Sub hoặc Function trên form này từ 1 Form khác. Cụ thể:

1. tmtien261 có: 2 Form (form1, form2).
2. tmtien261 muốn: Khi 2 form đều đang mở. Click 1 nút trên Form2 thì form2 đóng, sau đó gọi thực hiện lệnh textbox_AfterUpdate trên Form1.

tmtien261 đã nhờ "Bác Google" nhưng vẫn ko làm được.
Xin các Pro chỉ giúp !
Thanks !

1/Thay Private bằng Public
-VD: Sửa Private Sub cmdLuu_Click() bằng Public Sub cmdLuu_Click()
2/Gọi thủ tục cmdLuu_Click() trên form "frmXuathangban" theo cú pháp như sau:
Mã:
Forms("frmXuathangban").cmdLuu_Click
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn Minh Tiên , Noname
#6
Đúng như "MTNQ" hướng dẫn thay đổi từ Private thành Public là OK !
Nhưng còn Private thì sao bạn ? Có thực hiện được ko ?
Thanks !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#7
1/ Private Sub chỉ thực hiện cho form hiện hành
2/ Public hoặc Function có thể gọi lệnh từ bất cứ đâu trong CSDL
Bạn nên tìm hiểu kỹ hơn về hàm và thủ tục nhé
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn MatTroiNguQuen , Noname , quan_pc
#8
(24-01-14, 11:58 AM)tmtien261 Đã viết: Nhưng còn Private thì sao bạn ? Có thực hiện được ko ?
Thanks !

Đúng là tmtien261 chính hiệu (cứ thích hỏi đố mọi người) 015
Câu trả lời là: được! (nhưng chỉ đưa ra để phân tích và tham khảo thui nhé!)

1/ phân tích:
Khi khai báo Private cho hàm ( thủ tục) thì hàm đó chỉ sử dụng cục bộ trong modul mà thui, các modul khác không thể "nhìn thấy" hay sử dụng được

Như vậy để gọi một thủ tục được khai báo Private trong một form nào đó thì trước tiên ta phải mở form đó, đưa focus vào form, sử dụng thủ tục sự kiện trong nội bộ form để gọi các thủ tục khác trong cùng form

2/ Thực hiện:
-Khai báo một biến toàn cục Public blnGoi_textbox_AfterUpdate As boolean ở đầu một Modul
-Tại form2 bạn viết lệnh (cho nút nhấn hay chèn trong một thủ tục nào đó):
Mã:
blnGoi_textbox_AfterUpdate = true
Forms("form1").SetFocus
-Tại form1 bạn code cho sự kiện On Activate

Mã:
Private Sub Form_Activate()
    If blnGoi_textbox_AfterUpdate Then
        blnGoi_textbox_AfterUpdate = False
        Call textbox_AfterUpdate
    End If
    
End Sub
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn Minh Tiên
#9
Lúc trưa đang ở cơ quan nên không có thời gian để viết nhiều
Mình tiếp tục nhé:
Cách 2:

1/ viết một hàm để gọi các thủ tục trong form (Hàm này viết trong form1)
VD:
Mã:
Function Goithutuctulenhngoaiform1()  
            Call Text0_AfterUpdate        
End Function

2/Gọi hàm này từ form khác
Mã:
Private Sub Command0_Click()
    If CurrentProject.AllForms("form1").IsLoaded = False Then
        DoCmd.OpenForm "form1", acViewNormal
    End If
    Forms("form1").Goithutuctulenhngoaiform1
    
End Sub

Demo call Private sub from another form
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn Xuân Thanh , Minh Tiên
#10
Khi chuyển sang Function thì có thể gọi từ bắt cứ đâu
Vì thế lại nói lại ý kiến của bạn tmtien261 ở topic khác : nên tập viết trong modul, classmodul để dùng cho công việc của mình
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Minh Tiên


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Refresh Form và tiếp tục hoạt động Godspear 2 85 08-12-16, 12:48 PM
Bài mới nhất: Godspear
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 39 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 195 22-11-16, 09:23 AM
Bài mới nhất: jason
  Query hiện lên trên form? feeling 4 167 09-11-16, 09:49 PM
Bài mới nhất: toancvp

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ