У меня есть форма Access 2003 с одной подчиненной формой, настроенной на непрерывные формы, в элементе управления подчиненной формы.Для одной записи в основной форме от 1 до нескольких записей появятся в форме.Данные отображаются правильно.
Основная форма называется Виджеты , а подформа - Транзакции .Существует 5 элементов управления текстовым полем, которые отображают данные в подчиненной форме.Это вопрос ReceiptDate .
Что я хотел бы сделать, это посмотреть на значения и определить, была ли квитанция на 2009 год, и если это так, то измените фон этой строки на желтый, чтобы он выделялся, когда пользователь встречаетсостояние.Возможно, даже измените шрифт поля даты на жирный.
Я пробовал много способов ссылаться на элементы управления подчиненной формы.Когда я попробовал Me.Transactions.ReceiptDate
, я получил только первую запись в этой подчиненной форме.Я хотел бы иметь возможность просмотреть их и посмотреть, выполнено ли условие.Я пробовал Me.Transactions.ReceiptDate(1)
и Me.Transactions.ReceiptDate(0)
и так далее.
Я тоже пробовал маршрут For Each ctl In Form.Controls
.Это работало в течение нескольких итераций, и затем я получил ошибку времени выполнения 2455 «Вы ввели выражение, которое имеет недопустимую ссылку на свойство Форма / Отчет».
У меня была подчиненная форма в режиме «таблицы данных», нодумал, что это заставляет меня не быть в состоянии прочитать массив элементов управления подчиненной формы.Поэтому я изменил его на «непрерывный» режим.Я получаю те же ошибки для любого.
Есть ли способ ссылаться на определенные "строки" в подчиненной форме и что-то делать на основе найденного значения?Кроме того, я выполняю это в событии On Current, так как я не знаю, куда еще поместить код.Подчиненная форма загружается до родительской формы, так что возможно, что эти элементы управления даже не полностью «там», но затем я получаю дату первой строки, когда я пытаюсь это сделать в Immediate Window.:
С любезной помощью @Remou я могу отладить.печатать поля ReceiptDate из RecordSet.Это здорово, потому что теперь я могу оценивать данные и делать определенные вещи на основе значений. Код @ Remou помог мне поместить это в событие OnCurrent:
Dim i As Long
Dim frm As Form
Dim rs As DAO.Recordset
' Get the form and its recordset.
Set frm = Me.Form
Set rs = frm.RecordsetClone
' Move to the first record in the recordset.
rs.MoveFirst
' Move to the first selected record.
rs.Move frm.SelTop - 1
' Enumerate the list of selected records presenting the ReceiptDate field
For i = 1 To rs.RecordCount
Debug.Print rs![ReceiptDate]
rs.MoveNext
Next i
Так что теперь я могу знатьу какой строки в моей подчиненной форме есть квитанция от 2009 года, мне нужно иметь возможность выделить весь ряд или строки, когда я сталкиваюсь с ними в цикле for.Как я могу ссылаться на фактическую строку?Представление таблицы данных или представление непрерывных форм - я пробовал оба.
Условное форматирование прекрасно, но оно позволяет мне выделить только одну конкретную запись, и я бы предпочел сделать это через VBA, потому что ...... отсюда я хочу использоватьвозможность щелкнуть любую запись в подчиненной форме, получить детали квитанции и, возможно, распечатать их.
Есть идеи?