tranthanhan1962 > 06-07-23, 12:23 PM
ongke0711 > 06-07-23, 01:05 PM
(06-07-23, 12:23 PM)tranthanhan1962 Đã viết: Có bạn nào gặp trường hợp như tôi: Lúc trước tôi toàn làm việc với microsoft dao 3.6 object library nên thiết đặt dao 3.6 chay trên access 2019 64 bit mấy phần mềm viết trên mbd chuyển sang accbd chạy cũng Ok Vừa rồi tôi thêm microsoft office 16 access database engine object library trong reference thì mầy thằng chạy DAO bị lỗi do xung đột. Tôi bỏ check trong reference nó cũng vẫn còn bị lỗi. mở database mới thì thấy nó check sẳn microsoft office 16 access database engine object library trong reference. bỏ check nó check microsoft dao 3.6 object library thì nó vẫn Ok, nhưng viết code DAO vẫn báo lỗi. Có cách này xử lý cho microsoft office 16 access database engine object library không default trong reference không hoặc làm sao cho 2 thàng này khong xung đột nhau không. Tôi thử gỡ office rồ cài lại nhưng vẫn không được. Hay là nó buột phải cài lại win. Bạn nào có kinh nghiệm vụ này hỗ trợ dùm.
tranthanhan1962 > 06-07-23, 01:29 PM
ongke0711 > 06-07-23, 01:46 PM
tranthanhan1962 > 06-07-23, 03:01 PM
Sub NXT()
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE NHAPXUATTONHANGHOA.* FROM NHAPXUATTONHANGHOA;"
DoCmd.RunSQL "INSERT INTO NHAPXUATTONHANGHOA SELECT NhapXuatTon04.* FROM NhapXuatTon04;"
DoCmd.SetWarnings True
Dim dbs As Database
Dim rsTable As Recordset
Dim SLNhap, GTNhap, SLXuat, GTXuat, SLTonDau, GTTonDau, SLTonCuoi, GTTonCuoi, BQGQ As Double
Dim HANGHOA As String
Set dbs = CurrentDb
Set rsTable = dbs.OpenRecordset("NHAPXUATTONHANGHOA", DB_OPEN_DYNASET)
SLTonCuoi = 0
GTTonCuoi = 0
HANGHOA = ""
rsTable.MoveFirst
Do While Not rsTable.EOF
rsTable.Edit
If rsTable![TENHANG] = HANGHOA Then
GTTonDau = GTTonCuoi
SLTonDau = SLTonCuoi
rsTable![GTD] = GTTonDau
rsTable![SLD] = SLTonDau
Else
GTTonDau = 0
SLTonDau = 0
rsTable![GTD] = GTTonDau
rsTable![SLD] = SLTonDau
End If
GTNhap = rsTable![GTN]
SLNhap = rsTable![SLN]
SLXuat = rsTable![SLX]
If GTTonDau + SLNhap = 0 Then
BQGQ = 0
rsTable![BQGQ] = BQGQ
Else
BQGQ = (GTTonDau + GTNhap) / (SLTonDau + SLNhap)
rsTable![BQGQ] = BQGQ
End If
GTXuat = rsTable![BQGQ] * rsTable![SLX]
rsTable![GTX] = GTXuat
GTTonCuoi = GTTonDau + GTNhap - GTXuat
SLTonCuoi = SLTonDau + SLNhap - SLXuat
rsTable![GTT] = GTTonCuoi
rsTable![SLT] = SLTonCuoi
HANGHOA = rsTable![TENHANG]
rsTable.Update
rsTable.MoveNext
Loop
End Sub
Sub NXT()
Dim conn As Object
Dim cmd As Object
Dim rsTable As Object
Dim SLNhap, GTNhap, SLXuat, GTXuat, SLTonDau, GTTonDau, SLTonCuoi, GTTonCuoi, BQGQ As Double
Dim HANGHOA As String
'Khởi tạo kết nối với CSDL
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= HETHONG.accbd.accdb;"
'Khởi tạo đối tượng Command
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
On Error Resume Next
'Xóa dữ liệu trong bảng NHAPXUATTONHANGHOA
cmd.CommandText = "DELETE FROM NHAPXUATTONHANGHOA;"
cmd.Execute
'Chèn dữ liệu từ bảng NhapXuatTon04 vào NHAPXUATTONHANGHOA
cmd.CommandText = "INSERT INTO NHAPXUATTONHANGHOA SELECT * FROM NhapXuatTon04;"
cmd.Execute
On Error GoTo 0
'Mở Recordset
Set rsTable = CreateObject("ADODB.Recordset")
rsTable.Open "NHAPXUATTONHANGHOA", conn, 2, 2
SLTonCuoi = 0
GTTonCuoi = 0
HANGHOA = ""
rsTable.MoveFirst
Do While Not rsTable.EOF
rsTable.Edit
If rsTable.Fields("TENHANG").Value = HANGHOA Then
GTTonDau = GTTonCuoi
SLTonDau = SLTonCuoi
rsTable.Fields("GTD").Value = GTTonDau
rsTable.Fields("SLD").Value = SLTonDau
Else
GTTonDau = 0
SLTonDau = 0
rsTable.Fields("GTD").Value = GTTonDau
rsTable.Fields("SLD").Value = SLTonDau
End If
GTNhap = rsTable.Fields("GTN").Value
SLNhap = rsTable.Fields("SLN").Value
SLXuat = rsTable.Fields("SLX").Value
If GTTonDau + SLNhap = 0 Then
BQGQ = 0
rsTable.Fields("BQGQ").Value = BQGQ
Else
BQGQ = (GTTonDau + GTNhap) / (SLTonDau + SLNhap)
rsTable.Fields("BQGQ").Value = BQGQ
End If
GTXuat = rsTable.Fields("BQGQ").Value * rsTable.Fields("SLX").Value
rsTable.Fields("GTX").Value = GTXuat
GTTonCuoi = GTTonDau + GTNhap - GTXuat
SLTonCuoi = SLTonDau + SLNhap - SLXuat
rsTable.Fields("GTT").Value = GTTonCuoi
rsTable.Fields("SLT").Value = SLTonCuoi
HANGHOA = rsTable.Fields("TENHANG").Value
rsTable.Update
rsTable.MoveNext
Loop
'Đóng Recordset
rsTable.Close
'Đóng kết nối
conn.Close
'Giải phóng bộ nhớ
Set rsTable = Nothing
Set cmd = Nothing
Set conn = Nothing
End Sub
ongke0711 > 06-07-23, 03:19 PM
Dim dbs As DAO.Database
Dim rsTable As DAO.Recordset
Set rsTable = dbs.OpenRecordset("NHAPXUATTONHANGHOA", DbOpenDynaset)