Oh gitu. Maksud saya, kenapa tabel tidak dibuat berupa 2 kolom bernama Nomor (kolom1) dan jawab(kolom2). Jadi data setiap nomor akan jadi 1 record alias sekali input akan ada penambahan 50 record.
Wassalam, Kid. On Dec 25, 2012 9:18 AM, "Adi" <[email protected]> wrote: > ** > > > kalau yang itu, sudah saya coba pak,dan alhmdlillah sukses. kodenya > seperti ini: > > dim myField as String > dim myInt as Integer > > With rs > .AddNew > > For myInt = 1 To 50 > myField = myField & IIf(IsNull(Range("F" & myInt)) Or Range("F" & myInt) = > "", "0", Range("F" & myInt)) > Next > > .Fields("Jawaban") = myField > .Update > End With > > --- In [email protected], "Mr. Kid" <mr.nmkid@...> wrote: > > > > Sama-sama. > > > > Kalau boleh bertanya, apakah mungkin jika tabelnya diubah menjadi > memiliki > > kolom Nomor dan Jawaban (2 kolom) saja ? > > > > Wassalam, > > Kid. > > > > 2012/12/24 Adi <abduhsuryadi@...> > > > > > ** > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

