从访问附件中获取文件名
get filename from access attachment
我有点 VBA 运行 访问权限。它的目的是输出一个管道描述的字符串,以提供现有 tables 的 exports/back ups。它运行良好,但我还想添加另一个功能。可能 运行 反对的 table 之一包含附件,我希望附件文件名显示在 'attachment' 字段下。目前,代码只是在其中添加警告,但我想要更相关的内容。
代码当前读取指定 table 中的每个字段名称,并用竖线 (|) 将它们分开。然后它会换行并使用每个字段中的值重复该过程。相关代码如下:
Set rs = CurrentDb.OpenRecordset(Table, dbOpenSnapshot)
rs.Filter = srchString
Set rsFilt = rs.OpenRecordset()
fieldCount = rsFilt.Fields.Count
recordTot = rsFilt.RecordCount
If recordTot <> 0 Then
rsFilt.MoveFirst
Dim o As Integer
For o = 0 To fieldCount - 1
fieldNames = fieldNames & rsFilt.Fields(o).Name & "|"
Next o
Do While rsFilt.EOF = False
For o = 0 To fieldCount - 1
If rsFilt.Fields(o).Type <> 101 Then
oldDataSet = oldDataSet & Nz(rsFilt.Fields(o).Value, "") & "|"
Else
oldDataSet = oldDataSet & "attached files not saved in logs" & "|"
End If
Next o
oldDataSet = oldDataSet & vbNewLine
rsFilt.MoveNext
Loop
Else
fieldNames = "No " & Table & " for this member."
End If
createRecordSnapshot = fieldNames & vbNewLine & oldDataSet
End Function
每条记录只有一个与之关联的附件。我想要一些方法来获取该文件名作为字符串。
非常感谢,
据我所知,访问此信息的唯一方法是通过表单上的 Attachment
控件。您可以制作一个仅包含此控件的简单表单,将其作为代码的一部分加载并在循环中访问它。
下面是循环遍历表单中的记录并读取 Attachment
控件的 filename
属性 的示例:
Dim frm As Form
Dim ctl As Attachment
Dim i As Long, j As Long
Set frm = Application.Forms("Form1")
Set ctl = frm.Controls("test") 'An Attachment control
frm.RecordsetClone.MoveLast
i = frm.Recordset.RecordCount
For j = 0 To i - 1
Debug.Print ctl.FileName
DoCmd.GoToRecord acDataForm, frm.Name, acNext
Next
我有点 VBA 运行 访问权限。它的目的是输出一个管道描述的字符串,以提供现有 tables 的 exports/back ups。它运行良好,但我还想添加另一个功能。可能 运行 反对的 table 之一包含附件,我希望附件文件名显示在 'attachment' 字段下。目前,代码只是在其中添加警告,但我想要更相关的内容。
代码当前读取指定 table 中的每个字段名称,并用竖线 (|) 将它们分开。然后它会换行并使用每个字段中的值重复该过程。相关代码如下:
Set rs = CurrentDb.OpenRecordset(Table, dbOpenSnapshot)
rs.Filter = srchString
Set rsFilt = rs.OpenRecordset()
fieldCount = rsFilt.Fields.Count
recordTot = rsFilt.RecordCount
If recordTot <> 0 Then
rsFilt.MoveFirst
Dim o As Integer
For o = 0 To fieldCount - 1
fieldNames = fieldNames & rsFilt.Fields(o).Name & "|"
Next o
Do While rsFilt.EOF = False
For o = 0 To fieldCount - 1
If rsFilt.Fields(o).Type <> 101 Then
oldDataSet = oldDataSet & Nz(rsFilt.Fields(o).Value, "") & "|"
Else
oldDataSet = oldDataSet & "attached files not saved in logs" & "|"
End If
Next o
oldDataSet = oldDataSet & vbNewLine
rsFilt.MoveNext
Loop
Else
fieldNames = "No " & Table & " for this member."
End If
createRecordSnapshot = fieldNames & vbNewLine & oldDataSet
End Function
每条记录只有一个与之关联的附件。我想要一些方法来获取该文件名作为字符串。
非常感谢,
据我所知,访问此信息的唯一方法是通过表单上的 Attachment
控件。您可以制作一个仅包含此控件的简单表单,将其作为代码的一部分加载并在循环中访问它。
下面是循环遍历表单中的记录并读取 Attachment
控件的 filename
属性 的示例:
Dim frm As Form
Dim ctl As Attachment
Dim i As Long, j As Long
Set frm = Application.Forms("Form1")
Set ctl = frm.Controls("test") 'An Attachment control
frm.RecordsetClone.MoveLast
i = frm.Recordset.RecordCount
For j = 0 To i - 1
Debug.Print ctl.FileName
DoCmd.GoToRecord acDataForm, frm.Name, acNext
Next