我有一个已付款发票的基本记录数据库。在我们的网络驱动器上,我们有一个PDF文件,该文件标有3个字母的代码属性代码,MMDDYY日期和供应商名称。将PDF保存到网络驱动器后,将相同的信息输入到Access数据库中(3个字母的属性代码,日期,供应商名称)。是否可以通过VBA通过将文件附加到记录中来填充这些字段?
我每周大约有40-60个文件,我可以通过导出文件夹中所有文件名的.txt文件来执行此操作,然后准备该文本文件以导入到Access中...但是我发现它更快只需手动输入每条记录。
不是每个人都可以访问网络驱动器(文件包含财务数据),但是有些人需要访问才能确定何时支付发票。
Travis,
您可以做的是用一些VBA代码来循环文件夹,检查新的PDF文件,然后将它们添加到表中。像这样的东西似乎起作用:
Dim db As DAO.Database
Dim rsData As DAO.Recordset
Dim strFolder As String
Dim strFile As String
Set db = DBEngine(0)(0)
Set rsData = db.OpenRecordset("SELECT * FROM tblFileData WHERE 1=2;")
strFolder = "J:\test-data\"
strFile = Dir(strFolder, vbNormal)
Do
If Right(strFile, 3) = "pdf" Then
If IsNull(DLookup("PropertyCode", "tblFileData", "PropertyCode & ProcessDate & VendorName='" & Left(strFile, Len(strFile) - 4) & "'")) Then
With rsData
.AddNew
!PropertyCode = Left(strFile, 3)
!ProcessDate = Mid(strFile, 4, 6)
!VendorName = Mid(strFile, 10, Len(strFile) - 13)
.Update
End With
End If
End If
strFile = Dir
Loop Until strFile = ""
[您可能还想考虑在此表中存储文件名,以便用户可以在网络上打开此文件,并将已处理的文件移动到新文件夹,以便您每天仅处理新文件。
问候