我最初非常高兴地发现Access 2010中的附件字段。这是一个美学上让我的内部数据库纯粹主义感到烦恼的功能,但我内心懒惰的草皮在这里充电,它看起来就像它可能一样使我当前的项目之一更容易/更简单。令人高兴的是,它会在表格和报告上自动显示图片/图标,但是(为什么总是有一个但是呃!)它只显示第一个,我需要它来显示所有这些。
你当然可以一次滚动一个附件,但我很确定我的客户不会佩戴它,尽管他要求我在MS-Access中完成项目,似乎只有非常简陋的内置在显示选项中:/ BUT ......
我可能错了,我几乎没有MS-Access经验。我的编码背景是LAMP堆栈和网络,所以我对Windows / Access生态系统中提供的内容一无所知。我怀疑有优秀的第三方报告工具可以提供非常灵活的布局,但我需要查看表单上的所有附件,而不仅仅是报告。
所以,盲目地陷入虚空我最初的策略就是这个......
为附件创建单独的表,其中每个字段都是仅包含单个项目的“附件”。然后在表单和报告中使用脚本编写...
所以,我的问题是......
对不起,我知道这是一个长长的毛茸茸的问题,但我这里的水是一条鱼!
谢谢,
罗杰
答案 0 :(得分:7)
我们说我有一张带附件的表格:
让我们说我希望显示的其中一个附件字段中有三个图像。我可以创建一个查询:
之后我可以创建一个连续的表单:
答案 1 :(得分:0)
我搜索了一个类似的问题。我每个字段都有多个附件。我打算使用该字段为两个图像控件存储.jpg和.pdf,我通过将字段从属性拖动到表单来创建。我已将它们命名为ctlImage和ctlFeatures。我使用此表单作为产品目录表单上的更多信息按钮的非模态弹出窗口。到目前为止,我能够搜索产品目录中的记录并使用选定的列表框搜索结果打开带有where子句的表单,以将详细信息表单设置为当前记录。当我尝试操纵ctlImage寻找图像类型时,在intellisense中显示的唯一属性是ctlImage.value。我希望将jt和ctlFeatures的ctlImage分配给pdf这里是frmProducts btnMoreInfo_Click代码和frmCatalogDetails代码,以防一方弄乱另一方。
Private Sub btnMoreInfo_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim str As String
Dim row As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("tblProducts", dbOpenSnapshot)
If Me.lstSearchResults.ItemsSelected.Count > 0 Then
' Debug.Print Me.lstSearchResults.Column(0)
row = Me.lstSearchResults.Column(0)
rs.MoveFirst
rs.FindFirst "ProductID=" & row
Debug.Print rs("Description")
DoCmd.OpenForm "frmCatalogDetails", acNormal, , "ProductID=" & Me.lstSearchResults.Column(0, Me.lstSearchResults.ItemsSelected), acFormReadOnly, acWindowNormal
Else
MsgBox "You must select a product"
Exit Sub
End If
End Sub
和目录详情
Option Compare Database
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Private Sub Form_Load()
Set db = CurrentDb
'Set rs = db.OpenRecordset("tblProducts", dbOpenSnapshot)
'Set fld = rs("image")
Debug.Print rs("ProductID")
Debug.Print rs("Description")
'me.ctlImage.ControlSource =
'Me.ctlImage.CurrentAttachment = fld.Value
End Sub
rs语句已被注释掉,因为我无法使用此表单从父表单中识别rs。我得到一个未设置的块变量,但如果我执行rs.openRecordSet,则记录集将返回第一行。除了你上面的回答,我看到很少关于操纵附件对象,并且帮助很难,因为它甚至不包括在附件字段内访问。我正处在一个问题上,而不是回答这个问题,我非常感谢你们许多人采取的时间来制定答案。 罗林 座右铭:在需要时寻求帮助,在被问及时给予帮助,并记住你的来源。