November 19, 2009

Read/Write Configuration File (VB 9)


Setelah menggunakan VB 2005 keatas, banyak sekali para developer memanfaatkan suatu fitur baru yaitu My.Settings. Salah satu fungsi nya adalah untuk melakukan penyimpaanan informasi yang bisa di akses secara mudah dan cepat oleh aplikasi kita. Dan fitur banyak sekali di gunakan untuk menyimpan connection string dalam mengakses database. Lalu bagaimana membuat aplikasi yang fleksible dalam menyimpan connection string tanpa harus membuka secara langsung file konfigurasi nya. Untuk itu kita harus membuat sedikit code untuk mengakses dan memanipulasi data yang tersimpan di file tersebut. Bagaimana cara nya , ikuti trus artikel ini.
untuk artikel bisa didapatkan di link1 dan link2
untuk source code di link1 dan link2
Wassalam

November 10, 2009

Mengurangi size pada excel file dengan menggunakan VBA

Sering sekali kita menerima atau menemukan file excel kita berukuran yang sangat besar namum isi nya hanya sedikit, dan sangat tidak masuk akal. Isi yang sedikit tapi dengan Size bisa mencapai 5-10 MB.

Lalu bagaimana cara mengatasinya, banyak sekali caranya, misalkan dengan melakukan Save As ke .html, .csv format. Tapi hal ini pernah saya lakukan dan tidak berhasil dengan sempurna.

Tulisan ini mengajak kita untuk menyelesaikan masalah diatas dengan menggunakan VBA. Pasti akan timbul pertanyaan, apakah setiap file yang bermasalah akan menggunakan VBA, berarti kita akan selalu mengetikkan code jika menemui file yang bermasalah. Tentu jawaban nya tidak, kebayang jika kita memiliki 100 user dan 50% dari user sering mengalami masalah ini. Oleh karena kita akan membuat Add-Ins (.xla), dan akan di distribusikan ke user.

Ikuti langkah-langkah berikut :

  1. Create New Excel file dan simpan dengan nama Reduce
  2. Pada jendela excel, tekan Alt+F11 (untuk membuka jendela Visual Basic Editor)
  3. Pada jendela VBA, klik kanan VBA Project (Reduce) dan Insert > Module
  4. Pada Module ketikkan sintaks seperti dibawah

Option Explicit

Sub Reduce

Dim LastRow As Long

Dim LastCol As Long

Dim ColFormula As Range

Dim RowFormula As Range

Dim ColValue As Range

Dim RowValue As Range

Dim ws As Worksheet

Application.ScreenUpdating = False

Application.DisplayAlerts = False

On Error Resume Next

For Each ws In Worksheets

With ws

On Error Resume Next

Set ColFormula = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)

Set ColValue = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _

LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)

Set RowFormula = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)

Set RowValue = .Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)

On Error GoTo 0

If ColFormula Is Nothing Then

LastCol = 0

Else

LastCol = ColFormula.Column

End If

If Not ColValue Is Nothing Then

LastCol = Application.WorksheetFunction.Max(LastCol, ColValue.Column)

End If

If RowFormula Is Nothing Then

LastRow = 0

Else

LastRow = RowFormula.Row

End If

If Not RowValue Is Nothing Then

LastRow = Application.WorksheetFunction.Max(LastRow, RowValue.Row)

End If

.Range(Cells(1, LastCol + 1).Address & ":IV65536").Delete

.Range(Cells(LastRow + 1, 1).Address & ":IV65536").Delete

End With

Next

Application.ScreenUpdating = True

Application.DisplayAlerts = True

MsgBox ("Selesai")

End Sub

  1. Simpan. Lalu Save As file tersebut dengan type .xla (Microsoft Office Excel Add-In) dengan nama Reduce.xla

Lalu bagaimana menggunakan nya, buka file yang bermasalah , dan Klik Tools > Add-Ins. Pada jendela Add-Ins aktifkan check box Reduce. Jika tidak ada cari (browse) dimana sewaktu kita menyimpan file .xla nya. (Ini dilakukan cukup sekali pada setiap PC). Dan untuk menjalankan nya, klik Tools > Macro > Macros

Jika pada jendela Macro tersedia “Reduce” Macro maka tinggal klik button Run, jika belum ketikkan “Reduce” pada Macro Name dan klik Run. Setelah ada pesan “Selesai”. Tutup dan lihat size nya sudah berkurang..

Selamat mencoba ..

Wassalam

October 23, 2009

VIDEO TUTORIAL (DEPLOYING USING MERGE MODULES)

Deployment bisa dikatakan sebagai hasil akhir dalam pembuatan aplikasi. Trus bagaimana jadi nya kalau hasil akhir ini tidak bisa di gunakan. Wah pasti sangat menyebalkan. Hal ini bisa terjadi pada aplikasi yang menggunakan Crystal Report. Jika pada saat melakukan deployment tidak menggunakan Merge Modules. Banyak sekali pertanyaan yang masuk ke saya berkenaan dengan ini. “Pak kok setelah di buat installer, trus di install ke PC lain, pas mau lihat laporan kok error”..

“Pak, apa artinya Invalid or Missing KeyCodeV3.dll”. dan banyak lagi.

Jadi untuk menjawab itu semua akan saya buat kan Video Tutorial bagaimana melakukan Deployment suatu project dengan menggunakan Merge Modules.

Silahkan download video tutorial nya disini

Note : untuk video ini saya menggunakan VS.Net 2003

Selamat mencoba ..

Wassalam

October 14, 2009

Paging DataGridView With LINQ


Masih pada ingat postingan artikel saya mengenai LINQ ? setelah mencoba akan kemudahan nya pasti akan membuat para pembaca tertarik untuk mendalami fungsi-fungsi LINQ. Masih menggunakan project yang sama topik yang sama (LINQ), saya akan memberikan trik bagaimana membuat Paging GridView dengan menggunakan LINQ.

Mungkin diantara pembaca sudah pernah membuat Paging Grid menggunakan Ado.net classic, seperti memanfaatkan ExecuteScalar dan lain-lain. Tapi bagaimana dengan LINQ apakah bisa ??? Bukan saja bisa, malah lebih mudah. Mari kita mulai project ini.

Note : Sebelum menerapkan aplikasi ini, sebaiknya mendownload artikel dan project sebelum postingan ini (Membuat Aplikasi Menjadi Lebih Mudah Dengan LINQ).

Buka project LatihanLINQ, dan tambahkan 1 form dan tambahkan 4 buah button, 1 label dan 1 DataGrdiView. Ubah properties dan atur letak komponen seperti diatas.

Form :

Name : F_Grid

Text : Paging Grid

StartPosition : CenterScreen

Button 1: Name = btnAwal , Text = <<

Button 2: Name = btnMundur, Text = <

Button 3: Name = btnMaju, Text = >

Button 4: Name = btnAkhir, Text = >>

Label : Name =lblStart, Text = Kosong

DatGridView1 : Name =DgView

Pada Project LatihanLINQ, buka class AccessSupplier.vb

Dan ketikkan sintak berikut didalam class AccessSupplier :

'Menampilkan jumlah baris table

Public Function GetTotalBaris() As Integer

Dim dc As New DataClassesDataContext

Dim hasil = (From sup In dc.GetTable(Of T_Supplier)() _

Select sup).ToList

Return hasil.Count 'menghitung jumlah element pada list

End Function

'menampilkan data dari n baris sebanyak n baris

Public Function GetSupplierRows(ByVal Awal As Integer, _

ByVal akhir As Integer) As List(Of T_Supplier)

Dim dc As New DataClassesDataContext

Dim hasil = (From sup In dc.GetTable(Of T_Supplier)() _

Order By sup.Sup_Code Select sup).Skip(Awal).Take(akhir).ToList

Return hasil

End Function

View Code untuk F_Grid, lalu ketikkan sintaks berikut di bawah Public Class F_Grid

Private AccessSupplier As New AccessData.AccessSupplier

Private NilAwal, NilTotal, NilBagi As Integer

Private NilPage As Integer = 2

Private Sub LabelRecord()

lblStart.Text = "Awal baris : " & (NilAwal + 1).ToString & " dari total : " + NilTotal.ToString

End Sub

Double click pada form F_Grid, dan ketikkan sintaks berikut :

Try

NilAwal = 0 'awal baris

NilTotal = AccessSupplier.GetTotalBaris 'mengambil total baris

DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage) 'menampilkan data pada gridview

LabelRecord() 'menampilkan nilai baris dan total baris

Catch ex As Exception

MsgBox(ex.Message)

End Try

Double click button Maju dan ketik sintaks berikut :

Try

If (NilAwal + NilPage) <= NilTotal Then

NilAwal += NilPage

DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)

LabelRecord()

Else

MsgBox("Data sudah pada halaman terakhir", MsgBoxStyle.Information, "LINQ")

End If

Catch ex As Exception

MsgBox(ex.Message)

End Try

Button Mundur :

Try

If (NilAwal - NilPage) >= 0 Then

NilAwal -= NilPage

DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)

LabelRecord()

Else

MsgBox("Data sudah pada halaman pertama", MsgBoxStyle.Information, "LINQ")

End If

Catch ex As Exception

MsgBox(ex.Message)

End Try

Button Awal

Try

NilAwal = 0

DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)

LabelRecord()

Catch ex As Exception

MsgBox(ex.Message)

End Try

Dan button Akhir

Try

NilTotal = AccessSupplier.GetTotalBaris

NilBagi = NilTotal Mod NilPage

NilAwal = NilTotal - IIf(NilBagi <> 0, NilBagi, NilPage)

DgView.DataSource = AccessSupplier.GetSupplierRows(NilAwal, NilPage)

LabelRecord()

Catch ex As Exception

MsgBox(ex.Message)

End Try

Dan jalankan program, maka gridview menampilkan data per 2 baris sesuai dengan navigator yang kita tekan.

Selamat mencoba

Wassalam

October 9, 2009

Vb 9 with LINQ (MEMBUAT APLIKASI MENJADI LEBIH MUDAH DENGAN LINQ)

LINQ merupakan fitur baru pada Vb 9.0, dan fitur ini sangat membantu para programmer dalam membangun suatu aplikasi. Lalu apakah LINQ itu dan mahluk seperti apakah LINQ?? Mungkin masih banyak sekali di antara pembaca yang belum tau apa itu LINQ dan fungsi-fungsi nya. . Ada beberapa macam LINQ Provider seperti LINQ to Object, LINQ to XML, LINQ to SQL, LINQ to Datasets, tapi pada artikel ini kita akan membuat aplikasi dengan menggunakan LINQ to SQL.

Sesuai dengan judul diatas, dengan LINQ akan memudahkan kita dalam membuat aplikasi. Artikel ini akan menjelaskan step by step cara pembuatan aplikasi, dari pembuatan database dengan SQL Server 2005 Express, bekerja dengan Object Relational Desginer, sampai dengan penggunaan fungsi-fungsi LINQ untuk aplikasi.

untuk artikel lengkap nya dapat didownload disini dan project source code disini

October 2, 2009

Alhamdulillah saya mendapatkan Microsoft MVP VB.Net

Alhamdulillah adalah kata pertama sewaktu membaca email di bawah

Dear Junindar Tasripin,

Congratulations! We are pleased to present you with the 2009 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual Basic technical communities during the past year.”

Award ini merupakan kado Indah dari Microsoft sebelum lahir nya anak saya (perkiraan dokter bulan desember J )

Ga lupa saya berterima kasih banyak kepada: Narenda & wely (thanks atas promote nya).

Teman-teman MUGI Batam : bro Aprizon, anam, atha, abe, FARaham, Rudy , john dan irawan. Thanks memberi kesempatan saya menjadi pengurus MUGI Batam.

Terima kasih buat rekan-rekan setia pembaca artikel-artikel saya di blog ini, maupun di geeks dan ilkom yang menjadi inspirasi dalam tulisan-tulisan saya.

Dan Terakhir buat Keluarga TERCINTA............. Thanks for your support

Semoga dengan mendapatkan ini membuat saya lebih baik dalam melakukan share ilmu terutama untuk Vb.Net.

August 20, 2009

Job Scheduling Tool for SQL Server Express and MSDE

Artikel sebelum puasa.... J

Pasti yang menggunakan SQL server Express dan MSDE akan bergembira bila mendengar kabar ini. Karena dengan menggunakan Tool ini maka untuk backup database secara berkala bisa di lakukan.

Seperti yang kita ketahui bahwa pada SQL server Express dan MSDE tidak memiliki fasilitas untuk backup secara berkala. Jadi untuk melakukan backup database dilakukan secara manual. Wah sangat membosankan sekali jika seperti ini..

Tapi itu semua tidak perlu dikhawatirkan karena dengan menggunakan Tool free seperti SQL Scheduler kita dapat melakukan backup database secara berkala.

Kelebihan dari Tool ini adalah :

  1. Supports all versions of SQL Server 2000 and 2005
  2. Supports unlimited SQL Server instances
  3. Supports unlimited number of jobs.
  4. Runs as Windows Service
  5. Sends email notifications on job success and failure

Untuk memulai nya donwload terlebih dahulu program SQLScheduler.

Setelah itu, buat sebuah folder dan “Extract“ zip file yang di download kedalam folder yang baru dibuat.

Didalam folder yang baru dibuat akan terdapat 2 buah folder dan 1 file doc (help file).

Double click folder “Service”, dan didalam folder service terdapat file dengan nama “installservice.bat” dan double click file ini. File ini berguna untuk menginstall SQL Scheduler Service.

Note : Login user harus Administrator.

Lalu pada folder “SQLScheduler”, double click file SQLScheduler.exe, pada GUI ini kita akan melakukan setingan untuk backup database.

Pada jendela “SQLScheduler” klik kanan pada Server Node dan pilih “New Server“

Ketik Nama Server atau IP address dari server

Contoh : NamaServer\SQLExpress (untuk yang menggunakan SQL Express,jika SQL server 2000-MSDE ketikkan nama server nya aja..). Dan klik Save.

Lalu klik kanan pada Nama server yang baru kita buat, dan pilih New Job..

Pada Tab General Masukkan Nama dan Description Job. Masukkan username dan Password jika kita memilih “SQL Server Authentication” pada SQL Server Connection.

Click Tab Detail, Ketik Sintak SQL nya, jika tidak tau sintak nya tinggal click button “Insert Backup Template”, tinggal ganti parameter pada sintaks SQL nya..

Untuk melakukan penyetingan waktu backup click Tab Schedule.

Lalu Save Form New Job. Dengan menggunakan ini kita bisa melakukan beberapa kali backup untuk 1 database pada hari yang sama.

OK, selamat mencoba..

Wassalam …