Terima kasih bang Aksan atas penjelasan nya yg cukup detil dan jelas, aplikasi berjalan cukup baik sesuai harapan
----- Original Message ----- From: Aksan Kurdin To: [email protected] Sent: Monday, 10 May, 2010 5:03 PM Subject: Re: [belajar-access] Re:Mohon Review [1 Attachment] [Attachment(s) from Aksan Kurdin included below] Saya coba kasih alternatif, agar bisa lebih fleksibel, tidak tergantung pada hard-code untuk mengatur waktu bunyi-nya, tetapi bisa kita ubah2 di tabel tblRings. di frmRings anda akan menemukan kode berikut: Private Sub Form_Open(Cancel As Integer) LoadRings End Sub Saat form di buka, sub loadrings dipanggil. Isinya adalah: Sub LoadRings() Dim rs As ADODB.Recordset Dim cnn As ADODB.Connection Set cnn = CurrentProject.Connection Set rs = New ADODB.Recordset rs.Open "SELECT jam, sound, textcaption, SpecialDay FROM tbl_Rings", cnn, adOpenStatic, adLockReadOnly arrRings = rs.GetRows maxRow = UBound(arrRings, 2) maxCol = UBound(arrRings, 1) rs.Close Set rs = Nothing Set cnn = Nothing End Sub Anda harus memiliki pengetahuan tentang ADO di sini. Saya ambil semua records setingan bunyi dari tabel, lalu simpan di array. Tujuannya agar event timer dari form baca data dari memory, bukan dari tabel di harddisk. Yang terpenting dari kode di atas adalah rs.GetRows, yang akan memindahkan isi tabel ke array. Setelah itu, di setiap on timer form, kode ini akan dijalankan: Private Sub Form_Timer() Dim waktu As Date Dim i As Integer waktu = Now() Me.txtWaktu = Format(waktu, "hh:nn:ss") i = GetRowIndek(waktu) If i <> -1 Then Me.txtRemarks = arrRings(2, i) If arrRings(1, i) <> "" Then Playsound CurrentProject.Path & "\" & arrRings(1, i) End If End If End Sub Fungsi GetRowIndek akan mencari di memory, array baris ke berapa yang waktunya ada dalam list. Jika ada, maka txtRemarks akan diset caption/text-nya, dan wav akan dibunyikan. Isi GetRowIndek cukup rumit, coba pelan2 di pelajari: Function GetRowIndek(waktu As Date) Dim row As Integer For row = 0 To maxRow If Format(waktu, "hh:nn:ss") = Format(arrRings(0, row), "hh:nn:ss") Then If arrRings(3, row) <> "" Then If Format(waktu, "dddd") = arrRings(3, row) Then GetRowIndek = row Exit Function End If Else GetRowIndek = row Exit Function End If End If Next row GetRowIndek = -1 End Function aksan kurdin On 5/10/2010 9:40 AM, Cowok Bager wrote: Saya membuat program yang berfungsi sebagai pengganti bel yang akan berbunyi pada saat jam masuk,istirahat,selesai istirahat,pulang dan tidak akan berbunyi pada hari2 yang sudah ditentukan dalam tabel kalender karena pengetahuan saya yang masih sangat kurang, program saya terasa terlalu panjang, saya mohon reviewnya dari para pakar disini,terimakasih sebelum nya.

