Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在图像控件上显示来自文件路径的图片_Excel_Vba_Ms Access - Fatal编程技术网

Excel 在图像控件上显示来自文件路径的图片

Excel 在图像控件上显示来自文件路径的图片,excel,vba,ms-access,Excel,Vba,Ms Access,我有一个文件夹,其中包含用于表单记录的图像。 如何使单个图像显示在未绑定图像控件上,以显示具有相同ItemName和模型的所有记录 我希望具有相同ItemName和Model的项目使用相同的图像。图像当前使用与ItemName字段相对应的唯一id命名。e、 与项目名称:微波型号:Q12V项目编号:1223对应的g图像命名为1223.jpg。我一直在寻找解决这个问题的方法,但我没有发现任何东西 我的主管说,通过创建新字段来更改表不是一种选择 多谢各位 编辑: Function GetImageP

我有一个文件夹,其中包含用于表单记录的图像。 如何使单个图像显示在未绑定图像控件上,以显示具有相同
ItemName
模型的所有记录

我希望具有相同
ItemName
Model
的项目使用相同的图像。图像当前使用与
ItemName
字段相对应的唯一id命名。e、 与
项目名称:微波
型号:Q12V
项目编号:1223对应的g图像命名为
1223.jpg
。我一直在寻找解决这个问题的方法,但我没有发现任何东西

我的主管说,通过创建新字段来更改表不是一种选择

多谢各位

编辑:

 Function GetImagePath(strIN As String) As String
 Dim strP As String
 strP = CurrentDb.TableDefs("tblDonatedItems").Connect
 strP = Mid(Left(strP, InStrRev(strP, "\")), InStrRev(strP, "=") + 1) + "ItemImages\"
        GetImagePath = strP & _
        IIf(Dir(strP & strIN & ".jpg") <> "", strIN & ".jpg", "default-picture.bmp")

因为ItemName和Model都不是图像名称的一部分,所以我们真的不知道它们是如何相关的。当然不能成为选择图像的一个因素

考虑以下情况:

Function GetImagePath(strIN As String) As String
Dim strP As String
strP = CurrentDb.TableDefs("tblDonatedItems").Connect
strP = Mid(Left(strP, InStrRev(strP, "\")), InStrRev(strP, "=") + 1)
If Dir(strP & strIN & ".jpg") <> "" Then
    GetImagePath = strP & strIN & ".jpg"
ElseIf  Dir(strP & strIN & ".png") <> "" Then
    GetImagePath = strP & strIN & ".png"
Else
    GetImagePath = strP & "default-picture.bmp"
End If
End Function
函数GetImagePath(strIN作为字符串)作为字符串
将strP变为字符串
strP=CurrentDb.TableDefs(“tblDonatedItems”).Connect
strP=Mid(左(strP,InStrRev(strP,“\”),InStrRev(strP,“=”)+1)
如果目录(strP&strIN&“.jpg”)”,则
GetImagePath=strP&strIN&“.jpg”
其他目录(strP&strIN&“.png”)“然后
GetImagePath=strP&strIN&“.png”
其他的
GetImagePath=strP&“default picture.bmp”
如果结束
端函数
从图像控件的ControlSource调用函数:
=GetImagePath([ItemNumber])

如果图像必须按ItemName和/或Model区分,则需要重命名图像并在函数调用中连接字段:

=GetImagePath([ItemName]&“u”&Replace([Model],“/”,“u”)

我从未使用过图像控件的Picture属性。我只会在其ControlSource属性中使用表达式。@June7在控件源中编写表达式是否需要某种形式的挖掘图像路径?该控件当前未绑定,我在想,像我文章的最后一部分那样重写最后一个循环将做这个把戏。我不知道该怎么做。我不明白图像是如何保存的。它们不是都在一个已知的文件夹位置吗?ControlSource中的表达式可以包含一个函数,该函数可以构建路径并与字段连接,例如:
=ImagePath()&Nz([fieldname],“default picture.bmp”)
@June7映像路径与后端文件一起存在。我目前正在使用
strBackEndPath=Mid(左(strBackEndPath,instrev(strBackEndPath,“\”),I)+“itemmages”来挖掘它
。始终会有一个ImageNumber值,但可能没有匹配的图像文件,在这种情况下,必须显示default-picture.bmp,并且该图像与其他图像位于同一文件夹位置?您刚才在这里让我大吃一惊。我已经尝试了这个方法,我可以看到一些积极的迹象。在某些情况下,我会收到
没有当前记录的警报。它如果我可以重命名图像,以便使用
ItemName
Model
字段对其进行区分,那就太好了。问题是,模型字段上有一些难以识别的字符,例如
V5/20S.EE
。此外,一些图像具有
.PNG
扩展名。必须扩展代码以检查各种文件扩展名。give图像名称使用的模型更像:
V5_20S.EE
then function can do Replace()对/字符数据的操作。管理所有可能无效字符的编码可能会变得有点复杂。您的意思是使用itemName和Model重命名图像吗?例如
itemName:
Mirrow`和
Model:V5/20S.EE
Mirrow\u V5\u 20S.EE
,然后在函数中使用新名称会使事情复杂化吗如果/仅为无效字符,则不会太糟糕。必须将字段串联起来,并用下划线替换/以匹配实际图像文件名。这可以在函数调用中完成:
=GetImagePath([ItemName]&“&U”([Model],“/”,“&U”))
。我实现了代码,但我不断收到一些记录的
无当前记录
警报。默认图片也没有加载。我一定没有正确实现代码。
Function GetImagePath(strIN As String) As String
Dim strP As String
strP = CurrentDb.TableDefs("tblDonatedItems").Connect
strP = Mid(Left(strP, InStrRev(strP, "\")), InStrRev(strP, "=") + 1)
If Dir(strP & strIN & ".jpg") <> "" Then
    GetImagePath = strP & strIN & ".jpg"
ElseIf  Dir(strP & strIN & ".png") <> "" Then
    GetImagePath = strP & strIN & ".png"
Else
    GetImagePath = strP & "default-picture.bmp"
End If
End Function