-
Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
hoaianmam4 > 29-04-20, 04:15 PM
Chào mọi người, mình là gà access thui nên nhờ mọi người giúp mình chút, mình muốn tạo một nút lệnh mà khi ấn nút lệnh đó, nó sẽ tự động tạo một record mới (trong form) với STT tăng dần.
Mình sẽ nói về cách mình tạo STT cho record mới nhé:
Mỗi ngày, mình mở access lên làm việc, mình bấm vào nút tạo record mới, một record mới hiện ra, mình sẽ nhập STT thủ công cho record mới đó.
STT của mình là một dãy số có 8 chữ số:
2 số đuôi của năm hiện tại, vd năm 2020 thì sẽ là 20
2 số của tháng hiện tại, vd tháng 4 thì sẽ là 04
2 số của ngày hiện tại, vd ngày 29 thì sẽ là 29
2 số của khách hàng đầu tiên, vd khách hàng đầu tiên sẽ là 01
Vậy là mình sẽ nhập thủ công một STT là: 20042901
Rồi sau đó khi sang khách hàng thứ 2, mình lại nhấn nút tạo một record mới và mình sẽ lại nhập thủ công STT cho record mới đó với 2 số thay đổi trong dãy STT là 01 thành số 02: 20042901 > 20042902
Cứ như vậy với số khách hàng tăng dần cho đến hết ngày 29 đó, sang ngày 30 mình lại lặp lại các thao tác với STT ngày 30 sẽ là: 20043001
Ok, giờ mình sẽ vẫn chấp nhận việc nhập thủ công STT đầu tiên trong ngày làm việc, chỉ mong mọi người giúp tạo một nút lệnh sao cho khi nhấn nút lệnh đó thì một record mới được tạo ra và số của khách hàng tự động tăng dần lên: 20042901 > 20042902 > 20042903 > ...
Cảm ơn mọi người rất nhiều nhé. -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
Xuân Thanh > 29-04-20, 06:57 PM
Test thử code này xem sao nhé
Mã:Private Sub txtNgay_AfterUpdate()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim strSTT As String
strSTT = Right(Year(txtNgay), 2) & Right("0" & Month(txtNgay), 2) & Right("0" & Day(txtNgay), 2)
Set DB = CurrentDb
Set rs = DB.OpenRecordset("Select * From tblABC Where Left(STT, 6) = '" & strSTT & "'", dbOpenDynaset) 'Thay cái tblABC cho phù hợp
If rs.RecordCount > 0 Then Me.txtSTT = strSTT & Right("0" & rs.RecordCount + 1, 2) Else Me.txtSTT = strSTT & "01"
End Sub
Viết đại chưa test nhé
txtNgay và txtSTT là tên các textbox trên Form
STT trong câu SQL là tên trường trong tablse tblABC
Cứ nhập ngày là STT nó tự động làm việc khỏi cần nhập thủ công -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
DooHoaangPhuuc > 29-04-20, 11:57 PM
(29-04-20, 06:57 PM)Xuân Thanh Đã viết: Test thử code này xem sao nhé
Mã:Private Sub txtNgay_AfterUpdate()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim strSTT As String
strSTT = Right(Year(txtNgay), 2) & Right("0" & Month(txtNgay), 2) & Right("0" & Day(txtNgay), 2)
Set DB = CurrentDb
Set rs = DB.OpenRecordset("Select * From tblABC Where Left(STT, 6) = '" & strSTT & "'", dbOpenDynaset) 'Thay cái tblABC cho phù hợp
Me.txtSTT = strSTT & rs.RecordCount + 1
End Sub
Viết đại chưa test nhé
txtNgay và txtSTT là tên các textbox trên Form
STT trong câu SQL là tên trường trong tablse tblABC
Cứ nhập ngày là STT nó tự động làm việc khỏi cần nhập thủ công
Như Code này chưa lặp lại record đầu tiên "XXXXXX01" khi chuyển sang ngày khác Chú XuanThanh ! -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
Xuân Thanh > 30-04-20, 02:43 AM
(29-04-20, 11:57 PM)DooHoaangPhuuc Đã viết: Như Code này chưa lặp lại record đầu tiên "XXXXXX01" khi chuyển sang ngày khác Chú XuanThanh !
Viết đại mà. Phúc Test chưa? Sửa lại cái này một chút cho nó ra hai chữ số trong STT
Sửa câu : Me.txtSTT = strSTT & rs.RecordCount + 1
Thành : Me.txtSTT = strSTT & Right("0" & rs.RecordCount + 1, 2)
P/S :Tôi đã sửa trong bài #2 -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
hoaianmam4 > 01-05-20, 12:47 PM
Bị lỗi gì đó rồi Thanh ơi.
Mình thấy dòng: DB As DAO.Database bị bôi màu xanh, rồi có cái bảng với hình tam giác màu vàng thông báo là: Compile error: User-defined type not defined
Mình làm thế này Thanh xem giúp có đúng không nhé, mình tạo trường txtNgay trong table Bangchinh, add trường txtNgay vào Form, mình sửa đoạn code lại thành:
Private Sub txtNgay_AfterUpdate()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim strMaluutru As String
strMaluutru = Right(Year(txtNgay), 2) & Right("0" & Month(txtNgay), 2) & Right("0" & Day(txtNgay), 2)
Set DB = CurrentDb
Set rs = DB.OpenRecordset("Select * From Bangchinh Where Left(Maluutru, 6) = '" & strMaluutru & "'", dbOpenDynaset) 'Thay cái tblABC cho phù hợp
Me.txtMaluutru = strMaluutru & Right("0" & rs.RecordCount + 1, 2)
End Sub
Sau đó mình copy đoạn code trên vào event After Update của text box txtNgay, rồi vào Form, nhập ngày vào ô txtNgay, enter, và access báo lỗi ở trên đó.
Mình muốn hỏi là mình muốn sang một khách hàng mới thì mình bấm nút lệnh tạo record mới, sau đó nhập ngày vào ô txtNgay thì ô STT tự động hiện ra dãy số phải không. Nếu vậy thì hơi bất tiện, vì mình nghĩ nếu có một nút lệnh tích hợp tạo record mới và tự động tăng dãy STT lên sẽ nhanh hơn là cứ mỗi khách hàng lại phải nhập ngày vào, sorry mình gà access nên đọc đoạn mã cũng không hiểu mấy, mấy bạn thông cảm với nhé -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
Xuân Thanh > 02-05-20, 09:22 PM
Bạn dùng bản Office nào vậy? -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
hoaianmam4 > 04-05-20, 10:44 PM
Mình dùng 2016 bạn. -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
Xuân Thanh > 04-05-20, 11:39 PM
Gửi file lên đi -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
hoaianmam4 > 13-05-20, 10:28 PM
Ủa có ai biết nút đính kèm file ở đâu không @@ Mình thấy toàn mã, php, video... mà không thấy nút đính kèm file -
RE: Nhờ giúp đỡ tạo nút lệnh thêm record mới (trong form) với STT tăng dần
ongke0711 > 14-05-20, 03:54 PM