Jumat, 23 November 2012

Re: [belajar-access] Front End - Fully Unbound

Bismillahhirrohmanirrohim...
 
Menambahi lagi...
 
Untuk mempermudah dan mempercepat bahasa pemrograman, lebih baik nama textbox di form diberi nama sama+angka (mulai dari 0).
 
Contoh R0, R1, R2, dst.
 
Kenapa dari 0, ini terkait dengan field record yang dimulai dari 0. Contoh kongkret begini: Kita punya tabel bernama tb, yang terdiri dari 20 field. Kita ingin tampilkan 1 record untuk semua field. Maka, kita buat form (katakanlah namanya form1) dengan nama textbox R0 sampai R19. Scriptnya:
 
Set rsp = conn.Execute("SELECT * from tb limit 0,1")
If Not rsp.EOF Then
     For i = 0 To 19
         Me("R" & i) = rsp.Fields(i)
    next i
end if
 
Dengan script ini, kita bisa menghemat bahasa. Tidak perlu menulis:
 
R0 = rsp.Fields(0)
R1 = rsp.Fields(1)
dst..
 
Untuk penggunaan di report-pun bisa menjadi lebih simpel. Kita buat textbox unbound di report dengan nama sama, recordsource kosong. Misal R0 sampai dengan R19 (sebagaimana pada contoh).
 
Selanjutnya kita beri event sewaktu report dibuka:
 
Private Sub Report_Open(Cancel As Integer)
Dim i As Integer
    For i = 0 To 19
        Me("R" & i).ControlSource = "=Forms!form1!R" & i
    Next i
   
End Sub
 
Bila kita membuka report secara langsung (form1 tidak terbuka), hasil text box report akan menjadi #name?. Namun bila kita membuka form1 terlebih dahulu (ini kita letakkan sebagai preview untuk cetak), terus kita mengklik command button (misalnya Command272) yang isi scriptnya:
 
Private Sub Command272_Click()
    If R0 = "" Or IsNull(R1) Or R0 = 0 Then
        MsgBox "TIDAK ADA DATA YANG AKAN DICETAK", , "NO DATA"
       
    Else
        DoCmd.OpenReport "NERACA_REPORT", acViewNormal
    End If
End Sub
 
Maka, data yang ada di form1 akan tercetak.
 
Jadi, untuk mencetak data yang sudah ada di form kita tidak perlu me-load ulang data ke report.
 
Semoga bisa membantu dan memberi semangat.
 
Hariyanto (Surabaya)
 
 

--- On Thu, 22/11/12, darsono72@yahoo.com <darsono72@yahoo.com> wrote:

From: darsono72@yahoo.com <darsono72@yahoo.com>
Subject: [belajar-access] Front End - Fully Unbound [2 Attachments]
To: belajar-access@yahoogroups.com
Date: Thursday, 22 November, 2012, 7:04 PM

 
Hallo para master Ms-Access dan semua pencinta MS-Access.
Ktemu lagi, dan kirim e-mail lagi,
Selama ini hanya sebagai penyimak setia ...
 
Setelah cukup lama ngoprek ms-access dengan modal nekat Ala Rambo,
Dan selalu mengikuti petunjuk para suhu di sini, Alhamdulillah beberapa pencapain sdh di raih yang pasti untuk saya pribadi merupakan Prestasi besar.
 
Sudah lebih dari dua tahun ini Aplikasi yang saya bangun di kantor dengan terengah-engah sudah berjalan dengan cukup lancar,
FE MS-Access dengan BE MySQL system Link Table ODBC di akses dari dua tempat berbeda dan berjauhan. Server Ada di Co-Location.
 
Seiring berjalannya waktu, dan kadang terdengar keluhan dari user katanya "System Agak Lemod" saya pun merasa tertantang (dengan mencoba ke lain hati .... ) ehhhh ternyata akhirnya kembali lagi membuka arsip2 Millis Access, yg mengupas masalah unbound form ...
Nah nemu tulisan cak Hari yanto (matur nuwun cak ) .......
Di pelototin...., copy paste...., try and error....
Alhamdulillah berhasil membuat sebuah Form fully UnBound.... Dengan beberapa Combo Box, Master dan Detail Form  yang Ada dalam satu Form.....
Yuuuuhhhhhhhuuuuuuuuu .........Yessssssssss............................
 
Tentunya sampai menghasilkan beberapa hal yang baru tadi, Ada banyak hal yang ingin saya tanyakan kepada para suhu Dan master di sini.
-1. Kerepotan pertama pada saat membuat Form atau meng-copy Form yang sudah jadi untuk di buat form lain saya harus mengganti nama Field(textBox) satu persatu
     Misalnya Kita memiliki 8 Kolom dan 10 Baris (seperti form Main Order) maka yang saya lakukan merename 80 TextBox satu-persatu.
    --->>>> pertanyaannya adakah cara lain dan yang lebih cepat Dan di sarankan?


-2. Untuk ComboBox, saya bermasalah pada saat pilihan dari ComboBox itu Ribuan..... Sebagai contoh saya hanya berhasil memasukan data untuk di pilih sebanyak 2200 .... (Select ....... From ...... Limit 2200) di atas angka itu di bilang too long .....

Akhir saya akali memfilter dulu dengan ComboBox (cust_id) yg lainnya menjadi :
    Set rsp = conn.Execute("select DISTINCT delivery_id" _
        & " from tblPPIC_Delivery where invoicing2=0 AND cust_id='" & cust & "' order by delivery_date desc")
 
-3. Pertanyaan berikutnya .... Masih bingung kalau untuk membuat Report......

Itu dulu, gampang nambah lagi nanti ...

Terima kasih sebelumnya.
Darsono - Rambo Access
 
 
 

Tidak ada komentar:

Posting Komentar