| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Работа с Access. Есть таблица в ней 4 поля. |
| Автор: The Thing 26.10.2006, 12:48 |
| Работа с Access. Есть таблица в ней 4 поля. Нужно отобразить в поле на форме. Название поля имеющего минимальное значение (integer)! Очень срочно.. Помогите плз. Добавлено @ 12:51 т.е. вопрос звучит так: как получить данное таблицы (поле).. т.к. вычислить мин я смогу и сам Да, создавал форму я в режиме мастера. И имеется такое понятие как текущая запись. (форма обрабатывает только одну запись) Если что непонятно написал извините.. могу уточнить. |
| Автор: amt 31.10.2006, 21:47 |
| Может что не так, но вот что могу предложить исходя из того, как я понял твою задачу. Допустим так. Создали таблицу Таблица1 с полями a, b, c, d. Заполнили данными. Создаем запрос с помощью мастера или еще как в котором отображаются те же поля, но в них только по одному max значению. На основе запроса создаем форму с помощью мастера. Открываем форму в режиме конструктора. Там видим восемь объектов a, b, c, d – текстовые поля a_надпись, b_надпись, c_надпись, d_надпись – типа Lable-ы (имена могут быть другие, при необходимости подкорректируй) Создай на форме надпись, например Надпись10 (или тестовое поле) В событии Form_Load() пишем Private Sub Form_Load() x1 = Me.a x2 = Me.b x3 = Me.c x4 = Me.d If x1 > x2 And x1 > x3 And x1 > x4 Then Me.Надпись10.Caption = Me.a_Надпись.Caption Else If x2 > x3 And x2 > x4 Then Me.Надпись10.Caption = Me.b_Надпись.Caption Else If x3 > x4 Then Me.Надпись10.Caption = Me.c_Надпись.Caption Else Me.Надпись10.Caption = Me.d_Надпись.Caption End If End If End If End Sub При желании ненужные надписи и поля можно не выводить на экран. PS Только я тебе тут для мах сделал Может я чего не так понял… |
| Автор: Akina 2.11.2006, 10:08 |
| Уточните задачу. Имена полей таблицы заведомо известны, не изменятся в будущем и могут быть использованы константы, содержащие эти имена? или имена полей на момент дизайна неизвестны либо в дальнейшем могут измениться, и их необходимо определить программно? Исходя из общей постановки задачи: 1) Получаем доступ к TableDef, выбираем все имена с нужным типом данных (integer) 2) Получаем содержимое найденных полей для CurrentRecord 3) Среди полученных значений находим минимальное (максимальное) 4) В цикле сравниваем значение каждого поля с найденным минимумом (максимумом), при равенстве запоминаем имя текущего сравниваемого поля. 5) Выводим запомненное имя поля на форму. Если несколько полей имеют одинаковое значение, равное мин. (макс.) - такой алгоритм выведет последнее из них (в порядке, задаваемом TableDef, а не по алфавиту или структуре). Более верно - запоминать все найденные в массив, и если там окажется более 1 поля - вывести все либо одно, отобранное по желаемому критерию. |