Я не программист, но мне все равно было поручено это сделать! Мы работаем над исследовательским проектом, который включает в себя тестирование свойств различных образцов. Я пытаюсь создать форму, которая будет генерировать пользовательский отчет на основе того, что выбирает пользователь. Итак, у меня есть несколько текстовых полей и флажков, чтобы пользователь мог определить параметры запроса (например, состав образца должен содержать не менее 5% компонента A) и выбрать, какие данные ему интересно видеть в указанном отчете (например, показать pH). , цвет, но не точка плавления). Я успешно создал код для генерации запроса, а затем сгенерировал отчет на основе этого запроса, но по умолчанию в отчете используются значения ширины столбцов, которые обычно слишком велики (например, ширина столбца pH составляет 3 дюйма, для этого нужно всего около 1 ). Я хотел бы быть в состоянии это исправить, но не смог понять, как. В то же время некоторые из этих полей содержат числа, которые являются средними значениями результатов нескольких тестов, поэтому я хотел бы ограничить количество отображаемых цифр и отображать их в виде%, где это необходимо. Я начал с устранения проблемы ширины столбца:
Я попытался создать коллекцию включенных полей, затем выполнить цикл по коллекции и установить ширину столбцов, но не могу понять, как определить поле с переменной:
Если я знаю имя поля, я могу сделать это:
Reports("ReportName")!FieldID.Width = 200
Но если у меня есть коллекция имен, FieldNames или строки VariableName, ничего из этого не сработает, из-за чего я получаю сообщение об ошибке, что FieldNames или VariableName не являются допустимыми полями в отчете:
Reports("ReportName")!FieldNames(1).Width = 200
Reports("ReportName")![FieldNames(1)].Width = 200
Reports("ReportName")![VariableName].Width = 200
Есть ли способ связать имя поля с переменной?
В качестве альтернативы я подумал, что может быть способ перебрать все поля и установить ширину - это будет включать поиск ширины столбца для каждого поля, что я подумал сделать, добавив ключ к коллекции ширины столбцов. Но я не могу найти способ сделать это, что-то вроде:
For each Field in Reports("Report")
Field.Width = ColumnWidthCollection(Field)
Next
Это зависает в строке Field.Width с "недопустимым вызовом процедуры или аргументом", что возвращает меня к тому, как ссылаться на имя поля с помощью переменной.
Любая помощь будет принята с благодарностью!