beberapa hari ini baru selesai'in project untuk remote application.
jadi kemungkinan beberapa waktu ke depan sulit OL.
okey then,,wah ... wah .. hmmm...
PERHATIKAN UNTUK TANDA COMMENT PADA CODING DI BAWAH INI YAH ...
KURANG TELITI @Firman nya,
Code:
Public cnn As New ADODB.Connection '// OBJECT
Public rst As New ADODB.Recordset '// OBJECT
Public cmd As New ADODB.Command '// OBJECT
Public sql As String ' NOT OBJECT !!
Public Sub BukaKoneksi()
If cnn.State = adStateOpen Then
cnn.Close '// NOT SAFE CODE --
Set cnn = Nothing '// OK .. DESTROY OBJECT [ LOC - ATTENTION ]
Set rst = Nothing '// OK .. DESTROY OBJECT
Set sql = Nothing '// DI SINI HARUSNYA ERROR !
'// DI SINI SUDAH ERROR - var cnn IS NIL / NULL -
'=====================
' ADD CODE
'---------------------
set cnn = new adodb.connection
cnn.Mode = adModeReadWrite
cnn.CursorLocation = adUseClient
cnn.Open "Driver={Firebird/InterBase(r) driver};Uid=SYSDBA;Pwd=maskey789; DbName=" & App.Path & "\dBase\dbMASTER.fdb;"
End Sub
Sub LoadData()
call BukaKoneksi
rst.Open "SELECT COUNT (*) AS ada FROM m_data_t",cnn
End Sub
udah tau kan salahnya dimana :-)
here,,some modification code using ur idea of code ( just add some checked function )
Code:
'============================
' YOUR VARS
'----------------------------
'IF THIS VAR JUST IN THIS FORM - USE [ PRIVATE ] RATHER THAN [ PUBLIC ]
'----------------------------
Public cnn As New ADODB.Connection '// OBJECT
Public rst As New ADODB.Recordset '// OBJECT
Public cmd As New ADODB.Command '// OBJECT
Public sql As String ' NOT OBJECT !!
'============================
' ADDITIONS
'----------------------------
Const USER_DBNAME As String = "SYSDBA" '// SHOULD BE ENCRYPTED - OR MANY OTHER WAYS WE CAN THINK OF :-)
Const USER_DBPWD As String = "maskey789" '// SHOULD BE ENCRYPTED
Private Function FileExist(ByVal s As String) As Boolean
If (Len(s) > 0) Then
FileExist = Len(Dir(s, vbNormal)) > 0
End If
End Function
'// IF THIS CODE JUST IN THIS FORM - USE [ PRIVATE ] RATHER THAN [ PUBLIC ]
Public Function BukaKoneksi(ByVal strUserName As String, ByVal strPassword As String, _
ByVal strPathDB As String) As Boolean
Dim ok As Boolean
On Error GoTo TrapErr
'// JUST ACCORDING UR CODE LOGIC HERE + ERR HANDLER
'// hanya di sini username dan password harus terisi, prioritas harus dipertimbangkan, tergantung kebutuhan
If (strUserName <> "" And strPassword <> "") Then
If (FileExist(strPathDB)) Then
If (cnn Is Nothing) Then Set cnn = New ADODB.Connection
If (cnn.State = adStateOpen) Then cnn.Close
With cnn
.CursorLocation = adUseClient
.Mode = adModeReadWrite
.Open "Driver={Firebird/InterBase(r) driver};" & _
"Uid=" & strUserName & ";" & _
"Pwd=" & strPassword & ";" & _
"DbName=" & strPathDB
ok = (.State = adStateOpen)
End With
End If
End If
ExitPoint:
BukaKoneksi = ok
Exit Function
TrapErr:
ok = False
Debug.Print "ERR ON BukaKoneksi() - " & Err.Description
On Error GoTo 0
Err.Clear
Resume ExitPoint
End Function
'// IF THIS CODE JUST IN THIS FORM - USE [ PRIVATE ] RATHER THAN [ PUBLIC ]
Public Function LoadData(ByRef lngDataCount As Long) As Boolean
Dim ok As Boolean
On Error GoTo TrapErr
If (BukaKoneksi(USER_DBNAME, USER_DBPWD, YourVarDatabasePath)) Then
rst.Open "SELECT COUNT (*) AS ada FROM m_data_t", cnn
If (Not rst Is Nothing) Then
lngDataCount = rst.fields(0).value
Set rst = Nothing
ok = True
End If
End If
ExitPoint:
LoadData = ok
Exit Function
TrapErr:
ok = False
Debug.Print "ERR ON LoadData() - " & Err.Description
On Error GoTo 0
Err.Clear
Resume ExitPoint
End Function
Private Sub Form_Load()
Dim lngRecordCount As Long
If (LoadData(lngRecordCount)) Then
MsgBox "Query OK. Return " & CStr(lngRecordCount) & " record(s)"
End If
End Sub
cheers,,
Bookmarks