ошибка времени выполнения 438 при попытке использовать результаты Openrecordset - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть проект Access (в Office 2016), который состоит из нескольких таблиц и форм.Также я разработал метод входа пользователя, который использует его, некоторые пользователи должны получить доступ к определенным записям, которые я пытался установить в событии загрузки формы, следуя коду.Одно поле моей таблицы tbPrimary - это initial File, которое относится к типу вложений, когда какой-то другой пользователь заполняет его изображениями \ Word документами \ файлами Excel и т. Д. Когда я пытаюсь заполнить элемент управления вложением результатом набора записей, я получаю ошибку 438, в то время как другие элементы управлениязаполните правильно.(ошибка в: Me.InitialFile = rs![Initial File].) Вот код:

Public Sub Form_Load()
Dim rs As DAO.Recordset ''Requires reference to Microsoft DAO x.x Library
Dim sSQL As String
Dim strSQL As String
Dim nn As Double

sSQL = "SELECT MIN(tbPrimary.[ID]) As mm FROM tbPrimary WHERE Translator IS NULL"

Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL)

If rs.RecordCount > 0 Then
    Me.tbSearch1 = rs!mm
Else
    Me.tbSearch1 = "N/A"
End If
nn = CDbl(rs!mm)

strSQL = "SELECT * FROM tbPrimary WHERE ID= " & nn & ""

Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)

If rs.RecordCount > 0 Then
   Me!ID = rs!ID
   Me.tbInitial_Name = rs![Initial Name]
   Me.length = rs!length
   Me.Level1_Menu = rs![level1 Menu]
   Me.Level2_Menu = rs![level2 Menu]
   Me.Level3_Menu = rs![level3 Menu]
   Me.Type = rs![Type]
   Me.Description = rs!Description
   Me.tbMiningDate = rs![Mining Date]
   Me.Created = rs!Created
   Me.InitialFile = rs![Initial File]
Else
   Me.tbSearch1 = "N/A"
End If
Me.Translator.SetFocus

End Sub

(любое решение? Заранее спасибо)

1 Ответ

0 голосов
/ 30 декабря 2018

Вот общий подход к добавлению вложений в БД Access, надеюсь, это поможет.

Option Explicit

Sub ExampleAddAccessAttachment()
    Dim db          As DAO.Database
    Dim rs          As DAO.Recordset
    Dim rsattach    As DAO.Recordset
    Dim fldattach   As DAO.Field
    Dim filepath    As String

    filepath = "SOME FILE PATH HERE"

    Set db = CurrentDb

    'Open a recordset to the table with the attachment
    Set rs = db.OpenRecordset("Select * from SOMETABLENAME")

    With rs
        .AddNew
        'The attachment field is a multipart field, so we can treat as a recordset
        Set rsattach = .Fields("TheAttachmentFieldName").Value

        'Get the fileData Field, this holds the data
        Set fldattach = rsattach.Fields("FileData")

        'Add a new record to this recordset, you can add multiple
        rsattach.AddNew

        'Use the load from file method to add a file to the attachment
        fldattach.LoadFromFile (filepath)

        'Update the recordset with the attachment
        rsattach.Update

        'Update the parent table recordset
        .Update
    End With
End Sub
...