2011-01-18 278 views
0

我正在为一家小旅馆的数据库工作。一旦客人预订了房间,他们将得到一张停车场卡,该卡在客人退房时需要退回。我需要帮助编写一个查询,以便让用户知道停车场卡01(或任何已发给客人的卡号)不可用。任何人都可以请帮我设置一下。谢谢。MS Access 2003中的查询

Tbls使用

游客TBL
GuestID PK
入住日期
退房日期
房#
房型 访问密钥

访问密钥TBL
访问密钥I D PK
分布式 - 是或否

+0

我们需要一些关于您正在使用的表结构的想法来存储此信息以便能够查询它。 – 2011-01-18 22:13:33

+0

你在哪里存储关于发出的卡片的信息?涉及哪些表格? – Fionnuala 2011-01-18 22:14:07

回答

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)); 

更改=假=真扭转逻辑和显示所有卡,分发。

如果你想寻找一个特定密钥ID,以找出是否已分配或不使用下列内容:

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

这将为用户提供一个窗口,钥匙ID可以被输入。查询参数更详细地解释here