Showing posts with label Database. Show all posts
Showing posts with label Database. Show all posts

Membuat Halaman Database VB 6

Membuat halaman database sangat dibutuhkan dalam pengolaan database yang cukup besar. Apabila kita menemukan suatu project demikian apa yang bisa lakukan?. Bagi anda yang mengetahui atau sudah mahir dalam programing VB 6 tentu saja sudah mengetahui solusinya. Berikut saya sharing atau berikan suatu "Tips Membuat Halaman Database atau Page Paging" dengan menggunakan database "Microsoft Access". 

Option Explicit
Dim mykoneksi As Connection
Dim WithEvents tb_1 As Recordset
Dim WithEvents tb_2 As Recordset
Dim record As Integer
Dim field As Integer
Dim page As Integer
Dim jumlah_per_halaman As Integer
Dim eop As Integer
Dim j As Integer

Private Sub cbopage_Click()
  Dim i As Integer
  Dim tempBottom As Integer
  Dim tempTop As Integer
  If cbopage.Text > 1 And _
     cbopage.Text < tb_1.PageCount Then cmdprev.Enabled = True: cmdnext.Enabled = True
  If cbopage.Text = tb_1.PageCount Then cmdprev.Enabled = True: cmdnext.Enabled = False
  If cbopage.Text <= 1 Then cmdprev.Enabled = False: cmdnext.Enabled = True
  If cbopage.ListCount = 1 Then cmdprev.Enabled = False: cmdnext.Enabled = False  
  If cbopage.Text = "1" Then
    j = 0
    tb_1.MoveFirst
    For i = 1 To jumlah_per_halaman
      j = j + 1
      tb_1.MoveNext
      If tb_1.EOF Then Exit For
    Next i
  Else
    j = 0
    tb_1.MoveFirst
    eop = cbopage.Text * jumlah_per_halaman
    tb_1.Move eop - jumlah_per_halaman
    For i = 1 To jumlah_per_halaman
      j = j + 1
      tb_1.MoveNext
      If tb_1.EOF Then Exit For
    Next i
  End If
  tempBottom = (cbopage * jumlah_per_halaman) - (jumlah_per_halaman - 1)
  tempTop = ((cbopage * jumlah_per_halaman) - (jumlah_per_halaman - 1)) + (j - 1)
  Set tb_2 = New Recordset
  tb_2.Open "SELECT * FROM table1 WHERE no_urut>=" _
                 & tempBottom & " AND no_urut<=" & tempTop & "", _
                 mykoneksi, adOpenDynamic, adLockOptimistic
  Set DataGrid1.DataSource = tb_2.DataSource
  record = tb_2.RecordCount
  field = tb_2.Fields.Count
  DoEvents
End Sub

Private Sub cbo_perpage_Click()
  Dim i As Integer
  jumlah_per_halaman = cbo_perpage.Text
  tb_1.PageSize = jumlah_per_halaman
  page = tb_1.PageCount
  cbopage.Clear
  For i = 1 To page
     cbopage.AddItem i
  Next i
  cbopage.Text = cbopage.List(0)
End Sub

Private Sub cmdCLOSE_Click()
 Unload Me
End Sub

Private Sub cmdnext_Click()
  cbopage.Text = cbopage.Text + 1
  If cbopage.Text > 1 Then cmdprev.Enabled = True
  If cbopage.Text >= tb_1.PageCount Then cmdnext.Enabled = False: cmdprev.SetFocus
End Sub

Private Sub cmdprev_Click()
  cbopage.Text = cbopage.Text - 1
  If cbopage.Text > 1 Then cmdprev.Enabled = True: cmdprev.SetFocus
  If cbopage.Text <= 1 Then cmdprev.Enabled = False: cmdnext.Enabled = True
End Sub

Private Sub Form_Load()
Dim i As Integer
  Set mykoneksi = New Connection
  mykoneksi.CursorLocation = adUseClient
  mykoneksi.Open "PROVIDER=MSDataShape;Data PROVIDER=" & _
          "Microsoft.Jet.OLEDB.4.0;Data Source=" _
          & App.Path & "\db1.mdb;"
   
  Set tb_1 = New Recordset
  tb_1.Open "SELECT * FROM table1", mykoneksi
    
  For i = 10 To 35 Step 10
     cbo_perpage.AddItem i
  Next i
  cbo_perpage.Text = cbo_perpage.List(0)
  jumlah_per_halaman = cbo_perpage.List(0)
  tb_1.PageSize = jumlah_per_halaman
  page = tb_1.PageCount
  cmdprev.Enabled = False
  cmdnext.Enabled = True
  Exit Sub
Pesan:
  MsgBox Err.Number & " - " & Err.Description
  End
End Sub
Contoh Kode membuat halaman vb 6 diatas masih sederhana dan bisa dikembangkan sesuai kebutuhan kita.  NB : "mungkin ada rekan-rekan yang ahli mohon di share... terima kasih".

Download Source disini.

Manipulasi Database II

Source code berikut saya dapat di internet dan sangat membantu dalam pengolaan database. dan contoh ini saya sudah praktekkan dalam pembuatan program aplikasi dan sangat membatu sekali. 


Di dalam contoh tersebut sudah meliputi:

1. Compac Database
2. Navigasi Control Ado
3. Backup dan Restore Database
4. Password Database
5. Laporan Database dengan DataReport
6. Menampilkan Data di GridView

Bagi anda yang pingin belajar pengelolaan database silakan download di bawah ini :


Manipulasi Database

Contoh source code untuk menangani database, lengkap dengan fungsi/prosedur menambah, menyimpan, mengedit, menghapus, navigasi, mencari pertama, mencari berikutnya, memfilter, dan menyortir data. Sangat cocok untuk digunakan sebagai template untuk menangani pemrograman database menggunakan coding yang    memerlukan validasi data dan penanganan khusus lainnya.
Menggunakan reference "Microsoft ActiveX Data Objects 2.0 Library" dan control "DataGrid".

Download Code Selengkapnya.

Import Data Excel Menggunakan DAO dan ADO

Contoh program ini mendemonstrasikan bagaimana cara untuk import data excel dengan menggunakan DAO atau ADO ke FlexGrid. 

Component :     


  1. Microsoft ActiveX Data Objects 2.6 Library
  2. Microsoft DAO 3.6 Object Library

Reference:

  • Microsoft FlexGrid Control 6
Download Code 


Option Explicit
Dim db As DAO.Database
Dim rsDAO As DAO.Recordset
Dim Conn As ADODB.Connection
Dim rsADO As ADODB.Recordset
Dim strDBField() As String ' Array untuk nama nama field Database.

Private Sub AccessDataWithDAO()

Set db = OpenDatabase(App.Path & "\test.xls", False, True, "Excel 8.0;")
DoEvents
Set rsDAO = db.OpenRecordset("SELECT * FROM [Sheet1$C6:D10]")
rsDAO.MoveFirst
Screen.MousePointer = vbHourglass
ReDim strDBField(1)
strDBField(0) = "Nama"
strDBField(1) = "Kota Lahir"
FillDataToGridControl
Screen.MousePointer = vbDefault
End Sub


Private Sub AccessDataWithADO()
Dim strConn As String
' Open koneksi ADO ke file Excel
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\test.xls;" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

Set Conn = New ADODB.Connection
Set rsADO = New ADODB.Recordset

Conn.ConnectionString = strConn
Conn.Open

' Pada file excel, definisikan nama ListURL dalam Sheet2
rsADO.Open "SELECT * FROM ListURL", Conn, adOpenDynamic, adLockOptimistic

If rsADO.RecordCount > 0 Then rsADO.MoveFirst
Screen.MousePointer = vbHourglass
ReDim strDBField(1)
strDBField(0) = "URL"
strDBField(1) = "Language"
FillDataToGridControl
Screen.MousePointer = vbDefault
End Sub
Private Sub opAksesData_Click(Index As Integer)
Set Conn = Nothing
Set rsADO = Nothing
Set db = Nothing
Set rsDAO = Nothing
Select Case Index
Case 0: AccessDataWithDAO
Case 1: AccessDataWithADO
Case Else
End Select
End Sub

Private Sub HeadingFlexGrid(oMSFlexGrid, nCol, cTextHeading, nColWidth)
With oMSFlexGrid
.TextMatrix(0, nCol) = cTextHeading
.ColWidth(nCol) = nColWidth
.Row = 0
.Col = nCol
.CellFontBold = True
.CellAlignment = flexAlignCenterCenter
End With
End Sub

 Private Sub FillDataToGridControl()
Dim rownum As Integer
Dim icount As Integer
Dim rs As Object

' Set recordset sesuai Option
If opAksesData(0) Then
Set rs = rsDAO
Else
Set rs = rsADO
End If

' Bersihkan data pada Grid dan setting row
MSFlexGrid1.Rows = 2
MSFlexGrid1.Clear

' Buat jumlah kolom sesuai dengan jumlah field(s)
If Not (MSFlexGrid1.Cols = UBound(strDBField, 1) + 1) Then
MSFlexGrid1.Cols = UBound(strDBField, 1) + 2
End If

' Setting grid header dan column.
Call HeadingFlexGrid(MSFlexGrid1, 0, "", 225)
Call HeadingFlexGrid(MSFlexGrid1, 1, strDBField(0), 3000)
Call HeadingFlexGrid(MSFlexGrid1, 2, strDBField(1), 2200)

' Isi grid dengan data dari cell file Excel.
rs.MoveFirst
Do Until rs.EOF
rownum = rownum + 1
MSFlexGrid1.AddItem ""
For icount = 0 To UBound(strDBField, 1)
MSFlexGrid1.TextMatrix(rownum, icount + 1) = _
rs.Fields(strDBField(icount))
Next
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub

Membuat Database Dengan Ado

Selain merancang sebuah database beserta tabelnya dengan menggunakan tool acces bisa juga kita Membuat Database Dengan Ado dengan menggunakan code program.


Private Sub cmdCreate_Click()
Dim lCatalog As New ADOX.Catalog
Dim lTable As New ADOX.Table
Dim lIndex As New ADOX.Index

lCatalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DATABASE.MDB"

lTable.Name = "Content"
Set lTable.ParentCatalog = lCatalog
lTable.Columns.Append "ContentID", adInteger
lTable.Columns("ContentID").Properties("AutoIncrement") = True
lTable.Columns.Append "UserID", adInteger
lTable.Columns.Append "RegionID", adInteger
lTable.Columns.Append "ContentTypeID", adInteger
lTable.Columns.Append "CatID", adInteger
lTable.Columns.Append "Title", adVarWChar, 100
lTable.Columns.Append "Author", adVarWChar, 50
lTable.Columns.Append "FileName", adVarWChar, 50
lTable.Columns("FileName").Properties("Jet OLEDB:Allow Zero Length") = True
lTable.Columns.Append "RelatedURL", adVarWChar, 70
lTable.Columns.Append "DownloadURL", adVarWChar, 70
lTable.Columns.Append "DateAdded", adDate
lTable.Columns.Append "ShortDesc", adLongVarWChar
lTable.Columns.Append "LongDesc", adLongVarWChar
lTable.Columns.Append "Display", adSingle
lTable.Columns.Append "Email", adVarWChar, 70
lTable.Columns.Append "Expire", adDate
lTable.Columns.Append "Priority", adInteger
lTable.Columns.Append "Impressions", adInteger
lTable.Columns.Append "ClickThrus", adInteger
lTable.Columns.Append "Downloads", adInteger
lTable.Columns.Append "AvgRating", adInteger
lTable.Columns.Append "Ratings", adInteger
lTable.Columns.Append "Feature", adSingle

lIndex.Name = "P_Key"
lIndex.Columns.Append "ContentID"

'Tambahkan index ke table
lTable.Indexes.Append lIndex

'Simpan table dan strukturnya ke database
lCatalog.Tables.Append lTable

Set lCatalog = Nothing

MsgBox "Database dan table telah sukses di buat."
End Sub

Code Visual Basic diatas adalah untuk membuat database dan table di dalam database. Jika terjadi erro atau runtime error : User-defined type not defined. Maka anda harus mengaktifkan dengan cara :
  • Dari menu pilih Project
  • Referensi
  • Setelah muncul Daftar referensi, cari Microsoft ADO Ext. 2.5 for DDL and Security
  • Setelah ketemu dan dicentang disebelah kiri tekan Ok untuk Selesai.
Demikian semoga bisa membantu.

Mencari Data Di DataGrid

Source code Mencari Data Di DataGrid

Option Explicit

Private Sub Command1_Click()
End
End Sub

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
DisplayRecord
If Adodc1.Recordset.EOF Then
Adodc1.Caption = "Record: EOF of " & Adodc1.Recordset.RecordCount
Else
Adodc1.Caption = "Record: " & Adodc1.Recordset.AbsolutePosition & " of " & Adodc1.Recordset.RecordCount
End If
End Sub

Private Sub Form_Load()
DisplayRecord
End Sub

Private Sub txtFind_Change()
If Not Trim(txtFind.Text) = "" Then
txtFind.Text = UCase(txtFind.Text)
txtFind.SelStart = Len(txtFind.Text)

Adodc1.Recordset.Find "fld1 LIKE '" & txtFind.Text & "%'", , , 1

If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
Else
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
Text3.Text = Adodc1.Recordset.Fields(2)
Adodc1.Caption = _
"Record: " & Adodc1.Recordset.AbsolutePosition & " of " & Adodc1.Recordset.RecordCount
End If
Else
txtFind.Text = ""
End If
End Sub

Private Sub DisplayRecord()
If Not Adodc1.Recordset.EOF And Not Adodc1.Recordset.BOF Then
Text1.Text = Adodc1.Recordset.Fields(0)
Text2.Text = Adodc1.Recordset.Fields(1)
Text3.Text = Adodc1.Recordset.Fields(2)
End If
End Sub

Sebelum anda menjalankan program ini terlebih dahulu setting ADO Data Control-nya ke direktori dimana data COBA.MDB berada yaitu connectionstring. Untuk mendownload codenya Klik disini.

About Me

Followers

Home | Profile | Blogger | Template