Great! it works. Thanks so much Mr. Kid :)
--- In [email protected], "Mr. Kid" <mr.nmkid@...> wrote:
>
> 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 <abduhsuryadi@...>
>
> > **
> >
> >
> > 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
> >
> >
> >
>