Pak Adi,
Pada bagian :
rs.AddNew
*rs!Answer1 *= Range("A1")
rs!Answer2 = Range("A2")
rs!Answer3 = Range("A3")
'and soon....
rs.Update
Coba ubah menjadi :
dim lIdx as long
with rs
.AddNew
*for lidx =1 to 50
.fields("Answer" & lidx).value *= Range("A" & lidx).value
next lidx
.Update
end with
Wassalam,
Kid.
2012/12/24 Adi <[email protected]>
> **
>
>
> Saya mempunyai database access bernama: jawaban di yang ada di folder
> c:\folder\. dalam database ini ada table namanya: myTable yang mempunyai
> lebih dari 50 field. saya namakan field itu: jawaban1,jawaban2,jawaban3
> sampai jawaban50. saya ingin menambahkan data dari excel yang ada di range
> A1 sampai range A50 table tersebut. dengan perincian:
> A1 ke jawaban1
> A2 ke jawaban2
> A3 ke jawaban3
> A4 ke jawaban4 dst.
> Kode saya jadi terlihat seperti di bawah ini:
>
> Sub MasukkanData()
> Dim sSQL As String
> Dim rs As ADODB.Recordset
> Dim cn As ADODB.Connection
>
> Set cn = New ADODB.Connection
> cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
> Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security Info=False"
>
> Set rs = New ADODB.Recordset
>
> sSQL = "myTable"
> rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
>
> rs.AddNew
> rs!Answer1 = Range("A1")
> rs!Answer2 = Range("A2")
> rs!Answer3 = Range("A3")
> 'and soon....
> rs.Update
>
> rs.Close
>
> Set rs = Nothing
> cn.Close
>
> Set cn = Nothing
> End Sub
>
> Gimana cara menyederhanakan kode tersebut agar tidak terlalu panjang?
> saya mencoba pakai for next seperti di bawah ini, tapi excel tidak mau
> menerimanya.
>
> For i=1 to 40
> rs!answer & i = range("A" & i)
> next
>
>
>