ongke0711 > 10-07-16, 10:26 PM
Private Sub MaPN_Click()
Me.Parent!txtMaPN = Me.MaPN
End Sub
vocan > 11-07-16, 04:55 PM
(10-07-16, 10:26 PM)ongke0711 Đã viết: 1. Gán data cho subform: Bạn sử dụng Link Master/Child field
- Theo file của bạn, cái subform SF_TimChiTietPhieuNhap sẽ link với Main form thông qua Master field là 1 textbox thể hiện [Mã Phiếu Nhập]. Vd textbox này đặt tên là txtMaPN
- Để tạo cái textbox trên main form cập nhật [Mã PN] khi click vào Phiếu nhập trong subform bạn dùng code sau: trong event Click của textbox [MaPN] trong subform (copy cho cả 3 subform)
Mã PHP:Private Sub MaPN_Click()
Me.Parent!txtMaPN = Me.MaPN
End Sub
2. Thay vì bạn thiết kế 3 subform trên main form, bạn có thể chỉ cần vẽ 1 subform sau đó ở mỗi sự kiện sẽ thay đổi Source Object của subform này tương ứng với 3 subform đã tạo.
VD: vẽ 1 subform tổng đặt tên là sfmTong
- Khi Tìm theo Ngày tháng click thì
Me.sfmTong.SourceObject = "SF_PNtheoNgayThang"
- Khi Tìm theo Nhân viên
Me.sfmTong.SourceObject = "SF_PNtheoNV"
Một cách khác nữa là bạn chỉ cần thiết kế 1 subform, khi thay đổi điều kiện tìm kiếm thì thay đổi RecordSource của sbuform theo điều kiện tương ứng.
Form tìm kiếm kiểu này thì trên diễn đàn rất nhiều bài hay lắm đó. Bạn tìm và tham khảo đi.
Gợi ý của tôi là bạn làm lại cái form tìm kiếm chỉ cần 1 subform và kết hợp với cái subform chi tiết là được rồi. Cách của bạn làm hiện tại hơi rườm rà đó.
Private Sub Timphieu_Click()
Dim strsql1, strsql2, strsql3 As String
Set strsql1 = "SELECT T_Nhap.MaPN, T_Nhap.NgayNhap, T_Nhap.MaNV, T_NV.TenNV FROM T_NV INNER JOIN T_Nhap ON T_NV.MaNV = T_Nhap.MaNV WHERE T_Nhap.MaNV='" & [Forms]![F_Quanlyphieunhap]![nvn] & "'"
Set strsql2 = "SELECT T_Nhap.MaPN, T_Nhap.NgayNhap, T_Nhap.MaNV, T_NV.TenNVFROM T_NV INNER JOIN T_Nhap ON T_NV.MaNV = T_Nhap.MaNV WHERE T_Nhap.NgayNhap>='" & [Forms]![F_Quanlyphieunhap]![tn] & "' And (T_Nhap.NgayNhap)<='" & [Forms]![F_Quanlyphieunhap]![dn] & "'"
''Set strsql3 = "SELECT T_Nhap.MaPN, T_Nhap.NgayNhap, T_Nhap.MaNV, T_NV.TenNV FROM T_NV INNER JOIN T_Nhap ON T_NV.MaNV = T_Nhap.MaNV WHERE (T_Nhap.MaPN)='" & [Forms]![F_Quanlyphieunhap]![nvn] & "' AND T_Nhap.NgayNhap)>='" & [Forms]![F_Quanlyphieunhap]![tn] & "' And T_Nhap.NgayNhap<='" & [Forms]![F_Quanlyphieunhap]![dn] & "'"
If TK = "Nhan vien Nhap" Then
Me.SF_timkiemphieunhap.Form.RecordSource = strsql1
Else
If TK = "Ngay Thang" Then
Me.SF_timkiemphieunhap.Form.RecordSource = strsql2
Else
If TK = "NV Nhap-Ngay Thang" Then
Me.SF_timkiemphieunhap.Form.RecordSource = strsql3
End If
End If
End If
Me.SF_timkiemphieunhap.Form.Requery
End Sub
ongke0711 > 11-07-16, 10:45 PM
Private Sub Timphieu_Click()
Dim strSQL As String, dieukienloc As String
Select Case Me.TK
Case 1 'Tim theo nhan vien nhap'
dieukienloc = "T_Nhap.[MaNV]='" & Me.nvn & "'"
Case 2 'Tim theo ngay thang'
dieukienloc = "[NgayNhap] BETWEEN #" & Me.tn & "# AND #" & Me.dn & "#"
Case 3 ' Tim theo NV + Ngay thang'
If IsNull(Me.tn) Or Me.tn = "" Or IsNull(Me.dn) Or Me.dn = "" Then
MsgBox "Ban phai nhap thong tin [Tu ngay], [Den ngay]", vbCritical, "Thông báo"
Me.tn.SetFocus
Exit Sub
End If
dieukienloc = "T_Nhap.[MaNV]='" & Me.nvn & "' AND [NgayNhap] BETWEEN #" & Me.tn & "# AND #" & Me.dn & "#"
End Select
strSQL = "SELECT T_Nhap.*, T_NV.TenNV " & _
"FROM T_NV INNER JOIN T_Nhap ON T_NV.MaNV = T_Nhap.MaNV " & _
"WHERE " & dieukienloc
Me.SF_timkiemphieunhap.Form.RecordSource = strSQL
End Sub