TInh ton kho CSDL trên SQL server 200
hadangpr > 17-02-12, 05:07 PM
CSDL trên SQL server 2000 khi mình chạy nút lện tính tồn kho thì báo lỗi tại dòng
Set TonKho = csdl.OpenRecordset("tsoduvattuhanghoa", dbOpenDynaset)
đây là nguyên đoạn code
Function TinhTonKho(THANG, NAM)
Dim csdl As Database, TonKho As ADODB.Recordset, NhapXuat As ADODB.Recordset, SoDu As ADODB.Recordset
Set csdl = CurrentDb()
Set TonKho = csdl.OpenRecordset("tsoduvattuhanghoa", dbOpenDynaset)
Set NhapXuat = csdl.OpenRecordset("txuatnhaptam", dbOpenDynaset)
Set SoDu = csdl.OpenRecordset("qvattutonkho", dbOpenDynaset)
'Xaùc ñònh thaùng, naêm "tröôùc" vaø thaùng, naêm "sau" cuûa thaùng, naêm hieän haønh
If THANG = 1 Then
THANGTRUOC = 12: NAMTRUOC = NAM - 1
Else
THANGTRUOC = THANG - 1: NAMTRUOC = NAM
End If
If THANG = 12 Then
THANGTOI = 1: NAMTOI = NAM + 1
Else
THANGTOI = THANG + 1: NAMTOI = NAM
End If
'Khoùa soá dö tröôùc vaø sau khoùa soá dö hieän haønh
KhoaTruoc = NAMTRUOC & Right("0" & THANGTRUOC, 2)
KhoaHienHanh = NAM & Right("0" & THANG, 2)
KhoaToi = NAMTOI & Right("0" & THANGTOI, 2)
'Thieát laäp laïi giaù trò khôûi ñaàu cho thaùng hieän haønh
TonKho.index = "KHOASD"
TonKho.Seek ">=", KhoaHienHanh
If Not TonKho.EOF Then
Do
If TonKho!KHOASD >= KhoaToi Then Exit Do
TonKho.Close
TonKho![SLDAUKY] = 0: TonKho![TIENDAUKY] = 0: TonKho![SLNHAP] = 0
TonKho![TIENNHAP] = 0: TonKho![SLXUAT] = 0: TonKho![TIENXUAT] = 0
TonKho.Update
TonKho.MoveNext
If TonKho.EOF Then Exit Do
Loop
End If
'Chuyeån soá dö cuoái kyø tröôùc sang ñaàu kyø naøy
If SoDu.RecordCount > 0 Then
Do
If SoDu![KHOASD] >= KhoaHienHanh Then Exit Do
LUUKHOA = SoDu!KHOASD
LUUSOLG = SoDu!SLTON: LUUGTRI = SoDu!TIENTON
LUUVITRI = SoDu.Bookmark
KHOAMOI = KhoaHienHanh & Mid(LUUKHOA, 7)
TonKho.Seek "=", KHOAMOI
If TonKho.EOF Then
TonKho.AddNew: TonKho.Update: TonKho.MoveFirst: TonKho.Close
TonKho!KHOASD = KHOAMOI
TonKho.Update
End If
TonKho.Close
TonKho![SLDAUKY] = LUUSOLG: TonKho![TIENDAUKY] = LUUGTRI
TonKho![SLNHAP] = 0: TonKho![TIENNHAP] = 0
TonKho![SLXUAT] = 0: TonKho![TIENXUAT] = 0
TonKho.Update: 'TonKho.Bookmark = LUUVITRI
TonKho.MoveNext: SoDu.MoveNext
If SoDu.EOF Then Exit Do
Loop
End If
'Xöû lyù caùc soá lieäu phaùt sinh trong thaùng
If NhapXuat.RecordCount > 0 Then
NhapXuat.MoveFirst
Do Until NhapXuat.EOF
KHOACHINH = KhoaHienHanh & "-" & NhapXuat!makho & "-" & NhapXuat!MAHH
TonKho.Seek "=", KHOACHINH
If TonKho.EOF Then
TonKho.AddNew: TonKho.Update: TonKho.MoveFirst: TonKho.Close
TonKho!KHOASD = KHOACHINH
TonKho![SLDAUKY] = 0: TonKho![TIENDAUKY] = 0: TonKho![SLNHAP] = 0
TonKho![TIENNHAP] = 0: TonKho![SLXUAT] = 0: TonKho![TIENXUAT] = 0
TonKho.Update
End If
TonKho.Close
If NhapXuat!mact = "01PN" Then
TonKho!SLNHAP = TonKho!SLNHAP + NhapXuat!SOLUONG
TonKho!TIENNHAP = TonKho!TIENNHAP + NhapXuat!tien
Else
TonKho!SLXUAT = TonKho!SLXUAT + NhapXuat!SOLUONG
TonKho!TIENXUAT = TonKho!TIENXUAT + NhapXuat!tien
End If
TonKho.Update
NhapXuat.MoveNext
Loop
End If
If NhapXuat.RecordCount > 0 Then
NhapXuat.MoveFirst
Do Until NhapXuat.EOF
NhapXuat.Delete
NhapXuat.MoveNext
Loop
End If
TonKho.Close: NhapXuat.Close: SoDu.Close
Set csdl = Nothing
End Function