-
Module cộng trừ số lẻ
vodainhan > 24-11-15, 10:14 PM
Nhờ các bạn xem code này cần chỉnh lại gì để khi chạy sẽ tính toán đúng (cộng, trừ trong Table, có số nguyên và số lẻ).
Table có tên "T_THEKHO_NXT" gồm 3 field NHAP, XUAT, TON. Khi chạy 1 Macro (Action: RunCode, congdon()) thì thực hiện tính toán trong Table trên.
CODE NÀY TÍNH ĐÚNG KHI 2 FILED NHAP, XUAT LÀ SỐ NGUYÊN. NHƯNG SẼ TÍNH SAI KHI CÓ SỐ LẺ.
Option Compare Database
Function congdon()
Dim csdl As Database, hoso As Recordset, tl As Double
Set csdl = DBEngine.Workspaces(0).Databases(0)
Set hoso = csdl.OpenRecordset("T_THEKHO_NXT", DB_OPEN_TABLE)
tl = 0
hoso.MoveFirst
Do Until hoso.EOF
tl = tl + hoso!nhap - hoso!xuat
hoso.Edit
hoso!ton = tl
hoso.Update
hoso.MoveNext
Loop
hoso.Close
End Function -
RE: MODULE CỘNG TRỪ SỐ LẺ
ongke0711 > 24-11-15, 10:33 PM
Các Field Nhap, Xuat, Ton trong table của bạn có data type là Double hay Long Integer? Bạn nên sửa lại là Double.
Trong Access 2007 có một lỗi liên quan vấn đề này là: số lẻ sẽ được làm tròn (lên hoặc xuống) đối với Field có data type là Long Interger nếu dòng đầu tiên được nhập là số nguyên (integer). Lỗi này chưa khắc phục được. -
RE: MODULE CỘNG TRỪ SỐ LẺ
vodainhan > 25-11-15, 08:33 AM
(24-11-15, 10:33 PM)ongke0711 Đã viết: Các Field Nhap, Xuat, Ton trong table của bạn có data type là Double hay Long Integer? Bạn nên sửa lại là Double.
Trong Access 2007 có một lỗi liên quan vấn đề này là: số lẻ sẽ được làm tròn (lên hoặc xuống) đối với Field có data type là Long Interger nếu dòng đầu tiên được nhập là số nguyên (integer). Lỗi này chưa khắc phục được.
data type la Double. Vay ko co cach khac phuc à ban? -
RE: Module cộng trừ số lẻ
ongke0711 > 25-11-15, 12:20 PM
Khắc phục mình nói ở trên là bạn xóa dữ liệu, dòng đầu tiên nhập các số lẻ trước để test.
Data type đổi sang Decimal (nếu Double không chạy đúng) xem chạy ok ko, sau đó đổi lại Double. Đối với mình làm thì nó hiển thị đúng các số lẻ như thực tế. -
RE: Module cộng trừ số lẻ
vodainhan > 25-11-15, 04:09 PM
(25-11-15, 12:20 PM)ongke0711 Đã viết: Khắc phục mình nói ở trên là bạn xóa dữ liệu, dòng đầu tiên nhập các số lẻ trước để test.
Data type đổi sang Decimal (nếu Double không chạy đúng) xem chạy ok ko, sau đó đổi lại Double. Đối với mình làm thì nó hiển thị đúng các số lẻ như thực tế.
OK. Số lẻ, số nguyên đều chạy đúng.
Điều này rất quan trọng trong việc thiết ke 1 chuong trình quản lý, tuy nhiên bị vấp phải vấn đề trên.
so do van hanh the nay: 1 QUERY tạo TABLE như trên, sau đó chạy MACRO runcode tính sô TỒN, mơ REPORT (lay nguon tư Table).
Vấn đề phát hiện là sau mỗi lần chạy dây chuyền như trên thì field TON trọng Table bị sửa lại là Long Interger, không rõ tại sao. (mặc dù truoc do da chinh la Double.)
Theo y kien cua ban, xac dinh Code là khong sai, minh ra soat lai toan bo va thay 1 loi nam trong QUERY khi tao Field TON, va da chinh sua kieu du lieu lai.
Rất cám on ban đã nhiet tinh cho y kien giup do!