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

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

Тут собственно есть две возможные ветки имхо:
1. По факту (пришел пациент - попал в таблицу). Тут даже в сетевой версии проблем не должно быть особых если все делается в режиме онлайн...
2. Расписание (составляется заранее, возможно заполняется по предварительной записи) тут тоже проблем нет - есть расписание приема, если пациент с 12 до 12.30 был - то стоит фамилия, если не стоит - никого не было...
В общем нужно плясать от реалити, а не придумывать нечто сюрреалистическое...
...
Рейтинг: 0 / 0
19.01.2017, 00:24
    #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
19.01.2017, 00:28
    #39387262
blackbuster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простое действие а все никак не получается,прошу помощи
файл не приложился, прошу прощения
...
Рейтинг: 0 / 0
19.01.2017, 00:52
    #39387268
AkiStar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простое действие а все никак не получается,прошу помощи
Огромное спасибо за помощь
Это действительно помогло\o/
Моя шукрка спасена =)
...
Рейтинг: 0 / 0
19.01.2017, 00:53
    #39387269
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простое действие а все никак не получается,прошу помощи
blackbusterу поля "Время" уникальный индекс - "Да",

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

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

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


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