/* */

Thursday, December 1, 2011

Bls: [belajar-access] Jalankan proses dengan VBA untuk semua record sekaligus

Terima kasih banyak atas sarannya bang Aksan dan MDone...
 
Best Regard's
Budi Suryadi


Dari: Aksan Kurdin <aksan.kurdin@gmail.com>
Kepada: belajar-access@yahoogroups.com
Dikirim: Minggu, 27 November 2011 9:11
Judul: Re: [belajar-access] Jalankan proses dengan VBA untuk semua record sekaligus

penggunaan blok select case bisa diganti dengan fungsi choose:

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




--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

No comments:

Post a Comment