tranthanhan1962 > 17-05-20, 09:05 PM
cpucloi > 17-05-20, 10:33 PM
doandinhtam > 19-05-20, 01:00 AM
(17-05-20, 10:33 PM)cpucloi Đã viết: Hai biện pháp trên đều hiệu quả, bạn không chọn.Dữ liệu là dữ liệu động bạn ah. tức là rất nhiều dữ liệu khác nhau, nó không theo 1 quy luật nào cả. Đây mình chỉ ví dụ 2 field cho dễ hình dung thôi chứ nó tới 5-6 field lận. Mà mỗi lần nhập là hơn chục người có cùng 1 field giống nhau. Nên thay vì bấm Ctrl ' mỗi khi tới field đó thì mình chỉ cần nhập họ tên, năm sinh, giới tính của những người có các field giống nhau rồi bấm nút "thêm" là tự động thêm hết phần còn lại theo dữ liệu của ô phía trên liền kề cho nhanh ấy
Bày thêm cách này nữa vậy.
Trên mainform tạo một số combobox (tại sao không dùng textbox - cái này sau tự hiểu) tương ứng với các filed thường mang tính lặp lại nhiều lần.
Gán giá trị của các filed của subform bằng giá trị tại các combobox trên mainform
Private Sub QUEQUAN_AfterUpdate()
If (QUEQUAN.Text) = "" Then
SendKeys "^'"
End If
End Sub
Xuân Thanh > 19-05-20, 07:21 AM
Function LapLai()
Dim DB As DAO.Database
Dim T As DAO.Recordset
Dim A, B, C, D, E As Variant
Set DB = CurrentDb
Set T = DB.OpenRecordset("tblDanhsach", dbOpenDynaset)
If T.RecordCount > 0 Then T.MoveLast
A = T.Fields(3): B= T.Fields(4): C = T.Fields(5): D= T.Fields(6): E = T.Fields(7)
End Function
Private Sub txtTenNV_AfterUpdate()
If Not IsNull(Me.txtTenNV) Then
Call LapLai
Me.txtQueQuan = A
Me.txtThuongTru = B
......
End If
End Sub
tranthanhan1962 > 19-05-20, 10:11 AM
(19-05-20, 01:00 AM)doandinhtam Đã viết: Dữ liệu là dữ liệu động bạn ah. tức là rất nhiều dữ liệu khác nhau, nó không theo 1 quy luật nào cả. Đây mình chỉ ví dụ 2 field cho dễ hình dung thôi chứ nó tới 5-6 field lận. Mà mỗi lần nhập là hơn chục người có cùng 1 field giống nhau. Nên thay vì bấm Ctrl ' mỗi khi tới field đó thì mình chỉ cần nhập họ tên, năm sinh, giới tính của những người có các field giống nhau rồi bấm nút "thêm" là tự động thêm hết phần còn lại theo dữ liệu của ô phía trên liền kề cho nhanh ấyÊêêê! [tự động điền dữ liệu vào ô trống bằng dữ liệu ở ô bên trên] và [nhập là hơn chục người có cùng 1 field giống nhau] là 2 khái niệm hoàn toàn khác nhau nhé bạn. Đây là demo muốn lấy giá trị của field nào ở record nào thì đưa con trỏ về record đó làm record hiện hành, click chuột chọn option tương ứng có giá trị True, khi nhâp mã số mới nó sẽ tự động điền giá trị đã chọn
Mình đã thử code After Update như sau nhưng không được, mong ae chỉ giáo thêm
doandinhtam > 19-05-20, 10:39 AM
(19-05-20, 07:21 AM)Xuân Thanh Đã viết: Không phải là không có cách làm như tranthanhan1962 đã nói. Còn muốn làm phải tạo một UDF. Thử tạo một UDF như sau trong Modul
Mã:Function LapLai()
Dim DB As DAO.Database
Dim T As DAO.Recordset
Dim A, B, C, D, E As Variant
Set DB = CurrentDb
Set T = DB.OpenRecordset("tblDanhsach", dbOpenDynaset)
If T.RecordCount > 0 Then T.MoveLast
A = T.Fields(3): B= T.Fields(4): C = T.Fields(5): D= T.Fields(6): E = T.Fields(7)
End Function
Code trong Form
Mã:Private Sub txtTenNV_AfterUpdate()
If Not IsNull(Me.txtTenNV) Then
Call LapLai
Me.txtQueQuan = A
Me.txtThuongTru = B
......
End If
End Sub
Thay tên table và các Fields cho phù hợp
Thực sự những cái giản đơn và hiện có thì không dùng, lại thích tự làm khó mình
Public Function Laplai()
Dim DB As DAO.Database
Dim T As DAO.Recordset
Dim A As Variant
Set DB = CurrentDb
Set T = DB.OpenRecordset("NKT1", dbOpenDynaset)
If T.RecordCount > 0 Then T.MoveLast
A = T.QUEQUAN
End Function
Private Sub QUEQUAN_AfterUpdate()
If IsNull(Me.QUEQUAN.Text) Then
Call Laplai
Me.QUEQUAN.Text = A
End If
End Sub
Xuân Thanh > 19-05-20, 11:16 AM
cpucloi > 19-05-20, 11:20 AM
doandinhtam > 19-05-20, 11:26 AM
(19-05-20, 11:20 AM)cpucloi Đã viết: Không biết cái này có đúng ý bạn không?dữ liệu của mình nó lại khác bạn ah. nó không cố định theo 1 kiểu nào cả. nó hoàn toàn phụ thuộc vào người thứ 1 như nơi đến, ngày đến, quê quán,....nên mình mới không làm theo kiểu bạn đã hướng dẫn được.
doandinhtam > 19-05-20, 11:27 AM