Coba di Excel cell hasil copyfrom recordset di atur format number -> custom
-> HH:mm:ss

Kid.

2012/12/26 Adi <[email protected]>

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