Вы находитесь на странице: 1из 6

3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog

Coding4ever’s Blog
Just coding… coding… and coding… because coding should be fun :)
RSS

Search

Navigate…

Home
Archives
Gudang Software
Source Code
Aplikasi Gratis

Menyimpan Dan Menampilkan Foto Di Ms Access


Dec 30th, 2009 6:39 am | Comments

Disini saya tidak akan menjelaskan bagaimana melakukan koneksi ke database access, intinya aplikasi Anda sudah siap menjalankan
perintah SELECT, INSERT, UPDATE, dan DELETE. Jika Anda masih kesulitan bisa dilihat disini.

Untuk kasus disini kita akan menyimpan data mahasiswa dengan tiga field saja, lihat gambar berikut :

Khusus untuk field foto tipe yang dipilih adalah OLE Object, kita langsung aja copy paste kode berikut di module :

1 Option Explicit
2
3 Public Const CHUNK_SIZE As Long = 16384
4
5 Dim rsImage As ADODB.Recordset
6
7 Dim i As Long
8 Dim lsize As Long
9 Dim iChunks As Long
10 Dim nFragmentOffset As Long
11 Dim lchunks As Long
12
13 Dim nHandle As Integer
14 Dim varChunk() As Byte
15
16 Public Function fileExists(ByVal strNamaFile As String) As Boolean
17 If Not (Len(strNamaFile) > 0) Then fileExists = False: Exit Function
18
19 If Dir$(strNamaFile, vbNormal) = "" Then
20 fileExists = False
21 Else
22 fileExists = True
23 End If
24 End Function
25
26 Public Sub closeRecordset(ByVal vRs As ADODB.Recordset)
27 On Error Resume Next
28
29 If Not (vRs Is Nothing) Then
30 If vRs.State = adStateOpen Then
31 vRs.Close
32 Set vRs = Nothing
33 End If
34 End If
35 End Sub
36
37 Public Function addImageToDB(ByVal query As String, ByVal imageName As String, ByVal imageField As String) As Boolean
38 On Error GoTo errHandle
39
40 Set rsImage = New ADODB.Recordset
41 rsImage.Open query, conn, adOpenKeyset, adLockOptimistic
42 If Not rsImage.EOF Then

coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 1/6
3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog
43 nHandle = FreeFile
44 Open imageName For Binary Access Read As nHandle
45 lsize = LOF(nHandle)
46 If nHandle = 0 Then Close nHandle
47
48 lchunks = lsize / CHUNK_SIZE
49 nFragmentOffset = lsize Mod CHUNK_SIZE
50
51 ReDim varChunk(nFragmentOffset)
52 Get nHandle, , varChunk()
53 rsImage(imageField).AppendChunk varChunk()
54
55 ReDim varChunk(CHUNK_SIZE)
56 For i = 1 To lchunks
57 Get nHandle, , varChunk()
58 rsImage(imageField).AppendChunk varChunk()
59 DoEvents
60 Next
61 rsImage.Update
62 End If
63 Call closeRecordset(rsImage)
64
65 addImageToDB = True
66
67 Exit Function
68 errHandle:
69 addImageToDB = False
70 End Function
71
72 Public Function getImageFromDB(ByVal query As String) As IPictureDisp
73 Dim sFile As String
74
75 On Error GoTo errHandle
76
77 Set rsImage = New ADODB.Recordset
78 rsImage.Open query, conn, adOpenForwardOnly, adLockReadOnly
79 If Not rsImage.EOF Then
80 If Not IsNull(rsImage(0).Value) Then
81 nHandle = FreeFile
82
83 sFile = App.Path & "\output.bin"
84 If fileExists(sFile) Then Kill sFile
85 DoEvents
86
87 Open sFile For Binary Access Write As nHandle
88
89 lsize = rsImage(0).ActualSize
90 iChunks = lsize \ CHUNK_SIZE
91 nFragmentOffset = lsize Mod CHUNK_SIZE
92
93 varChunk() = rsImage(0).GetChunk(nFragmentOffset)
94 Put nHandle, , varChunk()
95 For i = 1 To iChunks
96 ReDim varChunk(CHUNK_SIZE) As Byte
97
98 varChunk() = rsImage(0).GetChunk(CHUNK_SIZE)
99 Put nHandle, , varChunk()
100 DoEvents
101 Next
102 Close nHandle
103
104 Set getImageFromDB = LoadPicture(sFile, , vbLPColor)
105
106 Else
107 Set getImageFromDB = Nothing
108 End If
109
110 Else
111 Set getImageFromDB = Nothing
112 End If
113 Call closeRecordset(rsImage)
114
115 Exit Function
116 errHandle:
117 Set getImageFromDB = Nothing
118 End Function

Untuk di form cukup dengan kode sederhana berikut :

1 Private Sub cmdSimpan_Click()


2 'untuk format gambar bisa JPG atau BMP
3 strSql = "INSERT INTO mhs (nim, nama) VALUES ('" & txtNIM.Text & "', '" & txtNama.Text & "')"
4 conn.Execute strSql
5
6 If fileExists(txtLokasiFoto.Text) Then
7 strSql = "SELECT nim, foto FROM mhs WHERE nim = '" & txtNIM.Text & "'"

coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 2/6
3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog
8 If Not addImageToDB(strSql, txtLokasiFoto.Text, "foto") Then MsgBox "Foto mahasiswa gagal disimpan !"
9 End If
10 End Sub
11
12 Private Sub cmdTampil_Click()
13 strSql = "SELECT foto FROM mhs WHERE nim = '" & txtNIM.Text & "'"
14 Set picMhs.Picture = getImageFromDB(strSql)
15 End Sub

Selamat mencoba :)

Posted by Admin Dec 30th, 2009 6:39 am visual basic

Tentang Penulis

Software developer yang fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC,
Web Service, Microservice) dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Database,
Continuous Integration & Deployment dan arsitektur Microservice.
Selain mengajar, saat ini penulis juga bekerja sebagai staf IT di salah satu PTS di Yogyakarta sebagai senior software developer. Di waktu
luang insya Alloh akan terus berbagi pengalaman di blog ini :)

Like Share Sign Up to see what your friends like.

« Menambahkan menu baru di system menu Membuat laporan dalam format Ms Excel »

Comments

Comments Community 🔒 Privacy Policy 


1 Login

 Recommend t Tweet f Share Sort by Best

Start the discussion…

LOG IN WITH
OR SIGN UP WITH DISQUS ?

Name

Be the first to comment.

✉ Subscribe d Add Disqus to your siteAdd DisqusAdd


⚠ Do Not Sell My Data

Tentang Penulis

coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 3/6
3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog

Software developer yang berasal dari Riau, tepatnya di Negeri Seribu Parit dan saat ini berdomisili di Yogyakarta.

Saat ini mengajar di salah satu perguruan tinggi swasta (PTS) di Yogyakarta dan bekerja sebagai staf IT di PTS yang sama sebagai senior
software developer.

Fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC, Web Service, Microservice) dan Android. Di waktu
luang insya Alloh akan terus berbagi pengalaman di blog ini.

Jika Anda merasakan manfaat posting di blog ini dan ingin ikut berkontribusi, Anda bisa

Open Source Project


Open Retail
Open Retail Blog

Contacts

Recent Posts
Menyimpan Konfigurasi Aplikasi Secara Terpusat Menggunakan Consul Key-Value Store Bagian #2
Solusi Mengakses Database Lokal (IP Private) Secara Online
Menyimpan Konfigurasi Aplikasi Secara Terpusat Menggunakan Consul Key-Value Store Bagian #1
Membuat Jaringan VPN Menggunakan SoftEther VPN Bagian #1
GitLab CI Untuk .NET Developer Bagian #2
GitLab CI Untuk .NET Developer Bagian #1
Membuat Service SMS Gateway Untuk Engine Gammu
OpenRetail - Open Source Project for Retail Business
Membuat Log Aplikasi Menggunakan Log4Net
Manajemen Perubahan Struktur Database Menggunakan Liquibase

Categories

.net remoting (9)


active report (4)
android (1)
aplikasi (4)
autoupdater.net (1)
build events (3)
consul (2)
continuous integration (9)
crashreporter.net (1)
crystal reports .net (4)
dapper .net (7)
database (3)
entity framework (9)
firebird (12)
freeware (8)
gitlab ci (2)
coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 4/6
3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog
inno setup (6)
jaringan (1)
jenkins (5)
liquibase (1)
logger (1)
mysql (10)
nsis (2)
nuget (5)
repository pattern (2)
service discovery (2)
signalr (3)
sms gateway (5)
software testing (5)
source control (1)
sql server (1)
sql server 2000 (1)
sqlite (3)
tools installer (8)
uncategorized (8)
unit of work pattern (1)
version control (1)
visual basic (74)
visual basic .net (11)
visual c# (49)
visual studio .net (3)
vpn (1)
wcf (4)
websocket (1)
winsock (6)

Tag Cloud

.net remoting(9) active report(4) android(1) aplikasi(4) autoupdater.net(1) build events(3) consul(2) continuous integration(9)
crashreporter.net(1) crystal reports .net(4) dapper .net(7) database(3) entity framework(9) firebird(12) freeware(8) gitlab ci(2) inno
setup(6) jaringan(1) jenkins(5) liquibase(1) logger(1) mysql(10) nsis(2) nuget(5) repository pattern(2) service discovery(2) signalr(3)
sms gateway(5) software testing(5) source control(1) sql server(1) sql server 2000(1) sqlite(3) tools installer(8) uncategorized(8) unit of
work pattern(1) version control(1) visual basic(74) visual basic .net(11) visual c#(49) visual studio .net(3) vpn(1) wcf(4)
websocket(1) winsock(6)

GitHub Repos

demo-cqrs2

NETBackgroundWorkerWrapperVB6

.NET COM Interop Background Worker untuk VB6

dicoding-android-developer-expert

Repository belajar Android Developer Expert (dicoding)

demo-websocket-signalr

Demo Solusi Mengakses Database Lokal (IP Private) Secara Online Bagian #1

WhatsappVB6Client

Contoh source code untuk mengirim pesan WA dari aplikasi VB6

demo-cqrs

Contoh implementasi CQRS dan Repository Patterns untuk pembuatan Web API

demo-cqrs1

Belajar CQRS Pattern

ContohStrukturProjectWinFormMVC

SimpleBotWhatApp

Aplikasi Bot WhatApp untuk .NET Developer

snakebite
coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 5/6
3/6/2020 Menyimpan Dan Menampilkan Foto Di Ms Access - Coding4ever’s Blog
Ini adalah contoh aplikasi billing menggunakan bahasa pemrograman VB 6

QRCodeVB6

demo-microservice

Contoh microservice yang sudah menggunakan API Gateway dan Message Broker untuk komunikasi antar microservicenya.

demo-ocelot-microservice

Contoh implementasi Ocelot sebagai api gateway dalam pengembangan microservice

Copyright © 2009 - 2019 - Admin - Powered by Octopress

coding4ever.net/blog/2009/12/30/menyimpan-dan-menampilkan-foto-di-ms-access/ 6/6

Вам также может понравиться