การแสดงภาพใน Report
กระทู้เก่าบอร์ด อ.Yeadram

 1,629   0
URL.หัวข้อ / URL
การแสดงภาพใน Report

ใน Report ต้องการให้แสดงรูปภาพ หลายภาพ และต้อง lock ตำแหน่งภาพไว้ โดยอ้างอิงมาจาก path ที่เก็บใน table
ซึ่ง 1 Row มีการเก็บ ภาพ 14 ภาพ และให้แสดงผลพร้อมกันผมได้ code มา โดย นำ code ส่วนแรกไปวางใน module และส่วนที่ 2 วางใน รายงาน
ซึ่งก็แสดงรูปภาพได้นะครับแต่ พบปัญหาคือ กรณีที่บาง flame ไม่มีรูป ซึ่งคือไม่มีการเก็บ path ไว้
แต่ มันจะแสดงแต่รูปเดิมตลอด ไม่เว้นเป็น flame ว่างๆ ไว้ และใน row ที่ไม่มีการเก็บ path ไว้เลย report ก็จะแสดงภาพเดิมทั้งชุดเลยครับ ต้องแก้ไขอย่างไรบ้างครับ
หรือท่านใดมีวิธีอื่นๆ แนะนำได้นะครับ

ส่วนที่ 1 วางใน module

Option Compare Database
Option Explicit

Public Function DisplayImage(ctlImageControl As Control, strImagePath As Variant) As String
On Error GoTo Err_DisplayImage

Dim strResult As String
Dim strDatabasePath As String
Dim intSlashLocation As Integer

With ctlImageControl
If IsNull(strImagePath) Then
.Visible = False
strResult = "No image name specified."
Else
If InStr(1, strImagePath, "\") = 0 Then
' Path is relative
strDatabasePath = CurrentProject.FullName
intSlashLocation = InStrRev(strDatabasePath, "\", Len(strDatabasePath))
strDatabasePath = Left(strDatabasePath, intSlashLocation)
strImagePath = strDatabasePath & strImagePath
End If
.Visible = True
.Picture = strImagePath
strResult = "Image found and displayed."
End If
End With

Exit_DisplayImage:
DisplayImage = strResult
Exit Function

Err_DisplayImage:
Select Case Err.Number
Case 2220 ' Can't find the picture.
ctlImageControl.Visible = False
strResult = "Can't find image in the specified name."
Resume Exit_DisplayImage:
Case Else ' Some other error.
MsgBox Err.Number & " " & Err.Description
strResult = "An error occurred displaying image."
Resume Exit_DisplayImage:
End Select
End Function


ส่วนที่ 2 วางในรายงาน


Function setImagePath()

Dim strImagePath As String
Dim imageOne As String


On Error GoTo PictureNotAvailable
imageOne = Me.txtImageName1
strImagePath = storedImagePath & imageOne
Me.ImageFrame.Picture = strImagePath

Exit Function
PictureNotAvailable:
strImagePath = noImage

Me.ImageFrame.Picture = strImagePath

End Function

Function setImagePath2()

Dim strImagePath2 As String
Dim imageTwo As String

On Error GoTo PictureNotAvailable
imageTwo = Me.txtImageName2
strImagePath2 = storedImagePath & imageTwo
Me.ImageFrame2.Picture = strImagePath2

Exit Function
PictureNotAvailable:
strImagePath2 = noImage

Me.ImageFrame2.Picture = strImagePath2

End Function
Function setImagePath3()

Dim strImagePath3 As String
Dim imageThree As String

On Error GoTo PictureNotAvailable
imageThree = Me.txtImageName3
strImagePath3 = storedImagePath & imageThree
Me.ImageFrame3.Picture = strImagePath3

Exit Function
PictureNotAvailable:
strImagePath3 = noImage

Me.ImageFrame3.Picture = strImagePath3

End Function
Function setImagePath4()

Dim strImagePath4 As String
Dim imageFour As String


On Error GoTo PictureNotAvailable
imageFour = Me.txtImageName4
strImagePath4 = storedImagePath & imageFour
Me.ImageFrame4.Picture = strImagePath4

Exit Function
PictureNotAvailable:
strImagePath4 = noImage

Me.ImageFrame4.Picture = strImagePath4

End Function
Function setImagePath5()

Dim strImagePath5 As String
Dim imageFive As String


On Error GoTo PictureNotAvailable
imageFive = Me.txtImageName5
strImagePath5 = storedImagePath & imageFive
Me.ImageFrame5.Picture = strImagePath5

Exit Function
PictureNotAvailable:
strImagePath5 = noImage

Me.ImageFrame5.Picture = strImagePath5

End Function
Function setImagePath6()

Dim strImagePath6 As String
Dim imageSix As String


On Error GoTo PictureNotAvailable
imageSix = Me.txtImageName6
strImagePath6 = storedImagePath & imageSix
Me.ImageFrame6.Picture = strImagePath6

Exit Function
PictureNotAvailable:
strImagePath6 = noImage

Me.ImageFrame6.Picture = strImagePath6

End Function


Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Dim ImageCheck As String
ImageCheck = setImagePath()
ImageCheck = setImagePath2()
ImageCheck = setImagePath3()
ImageCheck = setImagePath4()
ImageCheck = setImagePath5()
ImageCheck = setImagePath6()

End Sub
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1226s