2

我正在构建一个具有 Access 2010 前端的 SQL 数据库。

我希望某些字段在 Access 中查找(即用户单击 Access 中的字段并填充下拉列表)。在 Access 中查找另一个表的字段相当简单,但我似乎不知道如何在 SQL 中执行此操作,然后传播更改。

我的 SQL 知识非常基础。下面是我如何创建 SQL 表的示例:

CREATE TABLE RequestTypes (
    RequestType varchar(50) PRIMARY KEY
);
INSERT INTO RequestTypes (RequestType) VALUES ('Val 1');
INSERT INTO RequestTypes (RequestType) VALUES ('Val 2');
INSERT INTO RequestTypes (RequestType) VALUES ('Val 3');

CREATE TABLE Projects (
    ID int IDENTITY(1,1) PRIMARY KEY,
    RequestStatus varchar(50) FOREIGN KEY REFERENCES RequestStatus(RequestStatus),
    Quantity varchar(50)
);

然后我通过 Access 中的 ODBC 连接连接到数据库。

如何在 SQL 中创建我的表,以便RequestStatus我的 Projects 表的字段具有与查找表相同的功能?例如,能够单击项目的 RequestStatus 属性并从列表中选择“Val 1”或“Val 2”或“Val 3”。以上确实需要表匹配,但不提供“下拉”查找功能。

4

3 回答 3

3

使用 SQL Server 的数据表视图时,不能使用查找。

但是,您可以做的是创建一个继续表单,然后简单地放入一个组合框并使用向导(或手动)构建您需要的下拉列表和查找。从用户的角度来看,他们并不能真正辨别以连续形式编辑数据与以连续形式编辑数据之间的区别。

因此,续表将基于 ONE 表。组合框列将是一个长数字,组合框将具有提供选择列表(查找值)的表的行源。

所以你可以像这样构建一个屏幕:

在此处输入图像描述

请注意,在上面我们有一个连续表单,还有一些按钮等。所以一个连续表单比数据表更灵活,但是这种“多个项目”表单会产生几乎相同的用户界面。

注意第一列是一个组合框。事实上,如上所示,您可以将任何类型的控件放入这些连续表单中。组合框可以/将显示您选择的文本列,但在“幕后”组合框会将您从组合框中选择的值的 PK id 存储到表单表中的单个列中。

结果和外观与 Access 数据表中的查阅列相同。

于 2014-11-13T06:07:55.663 回答
3

在 SQL Server 中创建表,链接到它,然后将该表用作所需组合框/下拉列表的行源属性。

这是在 SQL Server 中创建表的非常基本的语法:

CREATE TABLE LookupTest 
(
    ID INT NOT NULL,
    LookupValue varchar(255)
);
于 2013-10-02T23:24:49.487 回答
1

选项1:

如果已经链接表访问,可以对链接表设置 Lookup。为此,请转到表格的设计视图。选择要查找的字段。单击查找选项卡。为显示控件选择组合框。在 Row Source 中指定 SQL。例如:

如果我在 CustomerName 字段中,我可能需要以下 SQL:

SELECT DISTINCT Customer.CustomerName FROM Customer

选项 2:

我不建议以这种方式处理它。您最好在表单中添加一个组合框,将行源类型设置为“表/查询”并将行源设置为上述查询。Access 中应避免使用查找字段。

于 2013-10-03T13:49:28.950 回答