Friday, June 8, 2012

Memeriksa Apakah Project Telah Disimpan - VB6 Add-Ins

Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
If IsProjectSaved Then
MsgBox "Project telah disimpan"
Else
MsgBox "Project belum disimpan"
End If
End Sub

'untuk mengetahui apakah project telah disimpan
Public Function IsProjectSaved() As Boolean
IsProjectSaved = Not (VBInstance.ActiveVBProject.FileName = "")
End Function
READ MORE - Memeriksa Apakah Project Telah Disimpan - VB6 Add-Ins

Antisipasi Dari Pemberian 'Option Explicit' Ganda - VB6 Add-Ins

Kode di bawah berguna untuk mencegah pemberian Option Explicit ganda pada saat memasukan kode pada VBComponent (Form, Module, Class, dll) misalnya dengan menggunakan kode ini.

Adapun kode untuk mengantisipasi dari double Option Explicit adalah sebagai berikut:
Option Explicit 

Public Function
AddOptionExplicit() As String
If
RegRead("HKEY_CURRENT_USER\Software\Microsoft\VBA\Microsoft Visual Basic\RequireDeclaration") = 1 Then
AddOptionExplicit = vbNullString
Else
AddOptionExplicit = "Option Explicit 'Add by Project Builder 2.0" & vbCrLf
End If
End Function

Private Sub
Command1_Click()
MsgBox AddOptionExplicit
End Sub
Return VBNullString jika Option Explicit sudah ada, dan Option Explicit 'Add by Project Builder 2.0 jika Option Explicit belum ada.
READ MORE - Antisipasi Dari Pemberian 'Option Explicit' Ganda - VB6 Add-Ins

Data Report, Bagaimana Cara Menambahkannya Melalui Add-Ins?

Mengenai cara menambah data report project database melalui pemrograman Add-Ins - Apabila kita berusaha menambahkan sebuah data report (lebih umum ActiveX Designer) dengan menggunakan kode disamping: VBInstance.ActiveVBProject.VBComponents.Add (vbext_ct_ActiveXDesigner) seperti pada postingan sebelumnya, maka yang kita peroleh hanyalah peringatan error. Adapun untuk ActiveX designer maka kode adalah seperti disamping: VBInstance.ActiveVBProject.VBComponents.AddCustom("{78E93846-85FD-11D0-8487-00A0C90DC8A9}"). {78E93846-85FD-11D0-8487-00A0C90DC8A9} merupakan CLSID untuk data report default VB6, gantilah {78E93846-85FD-11D0-8487-00A0C90DC8A9} dengan CLSID yang sesuai, misalnya apabila menggunakan Crystal Report atau Active Report.

Adapun contoh kode untuk menambah data report baru melalui pemrograman Add-Ins adalah sebagai berikut:
Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
Dim NewReport '- variant?
' //MSDBRPTR.DLL-Microsoft Data Report Designer v6.0
' InsertReferences "{642AC760-AAB4-11D0-8494-00A0C90DC8A9}", "1", "0"
' //msstdfmt.dll-Microsoft Data Formatting Object Library 6.0 (SP4)
' InsertReferences "{6B263850-900B-11D0-9484-00A0C91110ED}", "1", "0"

' //dua referensi .dll (MSDBRPTR.DLL dan msstdfmt.dll) di atas, akan otomatis direferensi pada saat kode di bawah dijalankan

'//Insert data report, CLSID untuk data report {78E93846-85FD-11D0-8487-00A0C90DC8A9}}
'//atau CLSID-nya diganti dengan ProgID juga akan menghasilkan hasil yang sama.
Set NewReport = VBInstance.ActiveVBProject.VBComponents.AddCustom("{78E93846-85FD-11D0-8487-00A0C90DC8A9}")

'mengatur properties
With NewReport
.Name = "rptSiswa" 'rubah nama menjadi rptSiswa
.Properties("Caption") = "Laporan data siswa"
'.dan sebagainya
'.dan sebagainya
End With
End Sub

'-------------------------------------------------------------------------------------------
'//Kode di bawah tidak diperlukan, hanya sebagai pengingat saja...
'-------------------------------------------------------------------------------------------

'Public Function InsertReferences(GUID As String, Mayor As Long, Minor As Long) As Boolean
'On Error GoTo ErrHandler
' 'Add dll references
' VBInstance.ActiveVBProject.References.AddFromGuid GUID, Mayor, Minor
' InsertReferences = True
'ErrHandler:
' InsertReferences = False
'End Function
READ MORE - Data Report, Bagaimana Cara Menambahkannya Melalui Add-Ins?

Mengubah Startup Object Melalui VB6 Add-Ins

Pada saat kita membuat project baru (Standard Exe misalnya), maka secara default yang menjadi standard object untuk project1 adalah Form1. Tetapi permasalahannya, bagaimana jika kita ingin membuat generator code yang Startup Objectnya Sub Main? untuk menyelesaikannya, kita hanya memerlukan 1 baris kode yaitu: VBInstance.ActiveVBProject.VBComponents.StartUpObject = vbext_so_SubMain. Untuk mengujinya buatlah project addin seperti posting terdahulu, gantilah seluruh kode yang terdapat pada frmAddin.
Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
VBInstance.ActiveVBProject.VBComponents.StartUpObject = vbext_so_SubMain
End Sub
Compile dan jalankan seperti posting terdahulu.
READ MORE - Mengubah Startup Object Melalui VB6 Add-Ins