Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 9

Открытие формы с поиском текущей даты или ближайшей к ней из внесенных в список

21.02.2020, 12:59. Показов 1868. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, помогите, пожалуйста, решить задачу:

Есть таблица, куда заносятся задания для водителя на текущий день. При открытии формы создана процедура обработки:
Visual Basic
1
2
3
4
    Forms!Логистика.Requery
    
    DoCmd.GoToControl "[Дата]"
    DoCmd.FindRecord Find, acEntire, False, , False, acCurrent, True
которая осуществляет поиск записей на текущую дату в поле со списком, и открывает подчиненную ленточную форму с заданиями на текущий день.

Все прекрасно работает, если текущая дата была ранее занесена в поле "Дата" основной таблицы.

Если же текущая дата не заносилась в таблицу дат заранее (например, праздничный день в будни), то поиск, не производится.

Помогите сделать так, чтобы в этом случае производился поиск и открытие формы на ближайшую к сегодняшнему дню дату, прошлую или будущую, что ближе, и еще неплохо бы вывод сообщения, типа: "Текущая дата не заведена!"
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2020, 12:59
Ответы с готовыми решениями:

На диске C создать директорию с именем в виде текущей даты в формате ДД-ММ-ГГГГ, а в ней — текстовый файл
Помогите создать командный файл! 1.Создать в текущем каталоге пользователя командный файл с именем zachet.cmd, при запуске которого...

Открытие формы редактирования на текущей странице
Добрый день. я в MVC зеленый( мне нужно сделать такое: есть таблица(список юзеров) и в ней кнопка "редактировать". и мне нужно...

Вывод текущей даты и времени на окно формы
Ребята привет! В с++ новичек. Занялся одним маленьким проектом, который делаю с помощью Visual Studio 2010 через MFC. Создал новый проект,...

4
 Аватар для amd48
845 / 475 / 80
Регистрация: 18.05.2016
Сообщений: 1,267
Записей в блоге: 5
21.02.2020, 14:15
1. желательно иметь для рассмотрения саму базу для препарирования

Цитата Сообщение от Kush Посмотреть сообщение
которая осуществляет поиск записей на текущую дату в поле со списком, и открывает подчиненную ленточную форму с заданиями на текущий день.
процедура делает другое:
1. обновляет источник данных формы (открыта она на этот момент или нет - не известно)
2.
3. переносит курсор на поле Дата. Можно Мe.Дата.SetFocus
4. Ищет запись в таблице, на которой основана форма

скорее всего, надо так:
VB.NET
1
2
3
4
5
6
7
8
Me.Дата.SetFocus
Set rst = CurrentDb.OpenRecordset("select Дата From таблица where Дата=DateValue('" & strFind & "')")
If Not rst.EOF Then
    DoCmd.FindRecord strFind, acAnywhere, False, , False, acCurrent, True
Else
    Set rst = CurrentDb.OpenRecordset("select max(Дата) as d From таблица")
    DoCmd.FindRecord rst!d, acAnywhere, False, , False, acCurrent, True
End If
не уверен, что запрос
"select Дата From таблица where Дата=DateValue('" & strFind & "')"
нарисован правильно. С датами у меня постоянно проблема. Надо пробовать, как такой способ указания даты в условии сработает.
1
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 9
21.02.2020, 14:47  [ТС]
Спасибо, попробую!
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
21.02.2020, 15:45
Лучший ответ Сообщение было отмечено Kush как решение

Решение

Цитата Сообщение от Kush Посмотреть сообщение
Visual Basic
1
2
3
4
    Forms!Логистика.Requery
    
    DoCmd.GoToControl "[Дата]"
    DoCmd.FindRecord Find, acEntire, False, , False, acCurrent, True
....................................
Если же текущая дата не заносилась в таблицу дат заранее (например, праздничный день в будни), то поиск, не производится.

Помогите сделать так, чтобы в этом случае производился поиск и открытие формы на ближайшую к сегодняшнему дню дату, прошлую или будущую, что ближе
Во-первых, вместо DoCmd.GoToControl "[Дата]" лучше Дата.SetFocus.
Во-вторых, вместо DoCmd.FindRecord лучше метод рекордсета FindFirst, при этом, помимо прочего, не потребуется перевод фокуса.

Итого:
Visual Basic
1
2
3
 Dim S As String
 S = "SELECT TOP 1 Дата FROM таблица ORDER BY Abs(DateDiff(""d"", Дата, Date()))"
 Me.Recordset.FindFirst "Дата = " & Format(CurrentDb.OpenRecordset(S).Fields(0), "\#mm\/dd\/yyyy\#")
1
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 9
25.02.2020, 12:20  [ТС]
amd48, Capi, Спасибо большое за внимание!
Метод Capi работает превосходно! Поправил в своей базе.
Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2020, 12:20
Помогаю со студенческими работами здесь

Ошибка: Неполный структурированный конструктор в текущей точке или перед ней в выражении
let rec permutation length alphabet = if length = 0 then Seq.Empty else for e in alphabet do yield e :: permutation...

Выборка текущей и ближайшей пары
Здравствуйте! Что-то никак не соображу, как выбрать ближайшие и текущую пару, имея структуру базы как на скриншотах? С днями и остальными...

Формирование запроса к базе данных и сохранение в ней внесенных изменений
База данных Access 2003 Таблиц в базе в принципе, но вроде для запроса нужны 3 Таблица Polzovatel содержит id, номер группы,фамилию и ...

Создать запрос,отображающий список именинников, чье день рождение приходится на следующие 15 дней от текущей даты
Господа, подскажите как правильно сделать запрос с выборкой именинников из таблицы с полями фио и дата рождения, чье день рождение...

Создать запрос,отображающий список именинников, чье день рождение приходится на следующие 15 дней от текущей даты
Господа, подскажите как правильно сделать запрос с выборкой именинников из таблицы с полями фио и дата рождения, чье день рождение...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru