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:
[Attachment(s) <#TopText> from Cowok Bager included below]
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.