Установите для Focus элемент управления в виде таблицы данных подчиненной формы, где checkbox = True - PullRequest
0 голосов
/ 17 мая 2018

Я форма, которая содержит подчиненную форму, которая перечисляет несколько записей в виде таблицы данных.В подчиненной форме есть флажок типа столбца под названием «Выбрать».(имя элемента управления chk_select).

Этот столбец используется для выбора записей, которые они хотели бы открыть в отдельной форме.После проверки того, какие записи они хотели бы открыть, установив флажки, кнопка открывает отдельную форму сведений для записей, где столбец «Выбор» = Истина.

Моя проблема в том, что, если фокус не находится на строке в таблице данных, где установлен флажок, Access не может открыть форму сведений.

Например, я бы поставил флажок, чтобы выбрать запись, которую хотел открыть, затем щелкнул по другой строке, где флажок не установлен, и попытался открыть форму сведений, но Access, похоже, неувидеть, что есть выбранные записи.Но если я переместлю курсор на любую строку, где установлен флажок, то форма сведений откроется просто для всех записей, где установлен флажок.

Мой текущий обходной путь - это отобразить окно сообщения, чтобы попытаться заставить пользователя переместить курсор на строку, где установлен флажок.Но я бы хотел сделать это автоматически перед открытием другой формы, чтобы избежать путаницы для пользователя.

Поэтому мне нужен способ использовать SetFocus для элемента управления подчиненной формы, где флажок = True, прежде чем открывать форму сведений.

Есть ли способ сделать это или обходной путь?

Вот что у меня так далеко.

Спасибо.

Private Sub btn_open_estimate2_Click()
If Forms![View Estimates]![TblEstimates subform]![chk_select] = True Then
    'Forms![View Estimates]![TblEstimates subform]![chk_select].SetFocus  ***Need something similar to Where [chk_select]=True
    DoCmd.OpenForm "Edit Estimate", , , "TblEstimates.select = True"
    DoCmd.Close acForm, "View Estimates", acSaveYes
Else
    MsgBox "Please select an Estimate to open, or " & _
    "move the cursor to a selected Estimate to be able to open it", VbMsgBoxStyle.vbExclamation, "No Estimate Selected"
End If
End Sub

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Используйте RecordsetClone :

Private Sub btn_open_estimate2_Click()

    Dim rs As DAO.Recordset

    Set rs = Me![TblEstimates subform].Form.RecordsetClone

    rs. FindFirst "[select] = True"
    If rs.NoMatch Then
        MsgBox "Please select an Estimate to open.", VbMsgBoxStyle.vbExclamation, "No Estimate Selected"
    Else
        DoCmd.OpenForm "Edit Estimate", , , "TblEstimates.select = True"
        DoCmd.Close acForm, Me.Name, acSaveYes
    End If
    rs.Close

End Sub
0 голосов
/ 18 мая 2018

Как другой метод для проверки вашего флажка. Это может решить вашу проблему.

If Forms![View Estimates]![TblEstimates subform]![chk_select] = True Then

Для

If Not IsNull(DLookup("[Edit Estimates]", "[TblEstimates]", "[Select] = True")) Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...