jump to navigation

Membuka database Access yang terproteksi oleh password (Set Database Password) Sat - Sep 2, 2000

Posted by supriyatna in Programming, Windows.
Tags: , , , , ,
add a comment

Sebagai salah satu cara untuk menjaga keamanan data pada Database Access yaitu dengan cara memberikan password terhadap database yang kita buat (Set database Password …). Berikut adalah contoh mengakses database yang sudah terproteksi oleh database password (password yang diberikan pada database adalah ‘sysadmin‘) dengan menggunakan ActiveX Data Access (ADO) dan menampilkannya pada Kontrol MSFlexGrid.

Berikut listing programmnya:

Option Explicit
Dim Conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub cmdOK_Click()
  Unload Me
End Sub

Private Sub Form_Load()
Dim i As Integer, nBaris As Integer
Dim LebarJudul
  ' Inisialisasi dari Variable yang akan digunakan

  LebarJudul = Array(400, 550 * 2, 500 * 4, 500 * 4)
  nBaris = 0
  Label1.Caption = "Menampilkan data kedalam MSFlexGrid " & _
    "dari database yang terproteksi oleh password " & _
    "(Set Database Password ...)"

  Set Conn = New ADODB.Connection
  Conn.ConnectionString = _
    "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
    "DBQ=" & App.Path + "\DB_TEST.mdb" & "; pwd=sysadmin"
  Conn.Open
  Set rs = New ADODB.Recordset
  rs.Open "SELECT * FROM USERS", Conn, _
    adOpenDynamic, adLockOptimistic

  With MSFlexGrid1
    .BackColor = &H80000018
    .Cols = rs.Fields.Count + 1
    ' Tulis judul tiap-tiap kolom dari Grid
    For i = 0 To .Cols - 1
      .ColWidth(i) = LebarJudul(i)
    Next i

    For i = 0 To rs.Fields.Count - 1
      .TextMatrix(0, i + 1) = rs.Fields(i).Name
    Next i

    ' Tampilkan data kedalam MSFlexGrid
    Do While Not rs.EOF
      nBaris = nBaris + 1
      .TextMatrix(.Rows - 1, 0) = Format(nBaris, "#.")
      For i = 0 To rs.Fields.Count - 1
        .TextMatrix(.Rows - 1, i + 1) = rs.Fields(i).Value
      Next i
      rs.MoveNext
      .Rows = .Rows + 1
    Loop
  End With

  ' Tutup semua Object dan buang dari memory
  rs.Close
  Set rs = Nothing
  Conn.Close
  Set Conn = Nothing

End Sub
Advertisements

Membuat MSFlexGrid agar dapat diedit (Editable) Sun - Jun 25, 2000

Posted by supriyatna in Programming, Windows.
Tags: , , ,
add a comment

Komponen MsFlexGrid memiliki lebih banyak feature dibandingkan dengan Grid / DBGrid standard yang berasal dari Visual Basic. Kelebihan tersebut diantaranya adalah dapat menggabungkan beberapa kolom atau baris (merge cell), dapat menentukan setting yang berbeda untuk setiap sel (cell-nya) dan masih banyak lagi feature yang lainnya. Namun sayang, dari kelebihan yang ada ternyata kemampuan untuk mengedit nilai yang berada pada sel di MsFlexGrid tidak disertakan didalamnya.

Sifatnya yang tidak dapat diedit inilah, yang kadang membuat jengkel dan para programmer, sehingga tidak sedikit programmer berusaha untuk mencara cara lain agar kekurangan ini dapat ditutupi —seperti: mencari komponen baru misalnya— ;-(. Namun dengan sedikit akal-akalan, sepertinya kekesalan anda tidak akan terus berlarut-larut dan andapun akan kembali menyukai VB.

Untuk mengatasi ini, idenya adalah dengan menambahkan komponen lain, yaitu menambahkan Kontrol TextBox yang fungsinya sebagi dump/buffer/tempat penyimpanan sementara yang pada kondisi normal Kontrol TextBox ini tidak terlihat (Properti .visible diset False), dan akan ditampilkan apa bila modusnya “Edit” (Ditandai dengan Even Double Click pada Kontrol MsFlexGrid) dengan mengambil nilai yang ada pada MsFlexGrid kedalam Kontrol TextBox. Nilai yang dikembalikan kedalam MsFlexGrid tergantung dari even KeyPressed pada Kontrol TextBox. ENTER maka nilainya akan dipindahkan kedalam MsFlexGrid, dan ESC jika ingin membatalkan pengeditan. Cukup sederhana bukan?.

Upss…satu masalah lagi sudah teratasi. 😉
Untuk lebih jelasnya, perhatikan potongan dari listing program dibawah ini.

' Grid1     : Kontrol MsFlexGrid
' Text1     : Kontrol TextBox
' Keterangan: Pada contoh, kolom yang dapat diedit hanya kolom
'             ketiga yaitu kolom email, dimana index pada
'             MsFlexGrid bernilai 2.
Option Explicit

Private Sub cmdClose_Click()
  Unload Me
End Sub

Private Sub Form_Load()
  Dim i As Integer
  Grid1.Cols = 3
  Grid1.ColWidth(0) = 400
  Grid1.ColWidth(1) = 2200
  Grid1.ColWidth(2) = 2200
  Label1.Caption = "Form ini digunakan untuk " & _
    "membuat MsFlexGrid agar dapat diedit " & _
    "nilainya. Pada contoh hanya kolom email " & _
    "saja yang dapat diedit." & vbCrLf & _
    "emailto:supriyatna@mailandnews.com"
End Sub

Private Sub Grid1_DblClick()
  If Grid1.Col = 2 Then
    Text1.Top = Grid1.CellTop + Grid1.Top
    Text1.Left = Grid1.CellLeft + Grid1.Left

    Text1.Text = Grid1.Text
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)

    Text1.Visible = True
    Text1.Height = Grid1.CellHeight
    Text1.Width = Grid1.CellWidth
    Text1.SetFocus
  End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then
    Grid1.Text = Text1.Text
    Text1.Visible = False
  ElseIf KeyAscii = 27 Then
    Text1.Visible = False
  End If
End Sub

Private Sub Text1_LostFocus()
  Text1.Visible = False
End Sub