ductung_dg
Sơ cấp
OK rồi các Bác ơi!
Sửa lần cuối:
Mình biết trong phần make table query có chức năng sort ( chọn Ascending hay Descending ) để số thứ tự tăng dần hay giảm dần . Bạn thử xem có được không ? Thânductung_dg nói:Các bác ơi! Cho em hỏi một chút về access:
Em có một bảng dữ liệu để lưu trữ các thông tin về khách hàng mua hàng để báo cáo hóa đơn bán ra, bảng này gồm nhiều trường, trong đó có 1 trường ghi số hóa đơn, làm cách nào để đánh số hóa đơn vào cho tất cả các khách hàng trong bảng đó một cách tự động tăng dần từ một số bất kỳ (ví dụ: 12345 ... 12346 ... 12347...) sắp xếp theo thứ tự theo sự sắp xếp của bảng đó. Một việc nữa là trong quá trình in ra có thể hỏng một hóa đơn nào đó (ví dụ 12346) khi đó phải in lại và nó tiếp tục điền vào thay cho chỗ bị hỏng là 12347 và các khách hàng tiếp theo sau sẽ là 12348...
Bác nào biết giúp em với! Xin chân thành cảm ơn!
Để áp dụng được code này chắc bạn hiểu rằng SoHD phải được thiết kế là kiểu Number.Private Sub SoHD_GotFocus()
SoHD = DMax("SoHD", "HOADONBANRA") + 1
End Sub
VD table Employees có 2 field:EmployeeID, HireDate
Private Sub Command1_Click()
Dim db As Database
Dim re As Recordset
Dim sa As String
Set db = CurrentDb
sa = "SELECT DISTINCTROW Max(Format([HireDate],'yyyy/mm/dd') & ' - ' & [EmployeeID]) AS SHD FROm Employees;"
Set re = db.OpenRecordset(sa)
If re.BOF And re.EOF Then
sa = "0000001"
Else
sa = Right(re!shd, Len(re!shd) - 13) + 1
End If
Me.SoHoaDon.Value = sa
re.Close
End Sub
Chú ý chỗ max, format, và chỗ cộng thêm 01.
chắc thế này là rõ rồi nhỉ, đối với hóa đơn tự in thì đã có số hóa đơn rồi, nhưng để không bị trên máy 01 số trên hóa đơn là số khác thì report bạn tạo cần in luôn số hóa đơn: nhỏ, mờ ở gần số hóa đơn có sẵn để đối chiếu khi in ra. còn nếu in ra bị hủy thì vào lại form chỉnh nội dung của hóa đơn vừa bị hủy là lý do hủy, có thể dựa trên đó làm thống kê tạo BC Sử Dụng HD
Nếu còn rắc rối thì tiếp tục trao đổi.
Mình đã gửi vào gmail của bạn, bạn check mail đi sẽ rõ> Cảm ơn nha!@ductung_dg: bạn có thể tóm tắt cho mình bảng dữ liệu tên gì và gồm các field nào không? Mình sẽ viết ngay 1 hàm đơn giản để lấy số hóa đơn mới nhất và tạo ra 1 số hóa đơn mới cho bạn.
Hàm trên thiếu vòng lặp lồng vào hàm if ..then ...else ...end chạy từ đầu đến đáy bảng dữ liệu.
sa = "SELECT DISTINCTROW Max(Format([HireDate],'yyyy/mm/dd') & ' - ' & [EmployeeID]) AS SHD FROm Employees;"