Option Explicit 'DomFootWear-PTM0412'
Dim myPath As String, myMDB As String, tblName As String
Dim ArrHD(), ArrCT(), arrFieldHD(), arrFieldCT(), endR As Long, r As Long, i As Long, k As Long
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Sub TaoHoaDon()
ConvertDataToArr
UpdateToAcc
OpenMdb
End Sub
Sub ConvertDataToArr()
With Sheets("HoaDon")
endR = .Cells(65000, 1).End(xlUp).Row
ArrHD = .Range("A2:K" & endR).Value
End With
With Sheets("ChiTietHD")
endR = .Cells(65000, 1).End(xlUp).Row
ArrCT = .Range("A2:G" & endR).Value
End With
End Sub
Sub OpenMdb()
On Error GoTo 1
ActiveWorkbook.FollowHyperlink myPath & myMDB, NewWindow:=True
Exit Sub
1: MsgBox Err.Description
End Sub
Sub UpdateToAcc()
KetNoi
'Gan ArrHD vao Tbl Hoadon'
tblName = "HoaDon"
rs.Open tblName, cn, 3, 3, adCmdTable
cn.Execute "Delete * from " & tblName
arrFieldHD() = Array("Serie", "SoHD", "Ngay", "nguoimua", "DVmua", "Diachi", "MasoT", "PthucTT", "Thuesuat", "Ghichu", "In")
For i = 1 To UBound(ArrHD)
With rs
.AddNew
For k = 1 To UBound(arrFieldHD) + 1
.Fields(arrFieldHD(k - 1)) = ArrHD(i, k)
.Update
Next k
End With
Next i
rs.Close
'Gan ArrCT vao Tbl ChiTiet'
tblName = "ChiTiet"
rs.Open tblName, cn, 3, 3, adCmdTable
cn.Execute "Delete * from " & tblName
arrFieldCT() = Array("SoHD", "Mhang", "TenHH", "Dvt", "Sluong", "Dgia", "Ttien")
For i = 1 To UBound(ArrCT)
With rs
.AddNew
For k = 1 To UBound(arrFieldCT) + 1
.Fields(arrFieldCT(k - 1)) = ArrCT(i, k)
.Update
Next k
End With
Next i
BoKetNoi
Erase ArrHD(), ArrCT(), arrFieldHD(), arrFieldCT()
End Sub
Sub KetNoi()
GetPath
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=" & myPath & myMDB & ";"
Set rs = New ADODB.Recordset
End Sub
Sub BoKetNoi()
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
Sub GetPath()
myPath = ActiveWorkbook.Path & "\"
myMDB = "InHDNew" & ".mdb"
End Sub