【发布时间】:2016-06-09 00:07:21
【问题描述】:
这是我在这里的第一篇文章,我喜欢这个网站上人们的乐于助人!
总的来说,我对 vba 的经验很少,所以请多多包涵。在你问之前,我已经花了很多时间在这个网站以及 msdn 上寻找我的答案,但没有运气。
我正在为我的工作设计一个数据库,以跟踪员工及其联系信息、培训课程和招聘文档。我在招聘表格上遇到了一个小障碍。
我有一个包含员工信息的表单和一个包含所有文档列表的子表单。每个文档都是单独的“文档”表中的一条记录,该表是通过查询提取的。该表包含员工姓名、文档类型(简历等)和附件本身的字段。我有一个包含文档类型列表的下拉框。当我从组合框中选择一个选项时,我希望它使用显示的当前员工的员工姓名在“文档”表中创建一个新记录,从组合框中选择文档类型,然后打开选择文件对话框.
我已阅读 microsoft 关于添加附件的文章,该文章很有帮助,但没有告诉我如何在另一个表上创建新记录。
任何帮助将不胜感激:)
更新:我在代码方面取得了长足的进步,但我无法插入附件
Sub test()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset2
Dim rsA As DAO.Recordset2
Dim fld As DAO.Field2
'variables for file path
Dim sName
Dim f As Object
Dim strFile As String
Dim strFolder As String
Dim varItem As Variant
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("documents")
Set fld = rst("doc")
Set rsA = fld.Value
rst.AddNew
rst!inspector = "test"
rst.Update
Set f = Application.FileDialog(3)
f.AllowMultiSelect = True
If f.Show Then
For Each varItem In f.SelectedItems
strFile = Dir(varItem)
strFolder = Left(varItem, Len(varItem) - Len(strFile))
'MsgBox "Folder: " & strFolder & vbCrLf & _
"File: " & strFile
Next
End If
Set f = Nothing
sName = strFolder & strFile
rst.Edit
rst.AddNew
rsA("FileData").LoadFromFile sName ' <<<this is where i get stuck
rsA.Update
rst.Update
MsgBox ("done") 'test
结束子
【问题讨论】:
-
您需要运行一个插入查询并让它被组合框更改事件触发。将它附加到按钮上会更安全,这样错误地选择错误的文档就不会产生虚假记录。然后,您需要刷新表单查询源。总而言之,大概6行VBA。试一试,如果您有问题,请告诉我们。
-
谢谢加文。我已经知道使用更改事件,但我遇到问题的是 vba 代码。因为我没有足够的声誉所以我不能在新评论中发布我的代码。请参阅我对原始帖子的编辑。也许你能发现我的问题在哪里。
标签: ms-access vba ms-access-2010