Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Tạo nhiều nút điều khiển cho nhiều sub form
#11
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é big green
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#12
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:
Mã:
Private Sub MoSub1_Click()
   SubForm.SourceObject = "Form1"
   SubForm.Requery
End Sub

Private Sub MoSub2_Click()
   SubForm.SourceObject = "Form2"
   SubForm.Requery
End Sub
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ầu
Code:
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
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.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
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn pvhung76 , Xuân Thanh , mrtoanbin
#13
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
Chữ ký của Cuong Servenet Cuong Servenet,gia nhập Thủ Thuật Access từ 12-07 -18.
ღღღღღTài sản của Cuong Servenet (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách tạo Cbo để lọc các mặt hàng trong Sub Form samacxanh 3 253 17-10-18, 10:33 AM
Bài mới nhất: vulhu06
  [Help] Điều khiển 1 form từ form khác tranthanhan1962 2 189 30-09-18, 05:57 PM
Bài mới nhất: tranthanhan1962
  Không chọn được nhiều Nhân viên từ subform huuduy.duy 10 487 29-09-18, 08:11 PM
Bài mới nhất: ongke0711
  Lỗi truyền tham số từ Form vào query cannguyen 2 125 20-09-18, 06:49 PM
Bài mới nhất: cannguyen
  [Hỏi] Load dữ liệu từ table lên form bằng lăng 2 177 19-09-18, 04:56 PM
Bài mới nhất: bằng lăng

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line