Dear Friend,
Sebenarnya kode anda sudah benar. Cuma pemahamannya kurang. Connection anda
tidak anda deklarasikan secara global. Anda buat koneksi baru ketika form
load, jadi ketika data diklik, koneksi yang terbentuk tersebut di form load
tidak dikenal di event combo_clicknya. Sementara di event combo_click anda,
anda buat recorset baru dengan menggunakan variable connection yang anda
load di form load tersebut, jadi ketika di event combo_clicknya muncul error
tersebut.Dan di event form_unloadnya ditambahkan kode set connectionnya di
destroy agar tidak ada memory leak.
Coba buat begini:
Dim cn As ADODB.Connection
Private Sub cmbJnsATK2_Click()
Set rsJenis = New ADODB.Recordset
' baris ini yang selalu error 3001
rsJenis.Open "select satuan, HargaSatuanAwal from ATK where JenisATK = '" &
cmbJnsATK2.Text & "'", cn, adOpenDynamic, adLockOptimistic
txtSatuan.Text = rsJenis("Satuan")
txtHargaSatuan.Text = rsJenis("HargaSatuanAwal")
end sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Provider = "microsoft.jet.oledb.4.0"
cn.CursorLocation = adUseClient
cn.Open App.Path & "\atk.mdb"
Set rs2 = New ADODB.Recordset
cmbJnsATK2.Clear
rs2.Open "select list from listATK", cn, adOpenDynamic, adLockOptimistic
Do While Not rs2.EOF
cmbJnsATK2.AddItem rs2("list")
rs2.MoveNext
Loop
cmbJnsATK2.ListIndex = 0
end sub
Private Sub Form_Unload(Cancel As Integer)
Set cn = Nothing
End Sub
Best Regards
_____
From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of adhy nunu
Sent: Thursday, November 29, 2007 11:43 AM
To: [email protected]
Subject: [Programmer-VB] Re: help me
Ups,... maaf saya salah kirim. Berikut ini HargaSatuan sudah diganti menjadi
HargaSatuanAwal. Errornya 3001.
Thx B4.
code nya :
Private Sub cmbJnsATK2_Click()
Set rsJenis = New ADODB.Recordset
' baris ini yang selalu error 3001
rsJenis.Open "select satuan, HargaSatuanAwal from ATK where JenisATK = '" &
cmbJnsATK2.Text & "'", cn, adOpenDynamic, adLockOptimistic
txtSatuan.Text = rsJenis("Satuan")
txtHargaSatuan.Text = rsJenis("HargaSatuanAwal")
end sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Provider = "microsoft.jet.oledb.4.0"
cn.CursorLocation = adUseClient
cn.Open App.Path & "\atk.mdb"
Set rs2 = New ADODB.Recordset
cmbJnsATK2.Clear
rs2.Open "select list from listATK", cn, adOpenDynamic, adLockOptimistic
Do While Not rs2.EOF
cmbJnsATK2.AddItem rs2("list")
rs2.MoveNext
Loop
cmbJnsATK2.ListIndex = 0
end sub
Disclaimer: Although this message has been checked for all known viruses
using Trend Micro InterScan Messaging Security Suite, Bukopin
accept no liability for any loss or damage arising
from the use of this E-Mail or attachments.