chihienphuco > 13-01-11, 06:00 PM
Trích dẫn:Private Sub HDMOI_Click()
DoCmd.GoToRecord , , acNewRec
Dim CSDL As Database, TBL As Recordset
Set CSDL = CurrentDb
Set TBL = CSDL.OpenRecordset("T10 HDMAIN", dbOpenSnapshot)
If TBL.RecordCount <> 0 Then
TBL.MoveLast
MAQLHD = Format(Val(TBL!MAQLHD) + 1, "000000")
Else
MAQLHD = "000001"
End If
MADV = "A"
MANV = "A"
DoCmd.RunCommand acCmdSaveRecord
TBL.Close
CSDL.Close
MANV.SetFocus
MANV.Dropdown
End Sub
Noname > 13-01-11, 07:48 PM
cuongtuyetcz > 13-01-11, 08:15 PM
(13-01-11, 06:00 PM)chihienphuco Đã viết: Đoạn Code như sau:
Trích dẫn:Private Sub HDMOI_Click()
DoCmd.GoToRecord , , acNewRec
Dim CSDL As Database, TBL As Recordset
Set CSDL = CurrentDb
Set TBL = CSDL.OpenRecordset("T10 HDMAIN", dbOpenSnapshot)
If TBL.RecordCount <> 0 Then
TBL.MoveLast
MAQLHD = Format(Val(TBL!MAQLHD) + 1, "000000")
Else
MAQLHD = "000001"
End If
MADV = "A"
MANV = "A"
DoCmd.RunCommand acCmdSaveRecord
TBL.Close
CSDL.Close
MANV.SetFocus
MANV.Dropdown
End Sub
Khi nhiều người sử dụng click tạo phiếu mới vẫn hay bị lỗi trùng phiếu, mong hướng dẫn giúp!
Chân thành cám ơn!
chihienphuco > 13-01-11, 10:21 PM
(13-01-11, 07:48 PM)Noname Đã viết: Cho mình hỏi trong form hiện hành, record source có phải là table T10 HDMAIN, hay query trực tiếp from T10 HDMAIN không?
Nếu phải thì mình tính tiếp, không phải thì phải có hàm nào đó update số hóa đơn mới về bảng đó!
Noname > 13-01-11, 10:40 PM
chihienphuco > 14-01-11, 12:11 PM
(13-01-11, 10:40 PM)Noname Đã viết: Vậy khi mình nhấn nút HDMOI, là trong bảng T10 HDMAIN đã xuất hiện số hóa đơn đó rồi?Theo huynh gợi ý là lỗi ko load dữ liệu mới khi Form đã mở nên em thêm câu lệnh làm mới Me.requery
vì mấy cái này phải test nhiều nhiều ở nhiều trường hợp, như khi mình click HDMOI, thì qua máy khác đang mở chương trình, mở bảng T10 HDMAIN, xem đã thấy số hóa đơn đó có chưa! Nếu chưa có thì mình phải làm sao cho ở máy ngang hàng nhận biết, Vì mình cũng chưa gặp trường hợp tương tự nên cũng mò vậy thôi!
chihienphuco > 14-02-11, 04:21 PM
hai2hai;240792 Đã viết:Bạn chọn trường ID là kiểu AutoNumber
Giả sử có 1 chứng từ có phần header như thế này:
ID (PK - AutoNumber)
TransNo (Unique Index)
TransRef
TransDate
.....
Hoặc bảng Inventory_Item bạn làm thế này:
ID (PK - AutoNumber)
ItemCode (Unique Index)
ItemName
ItemCategoryID (FK)
....
Tất cả các bảng quan hệ với nhau thông qua trường ID chứ không nên thông qua trường Code. Trong MS Access, ID nên để là AutoNumber và để hệ thống tự quản lý. Mình ko cần care đến trường đó làm gì. Dĩ nhiên, khi thao tác với bản ghi thì vẫn phải dùng tới trường đó để thao tác (edit, delete...)
Còn bạn muốn cái TransNo (Số hóa đơn tự động tăng) thì bạn viết cái hàm NextText() hoặc IncText() gì đó. Mình ko thể hướng dẫn tiếp cụ thể viết cái hàm đó như thế nào bạn ạ (ở trên forum này cũng có bài liên quan rồi đó)
Noname > 14-02-11, 04:34 PM
(14-02-11, 04:21 PM)chihienphuco Đã viết: Có lẽ mình đã sai từ lúc thiết kế, chắc phải động tay chân đôi chút. Thật mệt mà....Đó cũng là một cách! ID là autonumber thì độ ổn định không phải bàn. Nhưng khuyết điểm của kiểu dữ liệu này là không dùng lại được mà có thể có hiện tượng nhảy cóc theo số phát sinh mới nhất. Bạn cân nhắc xem mình có quan tâm tới giá trị số của chứng từ hay không, nếu có (quan tâm, tỉ như sẽ quay lại vài số trước đó thì buộc phải làm tay thôi, chứ không thể dùng autonumber)
hai2hai;240792 Đã viết:Bạn chọn trường ID là kiểu AutoNumber
Giả sử có 1 chứng từ có phần header như thế này:
ID (PK - AutoNumber)
TransNo (Unique Index)
TransRef
TransDate
.....
Hoặc bảng Inventory_Item bạn làm thế này:
ID (PK - AutoNumber)
ItemCode (Unique Index)
ItemName
ItemCategoryID (FK)
....
Tất cả các bảng quan hệ với nhau thông qua trường ID chứ không nên thông qua trường Code. Trong MS Access, ID nên để là AutoNumber và để hệ thống tự quản lý. Mình ko cần care đến trường đó làm gì. Dĩ nhiên, khi thao tác với bản ghi thì vẫn phải dùng tới trường đó để thao tác (edit, delete...)
Còn bạn muốn cái TransNo (Số hóa đơn tự động tăng) thì bạn viết cái hàm NextText() hoặc IncText() gì đó. Mình ko thể hướng dẫn tiếp cụ thể viết cái hàm đó như thế nào bạn ạ (ở trên forum này cũng có bài liên quan rồi đó)
Huynh noname xem dùm em cách này của huynh hai2hai có chính xác ko? để sửa một lần chạy ổn định. Cám ơn huynh!
chihienphuco > 14-02-11, 04:51 PM