powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Простое действие а все никак не получается,прошу помощи
12 сообщений из 12, страница 1 из 1
Простое действие а все никак не получается,прошу помощи
    #39387208
AkiStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрые люди,помогите вроде с не сложным вопросом
Имеется одна таблица:
*Номер дежурства
Дата приема
Время приема
Номер врача

Как правильно задать условие что бы при вводе данных нельзя было сделать несколько записей к одному врачу на одно и то же время?
Вроде все просто,нужно сделать условие что при полном повторении(Дата приема,время прием,номер врача) он выдавал ошибку и не позволял занести данное значение,но вот сижу и вообще не понимаю как создать данное условие,пожалуйста помогите новичку=)
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387210
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkiStarКак правильно задать условие что бы при вводе данных нельзя было сделать несколько записей к одному врачу на одно и то же время?На одно и то же дату и время - я бы понял, но только время???
Кстати, а нафига дата и время поделены на два поля?
А запрет дубликатов по группе плей делается созданием уникального индекса по этой группе полей. Либо программным кодом формы ввода, проверяющим это условие и блокирующим вставку записи при нарушении.
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387216
AkiStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну один врач может принять в день несколько пациентов,т.е дата одна,но время то разное.
Насчет создание уникального индекса для группы полей,не могли бы пожалуйста уточнить более подробно как это создать т.к. не могу найти данной функции
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387223
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkiStar,

Тут собственно есть две возможные ветки имхо:
1. По факту (пришел пациент - попал в таблицу). Тут даже в сетевой версии проблем не должно быть особых если все делается в режиме онлайн...
2. Расписание (составляется заранее, возможно заполняется по предварительной записи) тут тоже проблем нет - есть расписание приема, если пациент с 12 до 12.30 был - то стоит фамилия, если не стоит - никого не было...
В общем нужно плясать от реалити, а не придумывать нечто сюрреалистическое...
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387260
blackbuster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkiStarНу один врач может принять в день несколько пациентов,т.е дата одна,но время то разное.
Насчет создание уникального индекса для группы полей,не могли бы пожалуйста уточнить более подробно как это создать т.к. не могу найти данной функции
Индекс устанавливается в конструкторе таблиц
В вашем случае это должно быть примерно так, как показал в приложении:
у поля "Время" уникальный индекс - "Да", а "Врач" и "Дата" с пустыми индексами после "Время". при такой индексации система будет ругаться, только когда все 3 поля совпадут

можно сделать проверку через код VBA, например, при нажатии кнопки сохранения дежурства:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub Exit_Click()
On Error GoTo Err_Exit_Click

Dim a, b, c, errmes As String

errmes = ""

a = nz (dlookup ("Врач", "Дежурства", "КодДежурства = " & me.коддежурства),0) ' я предположил, что таблица называется "Дежурства", а "Коддежурства" ключевое поле в ней, которое присутствует так же и в форме
b = nz (dlookup ("Дата", "Дежурства", "КодДежурства = " & me.коддежурства),0)
c = nz (dlookup ("Вреся", "Дежурства", "КодДежурства = " & me.коддежурства),0)

button = vbExclamation
if a <> 0 and b <> 0 and c <> 0 then errmes = "Данное время уже занято!"

If errmes = "" Then
    DoCmd.Close
Else
    MSG = msgbox(errmes, vbExclamation, Me.Caption)
End If

Exit_Exit_Click:
    Exit Sub

Err_Exit_Click:
    msgbox Err.Description
    Resume Exit_Exit_Click
    
End Sub
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387262
blackbuster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
файл не приложился, прошу прощения
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387268
AkiStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо за помощь
Это действительно помогло\o/
Моя шукрка спасена =)
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387269
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blackbusterу поля "Время" уникальный индекс - "Да",

имеет смысл при снятии показаний синхрофазотрона, адронного коллайдера и т.д.
при условии, что разница между двумя временными характеристиками в мили секунду, секунду, минуту
позволяет завести в таблицу дубль - превращает индекс времени в пятое колесо для телеги с точки зрения постановки задачи в топике...
типа первая запись: окулист - Иванов - 19.01.2017 - 10:00
вторая запись: окулист - Петров - 19.01.2017 - 10:01
Бред... Иванов зашел, просто поздоровался с окулистом и ушел...
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387270
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkiStarМоя шукрка спасена =)

готовьтесь к моему вопросу от препода...
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387272
AkiStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blackbuster,Тебе прям огромное спасибо,что не поленился и сделал все так подробно и просто
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387277
blackbuster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

насколько я знаю, время назначается не хаотично, а с интервалом 15-30 минут, поэтому никто не мешает при выборе времени в форме минуты выбирать из списка "00; 15; 30; 45".
...
Рейтинг: 0 / 0
Простое действие а все никак не получается,прошу помощи
    #39387280
AkiStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blackbuster,в данном случае забыл уточнить,что время имеется ввиду как утро или вечер,более детальное время в данной задаче не требуется
Но ваш ответ действительно помог решить мою проблему,т.к долгое время я не мог понять как сделать условие для нескольких полей,а не для одного конкретного
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Простое действие а все никак не получается,прошу помощи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]