问题描述
我正在使用 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 (将#修改为@)