gpt4 book ai didi

vba - 使用路径从外部源将图像添加到表单中

转载 作者:行者123 更新时间:2023-12-04 00:34:51 25 4
gpt4 key购买 nike

我一直在 Google 上四处搜索,想找到一种在 Access 中显示图像而不实际将图像插入数据库的更好方法。

我找到这篇文章' http://support.microsoft.com/kb/285820 '通过这个线程'Is there a way to get ms-access to display images from external files ' 其中详细介绍了如何通过文件夹/文件设置图片路径,并且对于“设置”图片来说效果很好。但是,当我切换到不同的记录时,我希望显示不同的图片。

这是文章中的代码:

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

我有一种感觉,我需要放置一行代码来说明类似 show image where Image.ID = "ID"之类的内容,但我无法确定将它放在哪里而不会出错。我是不是忽略了一些东西,或者我是以错误的方式来处理这个问题的?我只是不想在内存方面使用 .bmp 图像弄乱我的数据库,但我觉得我将不得不这样做。

已解决:Gord Thompson 在下面的评论中描述了一个更简单的解决方案。根据我自己的经验,对 .bmp 图像使用此方法会使图片失真且失去对比度。我测试了 .jpg 的图像,它工作得很好!我希望这对遇到类似问题的其他人有所帮助,因为这篇文章对您有所帮助。

最佳答案

您引用的 Microsoft 支持文章适用于 Access 2003。在 Access 2010(及更高版本)中,有一种更简单的方法来实现。您需要做的就是在窗体上放置一个图像控件并将其绑定(bind)到表中包含图像文件路径的字段。

例如,像这样的 [Employees] 表

EmployeeID  FirstName  LastName  PhotoPath                        
---------- --------- -------- ---------------------------------
1 Gord Thompson C:\Users\Public\Pictures\Gord.jpg
2 Hank Kingsley C:\Users\Public\Pictures\Hank.png

您可以使用 Control Source 是 [PhotoPath] 字段的图像控件 ...

DesignView.png

... 并且图像将自动从指定的文件中检索

FormView.png

不需要 VBA。

另请注意,图像文件不必是 .bmp 文件。

由匿名用户添加:

对于 Microsoft Office 365 版 MS Access(约 2020 年)的用户,为了让这个出色的解决方案发挥作用,您可能需要了解以下内容:如果使用长路径或长文件名,其数据表中的 [PhotoPath] 字段需要为“长文本”数据类型。 [PhotoPath] 字段格式“是超链接”可能需要设置为“否”。我的文本输入从 Access 获得了额外的、不需要的编码。 [Image3] 控件可能需要指定“链接”而不是“嵌入”。

关于vba - 使用路径从外部源将图像添加到表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25856575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com