-
RE: Tạo nhiều nút điều khiển cho nhiều sub form
cpucloi > 01-07-18, 10:04 PM
Ko hiểu "link" subform 1 và form2 là sao ta? đưa file và yêu cầu lên để mọi người "mổ" nhé -
RE: Tạo nhiều nút điều khiển cho nhiều sub form
tranthanhan1962 > 02-07-18, 02:07 AM
có lẽ bạn pvhung76 chưa nắm chắc các vấn đề về code, event, v.v... Thực ra việc này có thể xử lý bằng nhiều cách và rất đơn giản. Ở đây tôi sẽ đưa ra cụ thể bạn nhớ xử lý đúng properties và đúng cú pháp trong code. Các Name object có thể không giống như của bạn, bạn có thể đổi lại chính xác. Bạn có thể chọn cách nào phù hợp nhất với bạn.
Cách thứ nhất - Sử dụng một subform dùng chung: Tạo 1 mainform, 2 form lần lượt có name là Form1, Form2, trên mainform tạo 2 nút lệnh có name là MoSub1 để mở subform1 và MoSub2 để mở subform2, vẽ một subform đặt tên là SubForm. Cách này dùng để thay đổi SourceObject của subform theo yêu cầu.
Code:
Cách thứ hai- Sử dụng hai subform: Tạo 1 mainform, 2 form lần lượt có name là Form1, Form2, trên mainform tạo 2 nút lệnh có name là MoSub1 để mở subform1 và MoSub2 để mở subform2, vẽ 2 subform: SubForm1 có SourceObject = Form1, SubForm2 có SourceObject = Form2, điều chỉnh cho 2 subform trùng khích lên nhau. Cách này để ẩn hiện subform theo yêu cầuMã:Private Sub MoSub1_Click()
SubForm.SourceObject = "Form1"
SubForm.Requery
End Sub
Private Sub MoSub2_Click()
SubForm.SourceObject = "Form2"
SubForm.Requery
End Sub
Code:
Cách thứ ba- Sử dụng hai subform giống như cách thứ hai: Tạo 1 mainform, 2 form lần lượt có name là Form1, Form2, trên mainform tạo 2 nút lệnh có name là MoSub1 để mở subform1 và MoSub2 để mở subform2, vẽ 2 subform: SubForm1 có SourceObject = Form1, SubForm2 có SourceObject = Form2, điều chỉnh cho 2 subform trùng khích lên nhau. Cách này không làm ẩn subform mà mở rộng subform cần sử dụng theo yêu cầu và thu nhỏ khích thước subform không cần dùng nhỏ lại. Thông thường người ta không cho nó về diện tích 0, nhưng theo chủ đề này tôi mở rộng subform cần dùng và thu nhỏ subform còn lại về 0. Cách này cần sử dụng kích thước các subform.Mã:Private Sub MoSub1_Click()
SubForm1.Visible = True
SubForm2.Visible = False
End Sub
Private Sub MoSub2_Click()
SubForm1.Visible = False
SubForm2.Visible = True
End Sub
Mã:Private Sub MoSub1_Click()
SubForm1.Height = 5000
SubForm1.Width = 15000
SubForm2.Height = 0
SubForm2.Width = 0
SubForm1.SetFocus
End Sub
Private Sub MoSub2_Click()
SubForm1.Height = 0
SubForm1.Width = 0
SubForm2.Height = 5000
SubForm2.Width = 15000
SubForm2.SetFocus
End Sub -
RE: Tạo nhiều nút điều khiển cho nhiều sub form
Cuong Servenet > 17-07-18, 12:24 PM
mình xin chia sẻ cách làm của mình và cho bạn 1 đoạn code , bạn có thể dựa vào đó làm theo nhé.
phương pháp này cực kì hiệu quả khi dùng chung 1 mainforms mà các subforms khác nhau.
đoạn code này mình viết cho 1 hệ thống mà mình làm, giờ mình tóm gọn gợi ý bạn có thể dựa theo vào làm nhé.
'module
Public Sub Open_FRM_Args(ByVal C_FRM As String, ByVal O_frm As String, O_Args As String)
'2018/02/28 Nguyen Cao Cuong
If IsOpen(C_FRM) = True Then
DoCmd.SelectObject acForm, C_FRM
DoCmd.Minimize
End If
DoCmd.OpenForm O_frm, acNormal, , , , , O_Args
End Sub
'mainfomrs
Private Sub open()
★khi mo forms thi cai dat su hien thi ten TieuDe trong sub bang cach dat ten
call F_SUB
end sub
Private Sub abc_Click()
Call Open_FRM_Args(Me.name, "FRM_MainForms", "abc")
End Sub
Private Sub deg_Click()
Call Open_FRM_Args(Me.name, "FRM_MainForms", "deg")
End Sub
Private Sub SubFormRequery()
If Me!TieuDe = "abc" Then
Call Form_FRM_MainForms_abc.FormRequery
ElseIf Me!TieuDe = "deg" Then
Call FRM_MainForms_deg.FormRequery
End If
End Sub
Private Sub F_SUB()
If Nz(Me!Table, "") = "" Then
MsgBox "mo sub ko dung, moi lai。"
Me!ten_formssub.SourceObject = ""
ElseIf Nz(Me!Table, "") <> "" Then
Me!ten_formssub.SourceObject = "FRM_MainForms_" & Me!Table
End If
Me!Tieude = Nz(Me!Table, "") & "nhap"
End Sub