29 June 2015

VB6 Ms. Access: Import dari CSV File - Part 1


Setelah bahas proses export table Ms. Access ke file csv, import nya gimana?

Proses import agak sedikit lebih menguras pikiran, karena benar-benar harus memperhatikan validasi data. Jika source tidak sesuai maka bisa menimbulkan error.

Tapi di artikel kali ini Rani ignore dulu aja validasi nya, dengan asumsi data yang ada dalam csv file benar2 sesuai.

Bentuk dan kondisi table sebelum proses import:

Kemudian mari kita buat UI nya, Combo1 untuk memuat pilihan delimiter koma atau titik koma. Seperti yang sudah dibahas di proses export delimiter csv tergantung pada regional setting.
Kita juga akan menggunakan koneksi ADO dan recordset ADODB, jadi kita tambahkan referensi nya.
Klik menu Project --> Reference...
Centang pada Microsoft ActiveX Data Object 2.7 Libary kemudian klik OK.

Untuk code kita mulai dengan mendeklarasikan variable-variable yang akan digunakan.
Option Explicit

'Untuk menampilkan CSV
Dim rsTemp As ADODB.Recordset

Dim strFileName As String
Dim fnum As Integer
Dim strFileValue As String
Dim lines() As String
Dim one_line() As String 
Dim num_rows As Long 
Dim num_cols As Long 
Dim r As Long
Dim c As Long

'Koneksi ADO Ms Access
 
Dim oConn As New ADODB.Connection
Dim strConn As String 
Dim rsData As ADODB.Recordset 
Dim SQL As String
Dim i As Integer

Sub procedure untuk membuka koneksi:
Sub Open_Connection()
Set oConn = New ADODB.Connection
oConn.ConnectionString = strConn
oConn.Open
End Sub


Sub procedure untuk menampilkan data table access ke datagrid:
Sub Load_Data()
Open_Connection
Set rsData = New ADODB.Recordset
SQL = "SELECT * FROM Category"
With rsData
    .CursorLocation = adUseClient
    .Open SQL, oConn, adOpenDynamic, adLockOptimistic
    .ActiveConnection = Nothing
End With
Set
DataGrid2.DataSource = rsData
oConn.Close
End Sub


Variable strConn diberi nilai di event form load, kemudian sub Load_Data dipanggil. Pada event ini juga terdapat beberapa code untuk mengatur UI.
Private Sub Form_Load()

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & App.Path & "\latihan.mdb;" & _
          "Persist Security Info=False"
         
Load_Data

Me.Caption = "Import Data Item"
Label1.Caption = "Delimiter"
With Combo1
    .AddItem ","
    .AddItem ";"
    .ListIndex = 0
End With
Text1.Text = ""
Text1.Locked = True
Command1.Caption = "Browse..."
DataGrid1.Caption = "Data CSV"
Command2.Caption = "Begin Import!"
Command2.Enabled = False
DataGrid2.Caption = "Data Access"

End Sub


Data dari file csv disimpan sementara di recodset rsTemp agar dapat ditampilkan di Datagrid dan mempermudah pengolahan selanjutnya. Struktur rsTemp diatur dalam sub procedure Data_Temp.
Sub Data_Temp(arr() As String)

Set rsTemp = New ADODB.Recordset

For i = 0 To UBound(arr)
rsTemp.Fields.Append arr(i), adVarChar, 255, adFldIsNullable
Next

rsTemp.Open
Set DataGrid1.DataSource = rsTemp

End Sub


Lanjut ke part 2 yah....

Click here if you like this article.


0 comments: