Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
5 / 5 / 3
Регистрация: 15.01.2017
Сообщений: 669
1

Как выбрать запись и все значения её полей по максимальному значению одного из полей?

10.08.2019, 22:12. Просмотров 1070. Ответов 2


Как выбрать запись и все значения её полей по максимальному значению одного из полей?

Код. Форма "фрм_03_03_Студенты_Лент". Кнопка "AddRecor_btn" (Добавить).
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub AddRecor_btn_Click()
        Dim nameTable As String         ' Имя Таблицы
        Dim nameFieldID As String      ' Имя поля - `ID`
        Dim nameFieldSort As String   ' Имя поля - `Сортировки`
                
        nameTable = "тбл_02_Студенты"                   ' Имя Таблицы
         
        nameFieldID = "ИДСтудента"                          ' Имя поля - `ID`
        nameFieldSort = "Сортировка"                       ' Имя поля - `Сортировки`
                
        Call AddRecord_md.AddRecord(nameTable, nameFieldID, nameFieldSort)
                                                        
End Sub
Код. Модуль "AddRecord_md".
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub AddRecord(nameTable As String, nameFieldID As String, nameFieldSort As String)
        Dim rst As Recordset
        Dim valueSort As Integer
        Dim strSQL As String
        
        strSQL = "select [" & nameFieldID & "], [" & nameFieldSort & "] " & _
            " from [" & nameTable & "]" & _
            " WHERE [" & nameFieldSort & "] = (" & _
        " select max([" & nameFieldSort & "]) " & _
            " from [" & nameTable & "])"
            
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) '
        
        With rst
            ' valueSort = !Fields(nameFieldSort)
            valueSort = ![nameFieldSort]
         End With
        
   End Sub
0
Миниатюры
Как выбрать запись и все значения её полей по максимальному значению одного из полей?  
Вложения
Тип файла: zip ПолучитьЗапись.zip (32.3 Кб, 2 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2019, 22:12
Ответы с готовыми решениями:

Выборка данных по максимальному значению одного из полей
Такой код select distinct wt.wayid, wt1.Info as 'Улица', wt2.Info as 'Дом' from ...

Упорядочить записи массива по значению одного из полей
Прога сложная.Сам не справлюсь. Вот задание 1. Создать запись в соответствии с вариантом....

Найти индекс из списка элементов по значению одного из полей
Есть класс People. В нем поля Имя, Фамилия... Есть список List<People> peoples Как найти...

Создать массив из N записей, упорядочить его по значению одного из полей
Создать массив из N записей, содержащих следующую информацию: наименование процесса, его номер и...

2
5 / 5 / 3
Регистрация: 15.01.2017
Сообщений: 669
10.08.2019, 23:07  [ТС] 2
Обновление - 1

1. Таблица "тбл_02_Студенты" содержит записи - 12 штук.

2. Я выполняю отладку.
Во время отладки в переменной `strSQL` я получаю запрос:
SQL
1
2
3
SELECT [ИДСтудента], [Сортировка]  
FROM [тбл_02_Студенты] 
WHERE [Сортировка] = ( SELECT MAX([Сортировка])  FROM [тбл_02_Студенты])
Я в Aceess создаю запрос.
SQL
1
2
3
SELECT [ИДСтудента], [Сортировка]  
FROM [тбл_02_Студенты] 
WHERE [Сортировка] = ( SELECT MAX([Сортировка])  FROM [тбл_02_Студенты])
Я в Aceess выполняю запрос.
Я получаю запись у которой поле `"Сортировка"` = `9`, а должно быть `12`

3. Строка кода `valueSort = !Fields(nameFieldSort)` выдаёт ошибку `In the line valueSort =! [NameFieldSort] I get an error:`

Вопросы.
1. Почему SQL запрос выдаёт запись с "Сортировка" = 9?
2. Как передать в код в строку `valueSort = !Fields(nameFieldSort)` имя поля?
0
Заблокирован
10.08.2019, 23:27 3
Лучший ответ Сообщение было отмечено Soft17 как решение

Решение

Цитата Сообщение от Soft17 Посмотреть сообщение
Как выбрать запись и все значения её полей по максимальному значению одного из полей?
Ничего не понятно.
А нельзя ли поподробнее?
Что вы хотите? Где и зачем? - Буквально пара доп. предложений не помешает.

А... вижу - уже
- так понятнее.

Добавлено через 4 минуты
Цитата Сообщение от Soft17 Посмотреть сообщение
1. Почему SQL запрос выдаёт запись с "Сортировка" = 9?
Потому что поле "Сортировка" - Текстовое - переделайте в числовое - будет как надо.

2. Как передать в код в строку `valueSort = !Fields(nameFieldSort)` имя поля?
Попробуйте так:
Visual Basic
1
valueSort = CInt(.Fiels(nameFieldSort))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2019, 23:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как скопировать строки таблицы с ручным изменением значения одного из полей
Помогите друзья! Решается вопрос об увольнении, если не сделаю, а я не специалист. В общем, с...

Как получить все записи с максимальным значением одного из полей?
Имеется , условно говоря, база документов со всеми их атрибутами. В базе могут находиться...

Как выбрать значения, чтобы одно из полей было уникальным и приближенным к условию отбора
Добрый день! Итак, я хочу сформировать прайс лист из таблиц товаров (goods), цен (prices),...

Автозаполнение полей, зависимость нескольких полей от одного
Всем привет! Решил для работы создать незатейливую БД для учёта файлов посадочных мест различных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.