DATABASE

Membuat Database dengan DAO

Contoh pembuatan database pada Microsoft Access dengan menambahkan tabel dan field (beserta type dan ukuran field) didalamnya.

Langkah2:
1. Buat satu proyek baru dengan satu form dan satu commandbutton.
2. Tambahkan preference Microsoft DAO 3.5 Object Library dari menu Project->References.
3. Ketikkan coding berikut ke dalam editor form yang bertalian. Ketikkan Coding berikut ini pada form.

Code:
Private Sub Command1_Click()
Dim db As Database
Dim td1 As TableDef
Dim td2 As TableDef
Dim td3 As TableDef
Dim strSQL1, strSQL2, strSQL3 As String
‘Jika sudah ada sebelumnya, hapus database! hati-hati
If Dir(App.Path & “\Penjadwalan Produksi.mdb”) _
<> “” Then
Kill App.Path & “\Penjadwalan Produksi.mdb”
‘Buat database
Set db = CreateDatabase(App.Path & _
“\Penjadwalan Produksi”, dbLangGeneral)
‘Buat tabel bernama Part
Set td1 = db.CreateTableDef(“Part”)
‘Definisikan field utk tabel Part
With td1
.Fields.Append .CreateField(“PartID”, dbText, 10)
.Fields.Append .CreateField(“PartName”, dbText, _
25)
.Fields.Append .CreateField(“Specification”, _
dbText, 100)
.Fields.Append .CreateField(“PartGroupID”, _
dbText, 5)
End With
‘Tambahkan field yg ada di tabel Part ke database
db.TableDefs.Append td1
‘Buat tabel bernama Part
Set td2 = db.CreateTableDef(“PartGroup”)
‘Definisikan field utk tabel PartGroup
With td2
.Fields.Append .CreateField(“PartGroupID”, _
dbText, 5)
.Fields.Append .CreateField(“PartGroup”, _
dbText, 15)
End With
‘Tambahkan field yg ada di tabel Part ke database
db.TableDefs.Append td2
‘Buat tabel bernama Resource
Set td3 = db.CreateTableDef(“Resource”)
‘Definisikan field utk tabel Resource
With td3
.Fields.Append .CreateField(“ResourceID”, _
dbText, 5)
.Fields.Append .CreateField(“ResourceName”, _
dbText, 20)
.Fields.Append .CreateField(“Speed”, dbInteger)
.Fields.Append .CreateField(“Scrap”, dbInteger)
.Fields.Append .CreateField(“Operator”, dbByte)
End With
‘Tambahkan field yg ada di tabel Part ke database
db.TableDefs.Append td3
‘Buat index/primary key untuk setiap table
strSQL1 = “CREATE INDEX PartID On Part (PartID) WITH
PRIMARY”
db.Execute strSQL1
strSQL2 = “CREATE INDEX PartGroupID On PartGroup
(PartGroupID) WITH PRIMARY”
db.Execute strSQL2
strSQL3 = “CREATE INDEX ResourceID On Resource
(ResourceID) WITH PRIMARY”
db.Execute strSQL3
‘jika berhasil, tampilkan pesan…
MsgBox “Database berhasil dibuat!”, vbInformation, _
“Sukses Buat Database”
End Sub
Mengetahui Daftar Field di Tabel Database(DAO)
Mengetahui daftar nama field di suatu tabel database MS Access.
Langkah2:
1. Buat 1 Project baru dengan 1 Form, 1 ListBox, dan 1Commandbutton.
2. Tambahkan reference Microsoft DAO 3.51 Object Library.
3. Ketik coding berikut ke editor form yang bertalian.Ketik Coding berikut pada Form.
Code:
Public Function FieldNames(dbPath As String, _
TableName As String) As Collection
‘Input:
‘dbPath: Path lengkap file database MS Access
‘TableName: Nama tabel di dalam database
Dim oCol As Collection
Dim db As DAO.Database
Dim oTD As DAO.TableDef
Dim lCount As Long, lCtr As Long
Dim f As DAO.Field
On Error GoTo errorhandler
Set db = Workspaces(0).OpenDatabase(dbPath)
Set oTD = db.TableDefs(TableName)
Set oCol = New Collection
With oTD
lCount = .Fields.Count
For lCtr = 0 To lCount – 1
oCol.Add .Fields(lCtr).Name
List1.AddItem .Fields(lCtr).Name
Next
End With
MsgBox FieldNames
db.Close
Set FieldNames = oCol
Exit Function
errorhandler:
On Error Resume Next
If Not db Is Nothing Then db.Close
Set FieldNames = Nothing
Exit Function
End Function
Private Sub Command1_Click()
Call FieldNames(App.Path & “\Akademik.mdb”, _
“Mahasiswa”)
End Sub
Mengetahui Daftar Field di Tabel Database(ADO)
Mengetahui daftar nama field beserta tipe dan ukuran field di suatu tabel database menggunakan reference ADO. Ketika Anda mengklik nama tabel di daftar List1, maka seluruh field yang terdapat di tabel tersebut akan ditampilkan di List2. Jika nama field di List2 diklik, akan ditampilkan tipe dan ukuran field tersebut
Langkah2:
1. Buat 1 Project baru dengan 1 Form.
2. Tambahkan 2 ListBox, 1 Commandbutton, dan 2 Label.
3. Tambahkan reference Microsoft ActiveX Data Objects 2.0 Library dari menu Project-References.
4. Ketik coding berikut ke editor form yang bertalian. Ketik coding berikut ini pada Form.
Code:
‘Variabel Connection dan Recordset ADO
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
‘Buat tipe data untuk menampung data tipe dan ukuran
Private Type arrTipe
Tipe As String
Ukuran As Integer
End Type
‘Buat array dinamis bertipe arrTipe di atas
Dim tabTipe() As arrTipe
Private Sub DaftarTabel(Daftar As ListBox)
On Error GoTo Pesan
‘Inisialisasi variabel Connection
Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
‘Sesuaikan lokasi database di PC Anda
cnn.ConnectionString = _
“Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=C:\ADOKontrol\mahasiswa.mdb;” & _
“Jet OLEDB:Database Password=;”
cnn.Open
‘Buka skema tabel dengan OpenSchema
Set rs = cnn.OpenSchema(adSchemaTables)
‘Bersihkan daftar tempat menampungnya dulu
Daftar.Clear
While rs.EOF <> True
‘MSys untuk tabel sistem di MS Access
‘sys biasanya tabel sistem di MS SQL Server
‘Jadi, tabel sistem tidak perlu ditampilkan…
If Left(rs.Fields(“Table_Name”).Value, 4) <> _
“MSys” And _
Left(rs.Fields(“Table_Name”).Value, 3) <> _
“sys” Then
‘Tambahkan ke daftar…
Daftar.AddItem rs.Fields(“Table_Name”)
End If
rs.MoveNext
Wend
‘Jika sudah selesai, sorot item paling atas
Daftar.Text = Daftar.List(0)
Exit Sub
Pesan: ‘Jika ada error, tampilkan nomor dan deskripsinya
MsgBox Err.Number & ” – ” & _
Err.Description, vbCritical, “Error”
End Sub
Private Sub Command1_Click()
‘Tampilkan daftar tabel ke List1
Call DaftarTabel(List1)
End Sub
Private Sub DaftarField(NamaTabel As String, Daftar _
As ListBox)
Dim Adofl As ADODB.Field, i As Integer
‘Gunakan kembali variabel rs, tapi bersihkan dulu.
Set rs = New ADODB.Recordset
‘Buka tabel dari parameter
rs.Open NamaTabel, cnn, adOpenKeyset, _
adLockOptimistic, adCmdTable
‘Alokasi ulang array dinamis untuk menampung jumlah
‘field
ReDim tabTipe(rs.Fields.Count)
‘Bersihkan daftar tempat menampungnya dulu
Daftar.Clear
‘Untuk setiap Field di Recordset rs
For Each Adofl In rs.Fields
‘Tambahkan satu per satu ke daftar
Daftar.AddItem Adofl.Name
‘Tampung ke array tipe dan ukurannya
tabTipe(i).Tipe = TipeField(Adofl.Type)
tabTipe(i).Ukuran = Adofl.DefinedSize
i = i + 1 ‘Counter untuk maju ke berikutnya
Next
‘Setelah selesai, sorot item yang teratas
Daftar.Text = Daftar.List(0)
End Sub
Private Sub Form_Load()
‘Kosongkan label mula-mula
Label1.Caption = “”
Label2.Caption = “”
End Sub
Private Sub List1_Click()
‘Jika item (namatabel) di List1 diklik, maka tampilkan
‘daftar field dari tabel ybt di List2
Call DaftarField(List1.Text, List2)
End Sub
Private Sub List2_Click()
‘Jika item di List2 diklik, maka tampilkan tipe dan ‘ukuran
field-nya
If List2.ListIndex <> -1 And _
tabTipe(List2.ListIndex).Tipe <> “” Then
‘Tampilkan tipe dan ukurannya masing-masing
‘ke Label1 dan Label2
Label1.Visible = True
Label2.Visible = True
Label1.Caption = “Tipe Field: ” & _
tabTipe(List2.ListIndex).Tipe
Label2.Caption = “Ukuran Field: ” & _
tabTipe(List2.ListIndex).Ukuran
Else
‘Jika record tidak ada…
Label1.Visible = False
Label2.Visible = False
End If
End Sub
Public Function TipeField(intType As Integer) As String
‘Fungsi berikut untuk menentukan tipe suatu field
Select Case intType
Case adEmpty
TipeField = “adEmpty”
Case adTinyInt
TipeField = “adTinyInt”
Case adSmallInt
TipeField = “adSmallInt”
Case adInteger
TipeField = “adInteger”
Case adBigInt
TipeField = “adBigInt”
Case adUnsignedTinyInt
TipeField = “adUnsignedTinyInt”
Case adUnsignedSmallInt
TipeField = “adUnsignedSmallInt”
Case adUnsignedInt
TipeField = “adUnsignedInt”
Case adUnsignedBigInt
TipeField = “adUnsignedBigInt”
Case adSingle
TipeField = “adSingle”
Case adDouble
TipeField = “adDouble”
Case adCurrency
TipeField = “adCurrency”
Case adDecimal
TipeField = “adDecimal”
Case adNumeric
TipeField = “adNumeric”
Case adBoolean
TipeField = “adBoolean”
Case adError
TipeField = “adError”
Case adUserDefined
TipeField = “adUserDefined”
Case adVariant
TipeField = “adVariant”
Case adIDispatch
TipeField = “adIDispatch”
Case adIUnknown
TipeField = “adIUnknown”
Case adGUID
TipeField = “adGUID”
Case adDate
TipeField = “adDate”
Case adDBDate
TipeField = “adDBDate”
Case adDBTime
TipeField = “adDBTime”
Case adDBTimeStamp
TipeField = “adDBTimeStamp”
Case adBSTR
TipeField = “adBSTR”
Case adChar
TipeField = “adChar”
Case adVarChar
TipeField = “adVarChar”
Case adLongVarChar
TipeField = “adLongVarChar”
Case adWChar
TipeField = “adWChar”
Case adVarWChar
TipeField = “adVarWChar”
Case adLongVarWChar
TipeField = “adLongVarWChar”
Case adBinary
TipeField = “adBinary”
Case adVarBinary
TipeField = “adVarBinary”
Case adLongVarBinary
TipeField = “adLongVarBinary”
Case adChapter
TipeField = “adChapter”
Case dbBoolean
TipeField = “dbBoolean”
Case dbByte
TipeField = “dbByte”
Case dbInteger
TipeField = “dbInteger”
Case dbLong
TipeField = “dbLong”
Case dbCurrency
TipeField = “dbCurrency”
Case dbSingle
TipeField = “dbSingle”
Case dbDouble
TipeField = “dbDouble”
Case dbDate
TipeField = “dbDate”
Case dbText
TipeField = “dbText”
Case dbLongBinary
TipeField = “dbLongBinary”
Case dbMemo
TipeField = “dbMemo”
Case dbGUID
TipeField = “dbGUID”
End Select
End Function
Private Sub Form_QueryUnload(Cancel As Integer, _ UnloadMode
As Integer)
‘Tutup semua variabel recordset dan connection
rs.Close
cnn.Close
‘Bersihkan memory yang telah digunakan
Set rs = Nothing
Set cnn = Nothing
End Sub

1 Komentar

  1. […] Source code auto starup, Command button, ComboBox, Tombol form lain, Tombol dari coding, Database1, Database2, Database3, Date and time, Date and time2, Date and time3, Date and time4, Date and […]


Comments RSS TrackBack Identifier URI

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s