tvn_hut > 27-02-16, 11:08 AM
tvn_hut > 27-02-16, 09:53 PM
MTNQ > 28-02-16, 10:39 PM
(27-02-16, 11:08 AM)tvn_hut Đã viết: Hi các bạn. Mình tk 1 form trong đó có tất cả cac source từ 1 table và 1 subform là kết quả của việc lọc dữ liệu theo đk nào đó. Cái khó khăn là mình không biết cách liên kết giữa sub và main. Tức là khi click vào 1 dòng record trên sub. Thì lập tức hiển thị toàn bộ control source tương ứng trên main. Với text unbound thì mình có tham khảo trên diễn đàn. Nhung nếu sub đó là 1 query thì mình chưa biết giải quyết sao. Nhờ các bạn giúp nhé
Private Sub Form_Current()
If Not Me.NewRecord Then
Me.Parent.Filter = "ID = " & Nz(Me.txtID, 0)
Me.Parent.FilterOn = True
End If
End Sub
tvn_hut > 28-02-16, 11:44 PM
(28-02-16, 10:39 PM)MatTroiNguQuen Đã viết:(27-02-16, 11:08 AM)tvn_hut Đã viết: Hi các bạn. Mình tk 1 form trong đó có tất cả cac source từ 1 table và 1 subform là kết quả của việc lọc dữ liệu theo đk nào đó. Cái khó khăn là mình không biết cách liên kết giữa sub và main. Tức là khi click vào 1 dòng record trên sub. Thì lập tức hiển thị toàn bộ control source tương ứng trên main. Với text unbound thì mình có tham khảo trên diễn đàn. Nhung nếu sub đó là 1 query thì mình chưa biết giải quyết sao. Nhờ các bạn giúp nhé
Câu này bạn viết hơi khó hiểu: "hiển thị toàn bộ control source tương ứng trên main" ?
Nếu bạn muốn khi click vào một dòng nào trên subform sẽ hiển thị dữ liệu của record đó trên main form thì có thể code cho sự kiện On Current của subform tương tự như sau:
Mã:Private Sub Form_Current()
If Not Me.NewRecord Then
Me.Parent.Filter = "ID = " & Nz(Me.txtID, 0)
Me.Parent.FilterOn = True
End If
End Sub
Với trường ID là khóa chính của record , txtID là textBox trên subform có source là ID . Bạn tùy biến nhé!
MTNQ > 29-02-16, 08:06 AM
(28-02-16, 11:44 PM)tvn_hut Đã viết: Cám ơn bạn rất nhiều. Bạn hiểu đúng vấn đề của mình. đúng là khi nháy chuột vào dòng nào là có thể hiện lên trên main form tương ứng với dữ liệu đó. Tuy nhiên sau khi thực hiện lọc dữ liệu trên subform mình có nháy chuột vào các dòng dữ liệu thì con trỏ luôn nhảy về record trên cùng. mặc dù dữ liệu có thay đổi theo. làm thế nào giải quyết nó nhỉ
tvn_hut > 29-02-16, 12:00 PM
(29-02-16, 08:06 AM)MatTroiNguQuen Đã viết:(28-02-16, 11:44 PM)tvn_hut Đã viết: Cám ơn bạn rất nhiều. Bạn hiểu đúng vấn đề của mình. đúng là khi nháy chuột vào dòng nào là có thể hiện lên trên main form tương ứng với dữ liệu đó. Tuy nhiên sau khi thực hiện lọc dữ liệu trên subform mình có nháy chuột vào các dòng dữ liệu thì con trỏ luôn nhảy về record trên cùng. mặc dù dữ liệu có thay đổi theo. làm thế nào giải quyết nó nhỉ
-Điều kiện lọc của subform là gì? "con trỏ nhảy về record trên cùng" thường là do lệnh Requery hoặc Refresh
MTNQ không có file của bạn nên khó hỗ trợ. Bạn up file lên hoặc gởi qua mail: mattroinguquensgvn@Gmail.com, mình xem giúp cho.
tvn_hut > 01-03-16, 08:33 PM
Private Sub Form_Current()
If Not Me.NewRecord Then
Me.Parent.Filter = "[TagNo] = '" & Nz(Me.TagNo, 0) & "'"
Me.Parent.FilterOn = True
End If
End Sub
MTNQ > 02-03-16, 12:14 PM
Private Sub Cobline_AfterUpdate()
ApplyFilter
End Sub
Private Sub Cobgrp_AfterUpdate()
ApplyFilter
End Sub
Private Sub ApplyFilter()
Dim strFilter As String
strFilter = "[Group] Like '*" & Me.[Cobgrp] & "'"
strFilter = strFilter & " AND [Line] Like '*" & Me.[CobLine] & "'"
'Debug.Print strFilter
Me.Frmsubupdate.Form.Filter = strFilter
Me.Frmsubupdate.Form.FilterOn = True
End Sub
Private Sub Form_Current()
Dim rs As DAO.Recordset
Set rs = Me.Parent.Recordset.Clone
rs.FindFirst "[Staffcode] = '" & Nz(Me.txtStaffcode, "") & "'"
If Not rs.NoMatch Then
Me.Parent.Bookmark = rs.Bookmark
End If
Set rs = Nothing
End Sub
tvn_hut > 02-03-16, 01:12 PM
(02-03-16, 12:14 PM)MatTroiNguQuen Đã viết: Form của bạn không dùng cách trên được, để đáp ứng được các yêu cầu như bạn nói thì làm như sau:Cám Ơn MTNQ rất nhiều. Problem đã được giải quyết. nếu bạn ở HCM mình mời 1 bữa cà phê nhé
1/Bỏ điều kiện lọc của subform (xóa DK trong query Qryupdate)
2/Code cho sự kiện AfterUpdate của Cobline và Cobgrp như sau:
Mã:Private Sub Cobline_AfterUpdate()
ApplyFilter
End Sub
Private Sub Cobgrp_AfterUpdate()
ApplyFilter
End Sub
Private Sub ApplyFilter()
Dim strFilter As String
strFilter = "[Group] Like '*" & Me.[Cobgrp] & "'"
strFilter = strFilter & " AND [Line] Like '*" & Me.[CobLine] & "'"
'Debug.Print strFilter
Me.Frmsubupdate.Form.Filter = strFilter
Me.Frmsubupdate.Form.FilterOn = True
End Sub
3/Thủ tục Form_Current của subform sửa lại như sau:
Mã:Private Sub Form_Current()
Dim rs As DAO.Recordset
Set rs = Me.Parent.Recordset.Clone
rs.FindFirst "[Staffcode] = '" & Nz(Me.txtStaffcode, "") & "'"
If Not rs.NoMatch Then
Me.Parent.Bookmark = rs.Bookmark
End If
Set rs = Nothing
End Sub
lmthu > 04-03-16, 11:25 AM