tadi maksud saya yang oake cDate sudah sukses pak. terima kasih.

--- In [email protected], "Mr. Kid" <mr.nmkid@...> wrote:
>
> Coba di Excel cell hasil copyfrom recordset di atur format number -> custom
> -> HH:mm:ss
> 
> Kid.
> 
> 2012/12/26 Adi <abduhsuryadi@...>
> 
> > **
> >
> >
> > Terima kasih banyak atas sarannya Mr. saya mengubah sSQL menjadi:
> > "Select *, cDate(Waktu) From Jawaban".
> > kalau saya rinci, maka panjang sekali jadinya, karena table jawaban
> > mempunyai hampir 60 field (atau mgkn ada caranya?).
> > field tanggal bertipe datetime dengan default value Date()
> > sedangkan field waktu bertipe datetime dengan defaultvalue Now().
> > tapi untuk efisiensi, field waktu saya hapus dan field tanggal saya ubah
> > defaultnya ke now().
> >
> > untuk kode yang bapak buat, sudah saya coba, tapi field waktu ternyata
> > tidak bisa menampilkan format waktu, yang terambil hanya tanggalnya saja.
> >
> > sekali lagi, terima kasih banyak atas sarannya pak.
> > wassalam...
> >
> >
> > --- In [email protected], "Mr. Kid" <mr.nmkid@> wrote:
> > >
> > > Hai Adi,
> > >
> > > > field waktu tidak dapat menampilkan format waktu di excel
> > > >> Tipe data tabel di db untuk field waktu apa ya...
> > > Biasanya hasil copyfromrecordset akan tampil di-Excel sesuai tipe
> > datanya.
> > > Apakah tipe data field waktu bukan datetime ?
> > > Jika bukan datetime, bagaimana format penulisan waktu dalam field waktu
> > > tersebut ? (umumnya ditulis dengan format HH:mm:ss)
> > > Bagaimana jika field tanggal dan field waktu dijadikan satu menjadi field
> > > waktu_ujian dengan tipe data datetime ?
> > >
> > > btw, lepas dari semua itu. *
> >
> > > Anggap saja tipe data field waktu dalam db bukanlah bertipe datetime tapi
> > > dalam format waktu HH:mm:ss* dan nama-nama fieldnya adalah
> >
> > >
> > ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> > > serta tetap ingin menggunakan methods copyfromrecordset, coba querynya
> > > diubah menjadi : (query untuk ms access)
> > > SELECT ID,Tanggal,*CDate(*Waktu*) as
> > > jam*,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...,dst
> >
> > >
> > > FROM Jawaban
> > >
> > > Jika akan menggunakan loop dalam menulis ke setiap cell Excel, maka query
> > > masih bisa dengan :
> > > SELECT * FROM Jawaban
> > > kemudian loop dari record pertama sampai record terakhir (EOF)
> > > yang didalamnya menulis semua field per record yang diproses oleh loop.
> > > Jika Excel tetap tidak langsung mengkonversi tipe data field waktu
> > menjadi
> > > bertipe datetime dalam cell, maka lakukan konversi tipe data pada nilai
> > > waktu.
> > > Kira-kira bunyinya seperti ini :
> > >
> > > Dim sSQL As String
> > > Dim rs As ADODB.Recordset
> > > Dim cn As ADODB.Connection
> > > dim lRowOffset as long, lColOffset as long, lFields as long
> > > dim rngAnchor as range
> > >
> > > 'misal hasil query ditulis di sheet bernama Answer dengan header terkiri
> > di
> > > A1
> > > set rngAnchor=sheets("Answer").range("a1")
> > >
> > > 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 = "Select * from Jawaban"
> > >
> > > rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
> > >
> > > if rs.recordcount>0 then
> > > lrowoffset=1
> > > rs.movefirst
> > > lfields=rs.fields.count -1 'index field adalah base 0
> > > do while not rs.eof
> > > with rnganchor
> > > for lcoloffset=0 to lfields
> > > .offset(lrowoffset,lcoloffset).value =
> > > rs.fields(lcoloffset).value
> > > next lcoloffset
> > > end with
> > > lrowoffset=lrowoffset+1
> > > rs.movenext
> > > loop
> > > endif
> > >
> > > rs.Close
> > > Set rs = Nothing
> > > cn.Close
> > > Set cn = Nothing
> > >
> > > > ujian semester menggunakan Excel 2007. ketika menekan tombol selesai,
> > > data jawaban akan tersimpan ke table jawaban.
> > > siswanya berjumlah 700 orang. 1 materi saja mempunyai 50 soal. Fields :
> > >
> > ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> > > >> Biasanya, untuk database yang ingin menampung data seperti demikian,
> > > setidaknya akan dibagi menjadi 3 tabel, yaitu :
> > > 1. Tabel siswa (NoIndukSiswa,Nama,Kelas,no_ujian)
> > > 2. Tabel ujian (IDMateri,Materi,Kelas,TglUjian)
> > > 3. Tabel jawaban (noUjian,IDMateri,NoIndukSiswa,TglKumpul,NoSoal,Jawaban)
> > > Kunci jawaban disimpan dengan NoUjian 0.
> > > Komputasi mengkalkulasi nilai jawaban bisa dilakukan dengan klausa JOIN
> > > Komputasi menyusun data source untuk output (fact table) juga disusun
> > > dengan klausa JOIN
> > > Biasanya menampilkan jawaban para siswa beserta nilai masing-masing
> > > dilakukan per materi dan jarang untuk seluruh materi sekaligus.
> > >
> > > asumsi ada 20 materi per kelas dan ada 100 kelas dengan ujian per materi
> > > sebanyak 5 kali dalam 2 semester, akan ada 700M record.
> > > Kadang data seperti tabel jawaban dibagi menjadi data per kelas per
> > > semester (andai database engine tidak memiliki kemampuan membuat partisi
> > > data).
> > > Maka jumlah record sekitar 3.5M. Sepertinya MS Access masih mampu untuk
> > > record sebanyak 3.5M
> > > Excel dengan 1M baris per sheet, digunakan untuk menampilkan output per
> > > materi. Andai saja juga ditampilkan per ujian, maka jumlah record sekitar
> > > 35K.
> > > Seluruh proses komputasi diusahakan dilakukan pada sisi database dan
> > > sesedikit mungkin yang dikomputasi oleh Excel.
> > >
> > > Andai field dibuat berorientasi horisontal seperti yang ada sekarang,
> > > komputasi yang dilakukan disisi database akan membutuhkan kalimat query
> > > yang relatif panjang.
> > >
> > > Wassalam,
> > > Kid.
> > >
> > >
> > > 2012/12/25 Adi <abduhsuryadi@>
> > >
> > > > **
> >
> > > >
> > > >
> > > > Sebenarnya database access ini bertujuan untuk menampung jawaban
> > > > santriwati di pondok saya yang ujian semester menggunakan Excel 2007.
> > > > Setiap santriwati ketika menekan tombol selesai, data jawaban mereka
> > > > akan tersimpan ke table jawaban.
> > > > kalau jawaban dibuat menjadi record tersendiri, dapat dibayangkan
> > berapa
> > > > record yang akan terbentuk jika siswanya berjumlah 700 orang. padahal 1
> > > > materi saja mempunyai 50 soal.
> > > >
> > > > lebih lengkapnya desain field table jawaban seperti ini:
> > > >
> > ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\
> > > > dst
> > > >
> > > > Izinkan saya untuk bertanya lagi Mr... sya menulis kode berikut untuk
> > > > mengambil kembali data yang ada di access ke excel menggunakan
> > > > copyfromrecordset. yang jadi masalah adalah, field waktu tidak dapat
> > > > menampilkan format waktu di excel, hanya tanggal saja yang ada di field
> > > > waktu.
> > > > Minta pencerahannya...wassalam.
> > > >
> > > > Sub DapatkanData()
> > > >
> > > > 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 = "Select * from Jawaban"
> > > >
> > > >
> > > > rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
> > > >
> > > > Cells(5, 2).CopyFromRecordset rs
> > > >
> > > >
> > > > rs.Close
> > > > Set rs = Nothing
> > > > cn.Close
> > > > Set cn = Nothing
> > > > End Sub
> > > >
> > > > --- In [email protected], "Mr. Kid" wrote:
> > > > >
> > > > > 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" abduhsuryadi@ 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.
> > > > > > >
> > > >
> > > >
> > > >
> > >
> >
> >  
> >
>


Kirim email ke