如何解决使用 vs 表单将 pdf 文件存储在 MS Access 附件字段中
我正在使用 Visual Studio 2019 和 MS Access 2013 数据库。 我想在 Access 数据库列中存储多个 PDF 文件。 该列被定义为附件类型。
首先,我尝试使用 OLE DB 和 SQL 命令,但出现错误“更新和删除命令无法与多值字段一起使用”。
然后我使用DAO来处理多值字段。现在我收到另一个错误“无法读取数据库格式”
我正在使用与下面完全相同的代码。我的数据库是 *.accdb。我的操作 系统是Windows 10 64位。 Visual Studio 2019 和 MS Access 都是 32 位。我已经在应用程序属性中将平台更改为 x86。有什么好主意吗?谢谢
Private Sub AddAttachment(ByVal Files() As String)
Const Caller = "AddAttachment"
Dim dbe = New Microsoft.Office.Interop.Access.Dao.DBEngine()
Dim db As Microsoft.Office.Interop.Access.Dao.Database
db = dbe.OpenDatabase(dbPath)
Try
Dim rstMain As Microsoft.Office.Interop.Access.Dao.Recordset
rstMain = db.OpenRecordset("SELECT ID,fieldName FROM tableName WHERE ID = " + (dt.Rows(currentRow).Item("ID").ToString),Microsoft.Office.Interop.Access.Dao.RecordsetTypeEnum.dbOpenDynaset)
If (rstMain.EOF) Then
rstMain.AddNew()
rstMain.Fields("ID").Value = 1
Else
For Each value As String In Files
rstMain.Edit()
Dim rstAttach As Microsoft.Office.Interop.Access.Dao.Recordset2
rstAttach = rstMain.Fields("ATTACHMENTS").Value
rstAttach.AddNew()
Dim fldAttach As Microsoft.Office.Interop.Access.Dao.Field2
fldAttach = rstAttach.Fields("FileData")
fldAttach.LoadFromFile(value)
rstAttach.Update()
rstAttach.Close()
Next
rstMain.Update()
rstMain.Close()
End If
Catch ex As Exception
If Err.Number <> 3820 Then
MsgBox(ex.Message)
Else
MsgBox("File of same name already attached",MsgBoxStyle.Critical,"Cannot attach file" & Caller)
MessageBox.Show(ex.Message)
End If
End Try
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。