Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con?

Liên hệ QC

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Xin chào các bạn GPE!
Tôi có 1 vấn đề như sau: Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con?

Mã:
Sub Thu_tuc_me()

... Code...

Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con từ đoạn này
 
... Code...

End Sub
---------------------------------------------------------------
Sub Thu_tuc_con()
... Code...
Làm thế nào để Thủ tục mẹ ở trên chạy qua 1 phần Code của Thủ tục con từ đoạn này
... Code...
và Thủ tục mẹ chạy đến đây là kết thúc đoạn này (Sau đó chương trình chạy về lại Thủ tục mẹ)?
... Code...
End Sub
Nhờ các bạn chỉ giáo cho.
 

File đính kèm

  • Thu tuc me muon 1 phan Code cua Thu tuc con.xls
    36 KB · Đọc: 2
 
Upvote 0
Xin chào các bạn GPE!
Tôi có 1 vấn đề như sau: Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con?

Mã:
Sub Thu_tuc_me()

... Code...

Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con từ đoạn này

... Code...

End Sub
---------------------------------------------------------------
Sub Thu_tuc_con()
... Code...
Làm thế nào để Thủ tục mẹ ở trên chạy qua 1 phần Code của Thủ tục con từ đoạn này
... Code...
và Thủ tục mẹ chạy đến đây là kết thúc đoạn này (Sau đó chương trình chạy về lại Thủ tục mẹ)?
... Code...
End Sub
Nhờ các bạn chỉ giáo cho.
Dùng biến chung LonXon
Mã:
dim LonXon as string
Sub Thu_tuc_me()
... Code...

LonXon="KyQuaTroi"
call Thu_tuc_con'Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con từ đoạn này

... Code...
End Sub
---------------------------------------------------------------
Sub Thu_tuc_con()

if LonXon="KyQuaTroi" then goto ChoiLuon
... Code...

ChoiLuon:  'Làm thế nào để Thủ tục mẹ ở trên chạy qua 1 phần Code của Thủ tục con từ đoạn này

... Code...

if LonXon="KyQuaTroi" then  'và Thủ tục mẹ chạy đến đây là kết thúc đoạn này (Sau đó chương trình chạy về lại Thủ tục mẹ)?
LonXon=empty
exit sub
end if

... Code...

End Sub
 
Upvote 0
Dùng biến chung LonXon
...
Trước khi bước vào kỹ thuật làm cái này, người ta cần xét lại lý do "tại sao phải làm vậy?"

1. Nếu thủ tục mẹ chỉ đơn giản cần một đoạn code của thủ tục con thì cách truyền thống là tách đoạn code ấy ra thành một thủ tục con khác. Cả mẹ lẫn con đều gọi thằng cháu mới này. Vừa dễ làm vừa dễ quản lý.

2. Nếu do thủ tục mẹ bắt buộc phải sử dụng một số biến của thủ tục con thì rất rắc rối. Lưu ý là khi bỏ qua một số code ở đầu thủ tục con thì có thể các biến ấy không được gán trị đúng như mong muốn.

3. Nếu do cái gì khác: chưa tưởng tượng ra nổi.

dim LonXon as string
Sub Thu_tuc_me()
... Code...
LonXon="KyQuaTroi"
call Thu_tuc_con'Làm thế nào để Thủ tục mẹ chạy qua 1 phần Code của Thủ tục con từ đoạn này
LonXon=empty
... Code...
End Sub
---------------------------------------------------------------
Sub Thu_tuc_con()
... Code...
if LonXon="KyQuaTroi" then 'và Thủ tục mẹ chạy đến đây là kết thúc đoạn này (Sau đó chương trình chạy về lại Thủ tục mẹ)?
' LonXon=empty
exit sub
end if
... Code...
End Sub
Thường thì ngừoi ta để cho một thủ tục gán trị và thủ tục kia chỉ xét trị thôi. Code như vậy dễ quản lý hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
khó hiểu ghê, không biết thế nào là thủ tục mẹ? thế nào là thủ tục con? phải có con rồi mới có mẹ, hay mẹ phải chạy thì con mới chạy?
Không biết con gà có trước hay quả trứng có trước.
 
Upvote 0
khó hiểu ghê, không biết thế nào là thủ tục mẹ? thế nào là thủ tục con? phải có con rồi mới có mẹ, hay mẹ phải chạy thì con mới chạy?
Không biết con gà có trước hay quả trứng có trước.
Cách gọi mẹ/con thực ra thượng cổ lắm rồi.
Thời thượng cổ, phần lớn các ngôn ngữ do IBM đẻ ra không có đệ quy thì A gọi B có thể nói A là mẹ và B là con.
Bi giờ, hầu hết các ngôn ngữ đều có đệ quy ngang hàng. A gọi B và B gọi ngược lại A (*), ai là mẹ ai là con bi giờ.

(*) loại đệ quy ngang hàng này khó bỏ bố. Cả đời tôi code chỉ chừng 2-3 lần, và đọc code của người khác dưới chục lần.
Loại lòng vòng A->B->C->A thì chỉ thấy 1 lần trong đời.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom