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
> > > >
> > > >
> > > >
> > >
> >
> >
> >
>