Используйте rst! [], Чтобы заполнить поле вложения (Access VBA) - PullRequest
0 голосов
/ 30 октября 2018

Я работаю над базой данных доступа, которая позволяет пользователям щелкать записи в форме, чтобы получить более подробную информацию о конкретной записи. Это делается с помощью rst (с которым я не знаком). Я написал код: Attachment1 = rst![Doc] и добавил правильное поле в таблицу, из которой он черпает информацию, но я получаю следующее сообщение:

Ошибка времени выполнения '438'

Объект не поддерживает это свойство или метод

Что я здесь не так делаю и что я могу сделать, чтобы это исправить?

Код, который я написал, - это то место, где брошен флаг. Я предполагаю, что первое не работает с полем вложения, так как я добавил текстовое поле, и это прекрасно работает. Я также попытался связать таблицу с формой и создать поле, в котором я хотел получить источник управления для блока вложений, но это привело к тому, что в каждом разделе «Сведения» использовалась верхняя строка поля вложения вместо каждой записи, имеющей свою собственную строку.

Редактировать: это мой код до того момента, когда он выдает ошибку

Dim rst As DAO.Recordset Dim rstLabels As DAO.Recordset Dim twoPerBox As Boolean Dim showDDA As Boolean Dim isSearching As Boolean

If tree_PTTInfo.SelectedItem Is Nothing Then
    GoTo Good_Exit
End If

'check how many PTTs can fit in a box
Set rst = CurrentDb.OpenRecordset("SELECT tbl_Products.[MaxInBox], tbl_OrderGroup.[ProdID]" & _
    ", tbl_ProductTypes.[isGSM]" & _
    " FROM [tbl_OrderGroup] INNER JOIN" & _
    " ([tbl_Products] INNER JOIN [tbl_ProductTypes] ON tbl_Products.[TypeID] = tbl_ProductTypes.[TypeID])" & _
    " ON tbl_OrderGroup.[ProdID] = tbl_Products.[ProdID]" & _
    " WHERE tbl_OrderGroup.[GroupID] = " & CInt(Right(tree_PTTInfo.SelectedItem.key, Len(tree_PTTInfo.SelectedItem.key) - 3)), , dbReadOnly)

isSearching = False
If rst.EOF Then
    Set rst = CurrentDb.OpenRecordset("SELECT tbl_Products.[MaxInBox], qry_OrderGroup_All.[ProdID]" & _
    ", tbl_ProductTypes.[isGSM]" & _
    " FROM [qry_OrderGroup_All] INNER JOIN" & _
    " ([tbl_Products] INNER JOIN [tbl_ProductTypes] ON tbl_Products.[TypeID] = tbl_ProductTypes.[TypeID])" & _
    " ON qry_OrderGroup_All.[ProdID] = tbl_Products.[ProdID]" & _
    " WHERE qry_OrderGroup_All.[GroupID] = " & CInt(Right(tree_PTTInfo.SelectedItem.key, Len(tree_PTTInfo.SelectedItem.key) - 3)), , dbReadOnly)
    isSearching = True
End If

twoPerBox = False
If rst![MaxInBox] = 2 And rst![ProdID] <> DummyProdID Then
    twoPerBox = True
End If

showDDA = False
If rst![isGSM] Then
    showDDA = True
End If

'get the OrderGroup record
Set rst = CurrentDb.OpenRecordset("SELECT * FROM [tbl_OrderGroup]" & _
    " WHERE [GroupID] = " & CInt(Right(tree_PTTInfo.SelectedItem.key, Len(tree_PTTInfo.SelectedItem.key) - 3)), , dbReadOnly)

If rst.EOF Then
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM [qry_OrderGroup_All]" & _
        " WHERE [GroupID] = " & CInt(Right(tree_PTTInfo.SelectedItem.key, Len(tree_PTTInfo.SelectedItem.key) - 3)), , dbReadOnly)
End If

If rst![isPTT] Then
    lbl_PTTInfo.Caption = "PTT Information - " & rst![GroupDesc]
    txtbx_ProductionID.Enabled = True
    txtbx_Species.Enabled = True
    txtbx_SpeciesWeight.Enabled = True
    txtbx_Location.Enabled = True
    Text585.Enabled = True
    Attachment595.Enabled = True

    txtbx_ProductionID = rst![ProductionID]
    txtbx_Species = rst![Species]
    txtbx_SpeciesWeight = rst![SpeciesWeight]
    txtbx_Location = rst![Location]
    Text585 = rst![Admin Notes]
    Attachment595 = rst![Prod Docs]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...