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.