Friday, February 17, 2017

Function Untuk Menghapus PRIMARY KEY dan Menghapus INDEX

www.AstroDigi.com AstroDigi.com | Jumat, 17 Feb 2017 | Dalam artikel kali ini saya akan berbagi mengenai cara untuk menghapus Primary Key yang ada pada sebuah tabel dan juga cara untuk menghapus Index yang ada pada sebuah field.

Dalam sebuah tabel Primary Key hanya boleh ada satu saja, maka bila seorang programmer ingin menambahkan sebuah field dengan Primary Key, maka Primary Key yang sudah ada harus dihapus terlebih dahulu.

Index diperlukan untuk mempercepat proses pengolahan data pada database, karena dengan adanya Index, proses penemuan data akan menjadi lebih cepat. Namun keberadaan Index membuat sebuah field tidak dapat dihapuskan lewat instruksi VBA. Programmer harus melakukan penghapusan manual bila ingin menghapus field yang masih ada Index-nya.

Nah .. bila diperlukan, maka dua buah function yang saya bagikan kali ini akan dapat digunakan untuk menghapus Primary Key dan function lainnya dapat digunakan untuk menghapus Index.


'Function untuk menghapus Primary Key:

Public Function delPK(tableKu As String)On Error Resume Next    'lanjut saja kalau ada kesalahan

Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim delTable As Boolean
Set Db = CurrentDb()

With Tbl
Set Tbl = Db.TableDefs(tableKu)
Db.Execute "DROP index primarykey on " & tableKu & ";"
End With

Set Tbl = Nothing
Db.Close
End Function

'------------------------------
'Function untuk menghapus Index:

Public Function delInd(tableKu As String, fieldKu As String)Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim delTable As Boolean
Set Db = CurrentDb()

With Tbl

Set Tbl = Db.TableDefs(tableKu)
Db.Execute "ALTER TABLE " & tableKu & " DROP CONSTRAINT " & fieldKu & ";"
End With

Set Tbl = Nothing
Db.Close
End Function

'------------------------------
Simpan kedua function ini di Module, berikan sembarang nama, misalnya: Module1
Cara penggunaannya untuk menghapus Primary Key:
'misal nama tabel adalah "Karyawan"
delPK("Karyawan")
Cara penggunaannya untuk menghapus Index:
'misal nama tabel adalah "Karyawan" dan nama field "IDKaryawan"
delInd("Karyawan", "IDKaryawan")
Singkat dan mudah bukan? Selamat mencoba .. have a nice day :-)

 www.AstroDigi.com (Nino Guevara Ruwano)