2011-01-18 4 views
0

Я работаю над базой данных для небольшого отеля. После того, как гость получает зарезервированную комнату, им предоставляется карточка автостоянки, которая должна быть возвращена в качестве гостевой выписки. Мне нужна помощь в написании запроса, который позволит пользователю узнать, что карта парковки 01 (или любая карточка #, которая уже выдана гостю) недоступна. Кто-нибудь может помочь мне настроить это. Благодарю.Запросы в MS Access 2003

ТПС использовали

Гость TBL
GuestID PK
Дата заезда
дату отъезда
номер #
Тип номера Access Key Id

Ключ доступа TBL
Ключ доступа I D PK
Распределенный - да или нет

+0

Нам потребуется некоторое представление о структуре таблицы, которую вы используете, чтобы хранить эту информацию, чтобы иметь возможность запросить ее. –

+0

Где вы храните информацию о выданных картах? Какие таблицы задействованы? – Fionnuala

ответ

2

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

SELECT [Access Key ID] 
FROM [Access Key tbl] 
WHERE Distributed = True 

Это никогда не является хорошей идеей, чтобы иметь пробелы в именах таблиц или имена полей, потому что это как раз и приводит к стрессу, вспоминая поставить квадратные скобки все.

Рассмотрим таблицу настроить таким образом:

Guests 
GuestID 
Etc. 

Cards 
CardID 
CardType (Room or Parking) 

CardsIssued 
CardID 
GuestID 
IssueDate 
ReturnDate 
0

ПОДРОБНО.Подробнее вы даете не указать отношения так на основе информации, предоставленной вами я предполагаю, что все, что вы хотите, чтобы быть в состоянии сделать, это сказать какие ключи доступны/недоступны в любой момент времени.

Для начала вы можете воспользоваться следующим запросом, чтобы перечислить все ключи, у которых есть не.

SELECT tblKey.KeyID, tblKey.Distributed 
FROM tblKey 
WHERE (((tblKey.Distributed)=False)); 

Изменение = False к = True в обратную логику и показать все карты, которые были распределены.

Если вы хотите, чтобы искать конкретного идентификатор ключа, чтобы выяснить, если оно было распределено или не использовать следующие:

SELECT tblKey.KeyID, tblKey.Distributed 
FROM tblKey 
WHERE (((tblKey.KeyID)=[Enter Key ID])); 

Это предоставит пользователю окно, в котором идентификатор ключа может вводится. Параметры запроса объясняются более подробно. here

+0

Как я могу использовать этот запрос в своей форме? Если у меня есть поле со списком всех Карт #, перечисленных в моей форме, мне нужно, чтобы пользователь мог запросить, какие карты не были распространены, и выдать их новому гостю. – Edmond

+0

Это широкий вопрос (и несколько выходит за рамки оригинального вопроса), поскольку существует множество способов приблизиться к этому E.G.источник строки в поле со списком может быть основан на запросе, чтобы он отображал только доступные идентификаторы ключей для пользователя. –

Смежные вопросы