Bagaimana cara simpan gambar atau foto ke database dengan Visual Basic ? Nah itulah yang kita bahas tutorial kali ini lengkap dengan source code script programnya, teman-teman mungkin bertanya kok dibahas sedangkan di internet sudah banyak ditemukan mengenai artikel seperti ini?.
Untuk menjawab pertanyaan tersebut, di sini saya mau mengajak teman-teman lebih memahami dengan pembahasan yang sederhana, langkah demi langkah sehingga harapan saya teman-teman lebih mudah mengerti. Baiklah biar tulisan ini tidak terlalu panjang mari kita langsung saja menuju ke pokok pembahasannya.
Pertama yang perlu kita siapkan adalah database. Database yang saya gunakan di sini adalah database access dengan format 2003, langsung saja kita buat databasenya dengan kriteria sebagai berikut :
Nama Database | db.mdb |
Nama Tabel | tb_foto |
– – – – – – – – – – – – – – – – – – – – – – | |
Nama field | Data Tipe |
ID | AutoNumber |
nama | Text |
gambar | OLE Object |
Database ini juga saya gunakan dalam tutorial menyimpan gambar ke database menggunakan delphi. Oh ya, simpan database yang sudah dibuat tadi ke lokasi yang sama dengan lokasi project/ program vb-nya. Setelah selesai membuat database, sekarang waktunya membuat project baru dengan membuka visual basic 6.0 selanjutnya kita memerlukan beberapa komponen dan reference yang harus di tambahkan ke project kita. Silahkan ikuti langkahnya sebagai berikut :
- Pada menu project klik Components
- Setelah itu akan muncul dialog windows, tambahkan komponen dengan memberi centang. Adapun komponen yang kita butuhkan di sini tampak pada gambar di bawah, setelah itu klik Ok.
- Lakukan hal yang sama dengan langkah 1, tetapi kali ini yang diklik adalah References. Cari dan beri centang reference ADO, adapun reference ADO tersebut adalah yang diberi tanda panah pada gambar di bawah. Bila sudah klik Ok.
Sampai di situ lancar ya? :). Nah tugas selanjutnya adalah menambahkan komponen ke form, berikut yang kita perlukan :
- 1 buah Button
- 1 buah DataGrid
- 1 buah Label
- 1 buah Adodc
- 1 buah CommonDialog
- 1 buah Image
- 1 buah TextBox
Sampai di situ masih lancar ya?. Untuk DataGrid kita beri perlakuan khusus, klik kanan pada DataGrid(lihat gambar di bawah) dan lakukan Properties. Pada Column, pilih Column 0 kemudian isi Caption dan DataField sesuai gambar di bawah ini :
Tugas selanjutnya melakukan coding pada form yang sudah kita tambahkan komponen tadi.
Tambahkan barisan kode berikut ke bagian paling atas code form yang bertujuan untuk mendefenisi variabel yang akan kita butuhkan :
1 2 3 | Dim conn As New ADODB.Connection Dim strconnect As String Dim gambarku As New ADODB.Stream |
Setelah itu kita tambahkan fungsi untuk membuka koneksi ke database:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 |
Untuk event/saat form di load kodenya sebagai berikut :
1 2 3 4 5 6 7 8 | 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 |
Kode untuk DataGrid ketika diklik, penjelasannya pada komentar kode programnya ya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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 |
Nah ini barisan kode yang terakhir yang akan menyimpan data ke database ketika Button Command1 di klik :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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 |
Kata kunci pencarian: Cara simpan gambar atau foto ke database Access dan Visual Basic 6.0.
Okey… Sekian dulu tutorial dari saya semoga bermanfaat buat sahabat CB, jangan lupa di save projectnya. Silahkan beri tanggapan, apakah penjelasan saya mudah dipahami atau tidak supaya saya bisa memperbaiki cara menjelaskan pada tutorial berikutnya, dan berikan juga +1 Google sahabat di tulisan ini
Kami (Catatan Belajar) juga hadir di Facebook, like kami ya klik tombol berikut:
Signature :
No copy paste content please…. If you want do that, please include the original source. Original Post by catatanbelajar.com, written by Ivo Idham Perdameian, Google plus profile.
Terima Kasih Banyak sangat – sangat membantu.. 😀
Sama-sama mas bro 🙂
Jossssssss,…..top beudh
LOK PAKE SQL SERVER 2000 GMANA MAS BRO..
TIPE DATA N SOURCECODENYA
PLEASE…
TLONG KRIM KE
[email protected]
Caranya sama yang penting tipe datanya harus OLE Object mas bro.
pas di tarik ke crystal report 8.5, jadinya blob file, ga muncul gmbarnya, kadang muncul tpi separo
mau tanya, “gambarku” itu nama dari apanya ya?
Itu defenisi untuk ADODB.Stream yang menangani type data blob di databasenya.
coba lihat ini seperti yang saya tulis di atas:
oh, oke terima kasih. 😀
1 lagi mas, foto bisa ngak dimasukkan kedalam datagrid ?
Maksudnya fotonya ditampilin di datagrid ya? Wah klo begitu saya belum tau mbak 🙂
kalo common dialog nya g ada d component gmana mas bro?
Biasanya selalu ada mas bro, bearti vbnya mas bro kurang komplit komponennya, kalau adakan tinggal ditambahin kayak langkah no 2 pada tutorial di atas.
bisa mas broo ternyata kudu di instal dlu ya kalo win 7… saya k command prompt dlu…. hehehehe…
Siplah klo gitu, jangan lupa like fb dan tambahkan kami di lingkaran Google+ ya, supaya artikel CB (Catatan Belajar) bisa bermanfaat buat yang lainnya.
gambarku itu apaan bro??.. malah jd error ya??
gambarku adalah sebuah variabel untuk ADODB.Stream yang didefenisikan oleh
Pada bagian paling atas kode form
oke broo… upload and simpen gambar finish..
masalahna skarang klo gambarna gde, mau pake scroll gmana codingna?.. saya udah coba qo g bs yaa??
Scroll gimana maksudnya?
brooo… soal simpan n upload gambar finish… masalahna, klo gambarna gede, dibuat ada scroll na gmana codingna??.. nyoba” blm ada coding yg pas nih.. muncul gambarna blm maximal
Di VB 6 setau saya gak ada scroll untuk imagenya, jadi solusi satu-satunya pada bagian properti image buat stretch bernilai true aja.
Atau pada kode program misalnya di Sub Form_Load() begini:
mas .. bisa bantu gak ?
aku bikin program untuk simpan gambar, tapi masalahnya ketika sumber dari gambar itu dihapus, misal dari folder “gambar” kemudian muncul pesan eror … karena sumber gambar sudah dihapus
kira2 kalo pake cara di atas bisa gak ya? meski gambar sudah dihapus dari sumbernya tapi tetap bisa muncul
Klo pake cara di atas bisa, meskipun gambar sumbernya sudah dihapus karena kode program diatas akan menyimpan gambarnya ke database. Ibaratnya gambar yang asli di copy trus disimpan ke databasenya.
terima kasih mas .. saya coba dulu,
mas .. kenapa di project aku ADODB.Stream nya tidak berfungsi ya ?
kalo pake selain adodb.stream apa bisa ?
Sepertinya ada yang mas lewatkan dilangkah 1, 2, dan 3 makanya jadi gak berfungsi.
iya bener sudah bisa…
mas minta tolong .. aku mau nampilin gambar lewat pencarian kode barang, tapi selalu muncul error dengan peringatan “Invalid Picture” begini source codenya
apa yang salah ya ?
Oke coba ganti kayak begini:
Kodemu di atas pake CommonDialog1 buat apa?
masih belum bisa mas .. erornya saat temporary gambar yang disimpan di tampilkan
Errornya bilang apa? bisa tampilkan screenshotnya?
mas, pas di Run kok malah yang keluar MsgBox nya? yang tulisannya “koneksi tidak bisa dibuka,pastikan databasenya ada dan tidak sedang digunakan oleh aplikasi lain”. yang salah apanya ya?
Program ini menggunakan database mas, databasenya udah dibuat belum? coba ikuti tutorial ini dengan teliti mulai dari langkah pertama pasti gak muncul error. Sip… 🙂
kok programnya pas di Run malah yang keluar MsgBox nya?yang “koneksi tidak dpt dibuka, pastikan databasenya ada dan tidak sedang dibuka oleh aplikasi lain”, yang salah apanya ya?
mas, ko punyaku kalau dirun selalu tampil “koneksi tidak bisa dibuka “. apa salahnya? padahal dari awal saya selalu melihat petunjukkan.
Itu kemungkinan karena database Accessnya belum dibuat, silahkan buat dulu seperti pada tutorial dibagian paling atas (paragraf kedua)
klo dirun selalu ada ‘syntax error in from clause’ dan yang selalu diwarnai kuning itu ada diform_load adodc1.refresh. apa salahnya ya?
Itu karena sintak sql-nya belum benar. Pastikan nama tabel pada databasenya adalah tabel tb_foto seperti yang ditutorial.
mas aku ga bisa nampilin ini
http://imageshack.us/a/img819/5597/references.png
Mas aku ga bisa aktifin ini
Microsoft ActiveX Data Object 2.8 Library
walaupun sudah di OK berulang kali tetep ga aktif
Wah kok gak bisa? semua orang bisa kok mas. Cba mas cek-cek lagi.
saya sudah coba tapi gagal terus bisa minta program yg sudah running tidak pak?
Mohon bantuannya
terima kasih
Yang gagal dibagian mana?
mas , saya coba,, tapi ada msg box ” path not found” apa artinya ya mas?
mohon bantuannyaa 😀 makaish
Itu karena tidak ditemukan
lokasi
yang dicari sama programnya mas.mas, itukan file jpg masuk ke databse, gmn cara data gmabar yg di dalam databse di keluarkan dan di save menjadi file jpg kembali ?
Komen bagian ini
Kill App.Path & "Temp"
nanti ada file Temp itu adalah gambarnyamas g bisa e…keluar tulisannya compile error:
user-defined type not defined
Itu karena ActiveX Data Objects nya gak ada, makanya saya sarankan teliti mengikuti langkah-langkahnya mas hehe… Coba langkah no 3 diulang.
@ivo
mas klw type data nya longblob bsa gk soal na saya pke xampp untuk database na…
trims.
Boleh mas Fakhri.
masss,, bagai mana cara agar tdk harus conect lagi
Maksudnya?
gan codingnya bnyk yg kepotong , gw mw yg lengkap dong, makum gw newbie 🙁
kirimin k email gw coding yg lengkap dong klo bole, d atas bnyk yg kepotong 🙁
eh ada scroll wkwkwk
Wkwkwk…
Bearti udah komplit tuh.
mas bro kode untuk membuka koneksi ke database nya kok error ya ?
mohon penjelasannya makasih
Saya sudah uji dengan baik mas bro sebelum posting. Jadi saya sarankan untuk mengecek kembali kode yang mas bro salin dan pastikan ikuti langkahnya dengan teliti baris perbaris. Jika masih ada error (muncul pesan kesalahan) silahkan tunjukan pesan errornya kalau perlu di tampilan layarnya diambil gambarnya (screenshot) dan gambarnya bisa diupload pada situs layanan gambar seperti imageshack.us atau imgur.com dan berikan tautan (link) gambarnya supaya bisa ditangani lebih lanjut. Oke mantep 😀
Salam kenal Mas
Aku punya masalah tentang vb.6, bisa diberikan contoh kode untuk menampilkan pesan bahwa gambar atau foto yang dipilih terlalu besar. mohon pencerahannya Mas
Sekian dan terima kasih.
Besar ukuran filenya atau besar dimensinya?
Klo besar dimensinya vb 6:
Kalau ukuran file:
Silahkan dicoba dulu, saya belum nyoba masalahnya.
halo mas, mohon bantuannya, kalo menampilkan photo di form penggajian gmna tuh mas?
Sama aja caranya dengan yang di tutorial ini.
Ni contoh kodenya mas
Private Sub cmdcri_Click()
CmGmbr.Filter = “Gambar Format JPEG (*.jpg) | *.jpg”
CmGmbr.ShowOpen
Gmbr1.Picture = LoadPicture(CmGmbr.FileName)
Gambar = CmGmbr.FileName
End Sub
jadi pada saat foto yang dipilih lebih dari yang ditentukan misalnya 700 kb. maka muncul pesan foto yang anda pilih terlalu besar, ukuran foto maksimal 700 kb.
Mohon pencerahannya mas.
Coba gini (saya belum coba lho):
Terima kasih banyak Mas, atas bantuannya,,,
Soalnya kode yang Anda kasih udah berhasil.
Sekali lagi terima kasih banyak.
Okok, mi sama.
Selamat pagi Mas
Maaf mau nanya lagi, bisa minta contoh kode hasil output dalam bentuk pdf.
Memangnya ada masalah apa mbak? contoh kode apa contoh hasil? coba terangkan lebih detail mbak, saya belum paham maksudnya 😀
pagi mas saya mau nanya nih,
kalo ditambah tombol delete buat ngehapus databasenya gmn ya ama tombol simpannya jd manual bukan yg otomatis pas ngeload gmbr langsung kesimpan datanya.
soalnya saya lg coba bikin database karywan beserta fotonya.
mohon bimbingannya trims 🙂
Oh… Oke.
Ubah barisan kode paling atas code form yang bertujuan untuk mendefenisi variabel yang akan kita butuhkan menjadi :
Setelah itu, ini saya salinkan tombol simpannya yg sebelumnya:
Harus diubah kayak gini untuk hanya mengambil gambar:
Lalu tambahkan tombol satu lagi dan isi kodenya begini untuk menyimpan ke database:
Untuk tombol hapusnya nanti saya tambahkan lagi, silahkan balas dulu komentar saya ini supaya saya tidak sia-sia menulis panjang-panjang :D.
Makasih mas atas bantuannya.
Ntar aku coba kodenya…
Source kode untuk menghasilkan output, jadi outputnya dalam bentuk pdf..
ok terimakasih mas sdh mau berbagi 🙂
izin buat nyoba dulu 🙂
Silahkan!
mas kok tulisanya, koniksi tidak bisa di buka pastikan data base tidak di buka aplikasi lain . .
itu kenapa ya gan?
Itukan databasenya pake access. Nah databasenya udah dibuat belum? Kalau belum maka akan muncul pesan error itu. Jika sudah pastikan databasenya namanya
db.mdb
(format access 2003) setelah itu simpan databasenya harus satu folder dengan project VB yang dibuat, jangan beda folder!. Jika sudah dibuat seperti itu masih ada error kayak tadi tutup MS. Access yang membukadb.mdb
habis itu jalankan programnya lagi.gimana cara menampilkan data foto(nama foto) yang telah disimpan, tampil di datagrid?
VB 6 setahu saya belum bisa, jika VB.NET sudah bisa menampilkan gambar di DataGridView.
mas gimana caranya agar krusornya bisa turun sendiri pada data gridnya sampai data terakhir..
Yang pasti adalah harus ditambahkan kode programnya. Cara yang sederhana adalah pakai Adodc kayak yang kode saya di atas itu lhoh…
gan, caranya penyimpanan video bagaimana?
terima kasih.
tolong infonya, maklum pemula.
Gak bisa dengan cara yang di tutorial ini, karena yang di tutorial ini khusus untuk menyimpan gambar ke database (tipe data blob/ OLE Object).
Jika ingin menyimpan berkas selain gambar coba dengan logika pemrograman yang saya tulis menggunakan delphi.
muantabs, mas Bro.. ini yang saya butuhkan.. Sukses Mas Bro..
Siap bro, syukurlah jika tulisan ini membantu & terimakasih juga sudah berkomentar.
error pada .addnew mas . . .
Baris keberapa?
ada tutorial buat menampilkan data tipe image kedalam crystal report pake vb nga ? menggunakan vb 2003
Masih belum ada bro
Pagi Gan, mau tanya nih kenapa vb saya tidak bisa dijalankan yah dia muncul pesan dari coding yang kita ketikkan yaitu ‘koneksi tidak bisa dibuka…’ nah saya juga sempat membaca comment sebelumnya juga mengalami hal yang sama dan saya juga sudah mencoba melakukan saran yang diberikan dan alhasil masih tetap sama.. apa yang harus saya lakukan yah? thanks gan 🙂
Lokasi databasenya harus disimpan dilokasi yang sama dengan lokasi program vb-nya.
commandnya kok eror ya bos
Yang mana?
Mas mau tanya, kenapa saat saya mau ambil gambar dr background image ga bisa ya, sedangkan gambar sudah saya masukan kedalam project resource, makasih
Ikuti aja tutorialnya ini, nanti bisa
Selamat pagi om..
Mau tanya kalau upload foto yang berukuran maximal gimana ? terima kasih..
Seperti tutorial di atas
Mas saya mau tanya untuk yang fungsi Dim gambarku As ADODB.Stream itu menggunakan reference apa ya mas soalnya pas di tahap 1 , 2, dan 3 gambarnya gak ada mas. Jadi program saya pas saat di compile error di Dim gambarku As ADODB.Stream
Ini tutorial untuk vb 6.
Error terjadi karena melewati langkah 1, 2, dan 3
Mas saya mau tanya untuk yang Dim gambarku As OLEDB.Stream pake reference yang mana ya
Langkah 123 di atas gambarnya tidak ada mas
Sudah dibalas di atas.
mas, caption dan datafieldnya diisi apa ya mas, gambar di web nya udah ga muncul lagi.. trims
“gambarku” itu kok error mas, gimana caranya?
Kalau error mungkin ada yang dilewati di langkah 1, 2 atau 3
Kelihatan kok gambarnya
Mas Maaf mau tanya nih..
Kalau kita mau gunakan Database nya MS SQL bisa gak dengan syntax diatas ?
Boleh minta contoh programnya mas ??
Terimakasih
Bisa mas
kalok gambarnya lebih dari satu gimana…???
Buat dua kali aja biar gak repot, klo dah mahir pemrograman nantikan idenya keluar sendiri.
gambar dari web ga keliatan gan
jadi ga bisa belajarnih
Bisa nih bro
Malam mas, mau nanya nih pas load image dari SQL ke crystal report 8.5 gambarnya pecah yah (), ada solusi mas?. Thanks
Coba cek gambarnya, jangan-jangan ukuran gambarnya kecil?
mas itu langkah 1 2 3 nya gambarnya eror ga muncul di saya.
jadi susah ini pilih references ADO yang versi berapa mas 🙁
Waduh gitu ya? Memang kalau koneksi internet gak kencang jadi gak kelihatan gambarnya.
mas saya ,mau tanya pada saat buat database, kok gak ada tipe ole object yahh
Selamat Siang Pak Bro, mau nanya saat kita mau upload file pada button upload, jangan ditampilkan file nya bisa? cuman nama filenya aja gitu?