Input images ke Access dengan VB
Go to Core Coding VB
Coding sebagai berikut:
Dim conn As New ADODB.Connection
Dim strconnect As String
Dim gambarku As New ADODB.Stream
' Cara menyimpan gambar atau foto ke database Access dengan Visual Basic 6
' Baca tutorial lengkap di
Function OpenConn() As Boolean
On Error GoTo ErrHandler
strconnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb"
If conn.State = adStateOpen Then
conn.Close
Set conn = New ADODB.Connection
conn.Open (strconnect)
OpenConn = True
Else
conn.Open (strconnect)
OpenConn = True
End If
Exit Function
ErrHandler:
OpenConn = False
MsgBox "Koneksi tidak bisa dibuka, pastikan databasenya ada dan tidak sedang dibuka oleh aplikasi lain", vbExclamation, "Koneksi Error"
End Function
Private Sub Command1_Click()
' Langsung simpan gambar
If Text1 = "" Then MsgBox "Isi nama dulu": Exit Sub
Dim sumber, Path As String
CommonDialog1.DialogTitle = "Pilih Gambar"
CommonDialog1.Filter = "Picture (*.Jpg; *.Jpeg; *.Bmp; *.Gif)|*.jpg; *.jpeg; *.bmp; *.gif"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
sumber = CommonDialog1.FileName
Image1.Picture = LoadPicture(sumber)
With Adodc1.Recordset
.AddNew
.Fields.Item(1).Value = Text1
Set gambarku = New ADODB.Stream
gambarku.Type = adTypeBinary
gambarku.Open
gambarku.LoadFromFile CommonDialog1.FileName
.Fields.Item(2).Value = gambarku.Read
.Update
End With
MsgBox "Data ditambahkan'"
Image1.Picture = LoadPicture("")
End If
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' Kita mau tampilkan data ke Text1 dan Image1
On Error GoTo ErrHandler
With Adodc1.Recordset
' Nilai Text1
Text1 = .Fields.Item(1).Value
' menggunakan ADODB.Stream karena gambarnya dari database
Set gambarku = New ADODB.Stream
gambarku.Type = adTypeBinary
gambarku.Open
gambarku.Write .Fields.Item(2).Value
' simpan temporary gambar ke file
gambarku.SaveToFile App.Path & "\Temp", adSaveCreateOverWrite
' temporary gambar yang disimpan ke file tadi di tampilkan ke Image1
Image1.Picture = LoadPicture(App.Path & "\Temp")
' hapus temporary gambar
Kill App.Path & "\Temp"
End With
Exit Sub
ErrHandler:
' kalau gambar kosong di database kita buat kosong juga untuk Image1
If Err.Number = "3001" Then Image1.Picture = LoadPicture(""): Exit Sub
End Sub
Private Sub Form_Load()
If Not OpenConn Then End
Adodc1.ConnectionString = strconnect
Adodc1.RecordSource = "SELECT * FROM tb_foto"
Adodc1.Refresh
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = Adodc1
End Sub
-----
Interfacing:
Coding sebagai berikut:
Dim conn As New ADODB.Connection
Dim strconnect As String
Dim gambarku As New ADODB.Stream
' Cara menyimpan gambar atau foto ke database Access dengan Visual Basic 6
' Baca tutorial lengkap di
Function OpenConn() As Boolean
On Error GoTo ErrHandler
strconnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb"
If conn.State = adStateOpen Then
conn.Close
Set conn = New ADODB.Connection
conn.Open (strconnect)
OpenConn = True
Else
conn.Open (strconnect)
OpenConn = True
End If
Exit Function
ErrHandler:
OpenConn = False
MsgBox "Koneksi tidak bisa dibuka, pastikan databasenya ada dan tidak sedang dibuka oleh aplikasi lain", vbExclamation, "Koneksi Error"
End Function
Private Sub Command1_Click()
' Langsung simpan gambar
If Text1 = "" Then MsgBox "Isi nama dulu": Exit Sub
Dim sumber, Path As String
CommonDialog1.DialogTitle = "Pilih Gambar"
CommonDialog1.Filter = "Picture (*.Jpg; *.Jpeg; *.Bmp; *.Gif)|*.jpg; *.jpeg; *.bmp; *.gif"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
sumber = CommonDialog1.FileName
Image1.Picture = LoadPicture(sumber)
With Adodc1.Recordset
.AddNew
.Fields.Item(1).Value = Text1
Set gambarku = New ADODB.Stream
gambarku.Type = adTypeBinary
gambarku.Open
gambarku.LoadFromFile CommonDialog1.FileName
.Fields.Item(2).Value = gambarku.Read
.Update
End With
MsgBox "Data ditambahkan'"
Image1.Picture = LoadPicture("")
End If
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' Kita mau tampilkan data ke Text1 dan Image1
On Error GoTo ErrHandler
With Adodc1.Recordset
' Nilai Text1
Text1 = .Fields.Item(1).Value
' menggunakan ADODB.Stream karena gambarnya dari database
Set gambarku = New ADODB.Stream
gambarku.Type = adTypeBinary
gambarku.Open
gambarku.Write .Fields.Item(2).Value
' simpan temporary gambar ke file
gambarku.SaveToFile App.Path & "\Temp", adSaveCreateOverWrite
' temporary gambar yang disimpan ke file tadi di tampilkan ke Image1
Image1.Picture = LoadPicture(App.Path & "\Temp")
' hapus temporary gambar
Kill App.Path & "\Temp"
End With
Exit Sub
ErrHandler:
' kalau gambar kosong di database kita buat kosong juga untuk Image1
If Err.Number = "3001" Then Image1.Picture = LoadPicture(""): Exit Sub
End Sub
Private Sub Form_Load()
If Not OpenConn Then End
Adodc1.ConnectionString = strconnect
Adodc1.RecordSource = "SELECT * FROM tb_foto"
Adodc1.Refresh
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = Adodc1
End Sub
-----
Interfacing:
mas, saya mau mengambil gambar yang didatabase untuk ditampilkan di crystal report, trus saya pilih oleoject mas, knapa ya format untuk gambar bitmap tidak muncul mas, mohon solusinya mas...
BalasHapus