function namahari(noHari as integer) as string
namahari = choose(noHari,"Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu")
end function
calculated field di tabel sebenarnya melanggar normalisasi, tetapi bisa dianggap sebagai view. Jadi tidak perlu lagi buat calculated field di querynya.
aksan kurdin
On 11/25/2011 7:11 PM, Morina Done wrote:
Bung Bud,
kalau byk kondisinya … bisa juga bikin function utk update field di tabelnya lewat DAO.
Ini dibawah contoh ya, applicable dengan data "Hari" di email sblmnya. Utk kebutuhan kembangin ndiri ya. Good luck!
Function getHaree()
Dim rst As DAO.Recordset
Dim strHaree As String
Set rst = CurrentDb.OpenRecordset("SELECT TAbsen.TimeIn, TDetail.Hari FROM TAbsen INNER JOIN TDetail ON TAbsen.Nomor = TDetail.Nomor")
rst.MoveFirst
Do While rst.EOF = False
Select Case Weekday(rst!TimeIn)
Case Is = 1
strHaree = "Sunday"
Case Is = 2
strHaree = "Monday"
Case Is = 3
strHaree = "Tuesday"
Case Is = 4
strHaree = "Wednesday"
Case Is = 5
strHaree = "Thursday"
Case Is = 6
strHaree = "Friday"
Case Is = 7
strHaree = "Saturday"
End Select
rst.Edit
rst!Hari = strHaree
rst.Update
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Function
Trus di button on click nya tinggal manggil function ini
Private Sub Command11_Click()
getHaree
Me.Requery
End Sub
daagh
MDone
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of budi suryadi
Sent: Thursday, 24 November, 2011 3:03 PM
To: belajar-access@yahoogroups.com
Subject: Bls: [belajar-access] Jalankan proses dengan VBA untuk semua record sekaligus
Sebelumnya terima kasih atas sarannya bang MDone,
sudah saya coba dan untuk kasus tersebut berhasil dengan cara yg bang MDone sarankan,
saya memang sengaja hasilnya di store ke dalam field krn berikutnya field tersebut akan diproses lagi
tetapi masih ada kendala nih bang, bagaimana klo syarat dan kondisinya cukup banyak, misalkan :
NILAI = IIF (A=1 and B=1 and C=1,"Luar Biasa",IIF((A=1 and B=1 and C=0) or (A=1 and B=0 and C=1) or (A=0 and B=1 and C=0),"Memuaskan",dst..)
saya sudah coba dengan cara yang sama dan dengan cara call procedure tp masih belum berhasil, mohon sarannya...
Best Regard's
Budi Suryadi
Dari: Morina Done <morina.done@yahoo.co.id>
Kepada: belajar-access@yahoogroups.com
Dikirim: Rabu, 23 November 2011 22:39
Judul: RE: [belajar-access] Jalankan proses dengan VBA untuk semua record sekaligus
Bung Budi;
Ini mo ngambil HARI nya si TimeIn kan?
Kenapa harus di store ke dalam field? Kalau hanya utk sekedar information TimeIn itu hari apa, kalo bole saran bisa pake unbound saja.
Di Hari textbox nya, control source nya di set =[TimeIn] trus format nya dddd (d untuk day, kalau d-nya empat akan menampilkan nama hari secara lengkap) ga pake vba code dan button.
Tapi kalau mau di store juga ke dalam field, pake access berapa? Kalau 2010, ada type baru namanya Calculated field, bisa pake itu.
Atau, kalo pake 2003 atau masih mau teteup lewat button yang langsung update seluruh recordsnya HARI sesuai dengan hari di TimeIn, bisa pake sql.
Di btn on click Code nya
CurrentDb.Execute "UPDATE TAbsen INNER JOIN TDetail ON TAbsen.Nomor = TDetail.Nomor " & _
"SET TDetail.Hari = IIf(Weekday([TimeIn])=1,'Sunday',IIf(Weekday([TimeIn])=2,'Monday'," & _
"IIf(Weekday([TimeIn])=3,'Tuesday',IIf(Weekday([TimeIn])=4,'Wednesday',IIf(Weekday([TimeIn])=5,'Thursday'," & _
"IIf(Weekday([TimeIn])=6,'Friday',IIf(Weekday([TimeIn])=7,'Saturday','')))))))"
Me.Requery
Banyak sih jalan menuju roma ….
Semoga bermanfaat.
MDone
From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com] On Behalf Of budi suryadi
Sent: Wednesday, 23 November, 2011 4:58 PM
To: belajar-access
Subject: [belajar-access] Jalankan proses dengan VBA untuk semua record sekaligus [1 Attachment]
[Attachment(s) from budi suryadi included below]
Selamat Sore teman-teman access..
Saya sedang mencoba membuat database, tetapi menemui kendala
Misalnya saya punya dua buah tabel yang dihubungkan dengan relasi, dan satu buah query yang dibuat dari 2 buah tabel tersebut.
Kemudian saya membuat sebuah form dari data query tadi, dengan sebuah button yang berisi perintah berikut :
Private Sub Command11_Click()
Dim HarTemp As Integer
Dim Bulan As Integer
HarTemp = Weekday([TimeIn])
Select Case HarTemp
Case Is = 1
Hari.Value = "Sunday"
Case Is = 2
Hari.Value = "Monday"
Case Is = 3
Hari.Value = "Tuesday"
Case Is = 4
Hari.Value = "Wednesday"
Case Is = 5
Hari.Value = "Thursday"
Case Is = 6
Hari.Value = "Friday"
Case Is = 7
Hari.Value = "Saturday"
End Select
Tgl.Value = DateValue(TimeIn.Value)
Jam.Value = TimeValue(TimeIn.Value)
End Sub
Yang ingin saya tanyakan bagaimana caranya agar ketika button proses diclick, maka perintah tersebut langsung berjalan
pada setiap record yang ada, sehingga saya tidak perlu berpindah record lalu klik button, lalu pindah record lagi dan klik button lagi...?
Apabila saya coba langsung bikin dengan query alhamdulillah bisa, tapi bagaimana caranya bila dengan code vba seperti di atas ?
Untuk lebih jelasnya saya lampirkan contoh databasenya...sebelumnya saya ucapkan terima kasih
Best Regard's
Budi Suryadi
Tidak ada komentar:
Posting Komentar