vocan > 14-05-16, 11:49 AM
vocan > 14-05-16, 12:09 PM
ongke0711 > 14-05-16, 12:33 PM
Private Sub cmdTaoBang_Click()
Dim db As Database
Dim strSQL As String
Set db = CurrentDb()
strSQL = "CREATE TABLE [" & Me.TextBoxTenBang & "] (FieldPK COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT,Field2 TEXT, Field3 MEMO, Field4 CURRENCY, Field5 NUMBER, Field6 DATE );"
db.Execute strSQL
Set db = Nothing
End Sub
vocan > 29-06-16, 09:01 AM
(14-05-16, 12:33 PM)ongke0711 Đã viết: Tạo bảng mới:
Mã PHP:Private Sub cmdTaoBang_Click()
Dim db As Database
Dim strSQL As String
Set db = CurrentDb()
strSQL = "CREATE TABLE [" & Me.TextBoxTenBang & "] (FieldPK COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, Field1 TEXT,Field2 TEXT, Field3 MEMO, Field4 CURRENCY, Field5 NUMBER, Field6 DATE );"
db.Execute strSQL
Set db = Nothing
End Sub
Bạn tham khảo thêm link này: http://thuthuataccess.com/forum/thread-9257.html
Có dữ liệu mẫu để hướng dẫn cho nhanh.
Private Sub Capnhat_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim dbqf As DAO.QueryDef
Set db = CurrentDb
Set rs = db.OpenRecordset("T_hanghoa")
Set rs1 = db.OpenRecordset("SELECT * FROM T_ChiTietNhap WHERE T_ChiTietNhap.MaPN='" & [Forms]![F_Nhap]![MaPN] & "'")
rs.MoveFirst
rs1.MoveFirst
Do While rs1.EOF = False
Do While rs.EOF = False
'' MsgBox " hang hoa " & rs!mamh & " nhap " & rs1!mahang
If rs!mamh = rs1!mahang Then
rs.Edit
rs!slton = rs!slton + rs1!soluongnhap
rs.Update
End If
rs.MoveNext
Loop
''MsgBox "Nhap" & rs1!mahang
rs1.MoveNext
Loop
rs.Close
rs1.Close
db.Close
End Sub
maidinhdan > 29-06-16, 03:43 PM
(29-06-16, 09:01 AM)vocan Đã viết: Ban xem giup minh đoạn Code :Mã:Private Sub Capnhat_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Dim dbqf As DAO.QueryDef
Set db = CurrentDb
Set rs = db.OpenRecordset("T_hanghoa")
Set rs1 = db.OpenRecordset("SELECT * FROM T_ChiTietNhap WHERE T_ChiTietNhap.MaPN='" & [Forms]![F_Nhap]![MaPN] & "'")
rs.MoveFirst
rs1.MoveFirst
Do While rs1.EOF = False
Do While rs.EOF = False
'' MsgBox " hang hoa " & rs!mamh & " nhap " & rs1!mahang
If rs!mamh = rs1!mahang Then
rs.Edit
rs!slton = rs!slton + rs1!soluongnhap
rs.Update
End If
rs.MoveNext
Loop
''MsgBox "Nhap" & rs1!mahang
rs1.MoveNext
Loop
rs.Close
rs1.Close
db.Close
End Sub
Mục đích của mình dùng để cập nhật tôn kho , Nhưng khi chay nó chỉ cập nhật được record đầu của bảng hàng hóa, vòng lặp trong chỉ thực hiện 1 lân.
Mình mới tập tành nên không biết sai chỗ nào
ban xem giúp mình
Bạn cho mình hỏi thêm , mọi người hay dùng cách nào để cập nhật TK vậy , vì mình thấy cách của mình không được hay á
Cảm ơn nhiều
vocan > 30-06-16, 08:52 AM
(29-06-16, 03:43 PM)maidinhdan Đã viết: Gửi cái file lên đây.Xin lỗi , mình không biết chèn file vào đây , bạn tải về giúp mình theo link
ongke0711 > 30-06-16, 12:19 PM
vocan > 30-06-16, 12:44 PM
(30-06-16, 12:19 PM)ongke0711 Đã viết: Tôi thấy code bạn chạy đúng rồi mà. Để loại trường hợp giá trị tồn = Null thì bạn dùng thêm hàm Nz vào công thức tính tồn.
rs!slton= nz(rs!slton) + nz(rs1!soluongnhap)
Về việc tính tồn kho, cách của bạn sẽ phát sinh sai tồn kho từa lưa khi thực hiện nghiệp vụ nhập liệu trên form.
VD: sau khi nhập và Update xong, muốn vô sửa lại số lượng nhập, tồn kho sẽ tiếp tục thêm số lượng vừa mới sửa chứ nó có biết trừ ra số lượng cũ không?
Bạn cứ test tất cả các trường hợp phát sinh đi sẽ thấy.
Cách tính tồn kho, trên diễn đàn cũng có nhiều bài viết rồi đấy, bạn search rồi tham khảo.
ongke0711 > 30-06-16, 02:49 PM
vocan > 10-07-16, 03:32 PM
(30-06-16, 02:49 PM)ongke0711 Đã viết: Thì tôi đã nói nếu [slton] trong table hàng hóa có giá trị NULL thì code sẽ không cập nhật vì nó không hiểu trị NULL + số lượng nhập = cái gì? các field tính toán không được NULL.
Do vậy, hoặc bạn set default value của field [slton] = 0 (trong table) hoặc dùng hàm Nz cho field tính toán.