【发布时间】:2014-01-14 04:43:37
【问题描述】:
我在使用 MS Access 2010 时遇到了一些问题。我正在尝试修改从 Microsoft 网站下载的数据库,我正在做一些修改以跟踪食物营养。从 16 位 Atari 时代的过去,我有一些基本的经验。我对 VBA 并不完全陌生,只是知道足以惹上麻烦。我有一个表单,它使用选择查询来填充表单的下半部分。我在 food 表中添加了一个附件字段,该表有超过 8500 条记录,是用于查询的表。我的问题是在模块中添加 VBA 代码以查看是否存在照片。我希望能够在没有照片的情况下显示一个灰色的图标,如果有照片文件则显示一个常规的图标。但那是我开始工作的时候。我在字段属性中调用函数:
Photo1: chkAttachment([Photo])
这个开头给了我一个错误提示:“多值字段 '[Photo]' 在表达式 'chkAttachment([Photo])' 中无效。当我将其更改为:
Photo1: ChkAttachment([Photo].[FileName])
我得到空字段的 #Error 和带有文件的字段的“有照片”。
以下代码是我引用的函数来显示我正在尝试做的事情
Public Function chkAttachment(fldPhoto As String) As String
On Error GoTo chkAttachment_Err
chkAttachment = ""
'Debug.Print fldPhoto
If fldPhoto = Null Then
chkAttachment = "No Photo"
Else
chkAttachment = "Has Photo"
End If
chkAttachment_Exit:
Exit Function
chkAttachment_Err:
MsgBox " It don't like Error number: " & Err.Number & " " & Error$
Resume chkAttachment_Exit
End Function
如果附件为空,查询甚至不会调用代码。我用谷歌搜索了以下问题,并在这个网站上搜索了“Microsoft Access 2010 VBA 如何查询附件字段”,但没有任何运气。我尝试使用一些代码来计算附件中的文件数,我在线程“如何从 Microsoft Access 的附件字段中查询附件数?”中找到。从 2011 年 8 月开始,但不知道如何让它工作。说到 SQL,我对那部分一无所知。
感谢您提供的任何帮助。
史蒂文
【问题讨论】:
-
如果查询不引用函数或调用它,我在函数中放入的任何东西都不会有任何好处,这是我的主要问题。如果附件字段显示 0,它只会显示每条记录的“#Error”。但是当他们的照片存储或显示 1 时,它引用了该功能。我有这个字段,所以我可以为每个食物项目(记录)营养价值添加一张照片。史蒂文
-
顺便说一句,感谢您的快速回复。我表中的字段绑定到查询。两者都被命名为照片。我想查看每条记录是否有照片,这样我就不必打开表格中的每条记录来查看。
标签: ms-access vba ms-access-2010