首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制查询字段的文本框

控制查询字段的文本框
EN

Stack Overflow用户
提问于 2019-01-22 02:36:04
回答 1查看 25关注 0票数 0

我必须管理各种排水口,以便排出雨水。问题是有各种各样的名字需要我使用和维护。因此,在生成报告时,它们必须使用客户端请求的命名约定。

首先,我创建了一个包含以下字段的表: outfall_ID name1 name2 name3 name4 name5

这个表将来可能会有更多的名称,但目前我处理的最大名称是5个

然后,我创建了一个表单,该表单充当设置表单,允许用户通过name5选择name1,以标识报告所需的当前名称。

这是我遇到问题的地方。在查询中,我引入了outfall表,并且可以选择ID和Name字段。但我只希望激活与设置表单中的文本字段匹配的名称字段(信息存储在表中以供引用)。

我试过或查过的东西都不管用

EN

回答 1

Stack Overflow用户

发布于 2019-01-22 03:11:16

你不能真的设计一个可以处理name1到name5列的表单。

Access是一个数据库,而不是电子表格。因此,当使用数据时,您使用的是数据行,而不是数据列。

因此,创建一个表,其中包含您想要选择的名称。

Outfall_ID |名称。

您的表将有两列,如上图所示。然后,您可以构建一个窗体,并驱动一个基于上表的组合框(或列表框)。这将显示一个允许您选择名称的列表或组合框。

在此窗体的组合框(或列表框)下面,您可以使用一个按钮来启动报表。您可以按选定的名称筛选报告,如下所示:

代码语言:javascript
复制
DoCmd.OpenReport "rptOutfalls", acViewPreview, , "outfall_ID = " & Me.MyComboBox

上面的代码将根据给定的(选定的) outfall_ID过滤报告。

如果您需要根据在组合框(或列表框)中选择的实际文本名称来筛选报表,我们假定组合框同时显示outfall_id和名称。因此,名称是组合框的第二列。

如果我们要按选定的名称筛选报告,则openreprot命令将如下所示:

代码语言:javascript
复制
DoCmd.OpenReport "rptOutfalls", acViewPreview, , "outfallName = '" & Me.MyComboBox.column(1) & "'"

因此,上面的报告现在将只过滤到您在组合框中选择的名称。

编辑

编辑: SQL无法将列转换为不同的列。您需要将数据规范化,以便可以使用SQL完成此类更新。

因此,您的表必须如下所示:

代码语言:javascript
复制
mytrans
ID  Myset   SetID   TranslateTo
1   Name1   1   A
2   Name1   2   B
3   Name1   3   C
4   Name2   1   X
5   Name2   2   Y
6   Name2   3   X

因此,您的组合框将基于以下查询:

代码语言:javascript
复制
select distinct MySet from myTrans

根据上面的内容来“翻译”ID的sql语句应该是

代码语言:javascript
复制
Select ID, Field1, Field2, outfall_ID,
 (select TranslateTo from mytrans 
    where mytrans.SetID = outfall_id and myset = 'Name1’) as outfallText
 from theDataTable
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54295967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档