Mas Pur Terima kasih atas penjelasannya.
 
Selama ini saya pakai code seperti dibawah ini
 
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
 
tapi setelah dikoreksi oleh Mas Pur jadinya begini:
 
Dim cnn New ADODB.Connection
Dim rs New ADODB.Recordset
 
Setelah melihat codenya Mas Pur, yang mau saya tanyakan karena saya tidak mengerti,  sebagai berikut:
 
1. Apa fungsi dari Option Explicit dan kenapa harus dipakai karena selama ini saya tidak pakai Option Explicit program saya bisa berjalan.
2. Di Form Load Mas Pur pake  oConnection.CursorLocation = adUseClient 'apa fungsi dari CursorLocation = adUseClient
3.  Apa fungsi dari .CursorType = adOpenForwardOnly
4.  Kenapa Mas Pur pakai Private bukan Dim, seperti contoh dibawah ini:
 
    Private cnn New ADODB.Connection
    Private rs New ADODB.Recordset
 
Demikian pertanyaan saya. Kiranya Mas Pur meluangkan waktu untuk menjawab pertanyaan saya.
 
Terima kasih.

 
----- Original Message -----
Sent: Tuesday, April 18, 2006 9:24 AM
Subject: Re: [Programmer-VB] Nanya Recordset dan DataGrid1

saya bukan guru mas, tapi biar jelas coba liat kode berikut:

Option Explicit

Private oConnection As ADODB.Connection     ' kalau kamu pake set new di form load, disini ga usah pake As New, kalau pake berarti kamu bikin object n mengalokasikan memori nya 2x, disini dan di form load, gunakan keyword Private or Public instead of Dim, biar jelas ruang lingkup variablenya.
Private oRecordset As ADODB.Recordset       ' gunakan naming convention yg jelas, biar kita tau ini object atau variable, typenya apa dll
 
Private Sub cmdTampilData_Click()
    Call TampilData
End Sub
 
Private Sub Form_Load()
    Set oConnection = New ADODB.Connection
    With oConnection
        .CursorLocation = adUseClient
        .Open "data"
    End With
End Sub
 
Public Sub TampilData()
    Dim sSql As String  ' gunakan nama variable yg bisa dimengerti oleh orang lain, biar anggota team developer lain bisa baca
 
    sSql = "select * from tblbarang"
   
    Set oRecordset = New ADODB.Recordset
    With oRecordset
        .ActiveConnection = oConnection ' disini lah kita menggunakan koneksi yg tadi dibuka di form load, Adodc komponen sudah punya koneksi nya sendiri
        .CursorType = adOpenForwardOnly
        .Source = sSql
        .Open
    End With

    Set DataGrid1.DataSource = oRecordset
    DataGrid1.Refresh
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    If oRecordset.State = adStateOpen Then oRecordset.Close ' percuma nutup object ini kalau dia dalam keadaan tertutup
    Set oRecordset = Nothing
    If oConnection.State = adStateOpen Then oConnection.Close
    Set oConnection = Nothing
End Sub

best regards
[wwn]

On 4/18/06, Frengki Bunga <[EMAIL PROTECTED]> wrote:

Mas Purwedi terima kasih atas teori dan penjelasannya.
 
Biasanya kalau seorang Guru memberikan teori kepada muridnya harus disertai prakteknya dong !
Biar muridnya bisa lebih paham teori sang Guru.
Dengan melihat code yang pernah saya buat, harusnya codenya seperti apa !
Supaya bisa menjadi pembanding antara  code saya yang salah dan code Mas Pur.
 
Seperti pernyataan Mas Pur seperti dibawah ini:
 
object connection yg dibuat di form load itu sama sekali ga berguna karena dia hanya membuka koneksi ke database dan setelah itu ga melakukan apapun, proses pengambilan data dilakukan oleh Adodc1. jd disini ada 2 koneksi yg terbuka, satu dari object connection satu lagi dari Adodc1, hasilnya malah aplikasi akan lambat karena harus melakukan verifikasi ada tidaknya db dan membuka koneksi ke database yg sama 2x.
 
Apakah yang Mas Pur maksud seperti dibawah ini?
 
 
Private Sub Form_Load()
    Set Connection = New ADODB.Connection
    Connection.open "data"

End Sub
 
Kalau tidak berguna, harusnya bagaimana !
 
 
Terima kasih.
 
 


Wahana Programmer Groups Links

<*> Untuk mengunjungi sponsor milis ini, klik link berikut:
    http://wahanaprogrammer.net

<*> Untuk menghubungi owner milis ini, kirim email ke:
    [EMAIL PROTECTED]

<*> Konsultasi pemrogramman bisa chat disini:
    Yahoo! Messenger: wahanaprogrammer




YAHOO! GROUPS LINKS




Kirim email ke