#sql #vba #ms-access
Вопрос:
У меня есть непрерывная форма таблицы базы данных access, которая доступна для редактирования. Я добавил столбец в форму (не таблицу базы данных access) и вставил в этот столбец несвязанное текстовое поле без значения. Когда форма загружена, она запускает VBA, которая запрашивает онлайн-базу данных, выполняет некоторые вычисления и хотела бы вставить эти вычисления в это несвязанное текстовое поле в отношении этого значения строк.
Я хочу, чтобы в несвязанном текстовом поле отображалось значение, соответствующее только этой строке, но вместо этого всему столбцу несвязанного текста присваивается одно и то же значение.
Я не хочу объединять таблицы, так как это делает форму недоступной для редактирования. Я также сделал dlookup, он работает, но это делает форму чрезвычайно медленной.
Я также пробовал использовать столбцы spacesaver, такие как
select '' as column1, '' as column2 from table;
и использовал набор записей vba для редактирования этих значений, но эти столбцы экономии места недоступны для редактирования в качестве выражения. Когда я это сделал
rs.Edit
rs.fields("column1") = "something"
rs.Update
vba ломается, когда я это делаю, так как столбец, который я пытаюсь отредактировать, является выражением и не доступен для редактирования.
Комментарии:
1. Либо сохраните вычисленное значение в поле таблицы, либо вызовите функцию с аргументом для данных field2 из несвязанного текстового поля. Вы успешно использовали DLookup, и VBA может оказаться не быстрее. Код должен быть размещен в виде отформатированного текста, а не изображения. Также предпочтительнее предоставлять данные в виде текстовой таблицы вместо изображения.
Ответ №1:
Вы не можете использовать для этого несвязанное текстовое поле. В непрерывной форме ваше несвязанное текстовое поле будет иметь одинаковое значение в каждой строке. Внутри есть только одно текстовое поле, которое печатается в каждой строке. В каждой строке нет ни одного текстового поля.
Попробуйте просто
Me.MyUnboundTextboxName = "SomeValue"
Вы увидите SomeValue
, как они появляются в каждой строке.