访问:如何实现将联系人加入旅行?

Posted

技术标签:

【中文标题】访问:如何实现将联系人加入旅行?【英文标题】:Access: How to implement joining a contact to a trip? 【发布时间】:2019-12-12 20:28:33 【问题描述】:

(Table Relationships)

我正在开发一个旅行社数据库,我有一个联系人(人员)表、一个旅行表和一个联结表 people_has_trips。 “Trip”是指一张表,其标识多为与酒店、航班等各种可选旅行元素的多对多关系。(我对这个结构有疑问,但这是另一个问题的问题)。

无论如何,我正处于为 Trips 设计表单的早期阶段,它几乎完全由链接到联结表的子表单组成。到目前为止,给我带来最大困难的问题是如何将联系人添加到旅行中。我对访问还很陌生,到目前为止,我一直在使用自动填充组合框填充此类表,但联系人表包含超过 100,000 条记录,因此某种搜索功能将是谨慎的。

Here's what I have so far. 此子表单基于 people_has_trips 表,目前仅限于显示现有记录。我禁用了所有字段,因为不允许编辑人员记录,但我对如何处理添加更多人员感到有些困惑。在我有限的访问知识中,对我来说最合乎逻辑的解决方案似乎是有一个按钮来打开一个允许搜索人员并可能添加新人员的表单。

现在,我有一个完全实现的用于输入新人的表单(如下所示),但除了 Access 的内置过滤器之外,它没有任何真正的搜索功能。所以我的子表单当前打开了 People 并且......什么也不做。坦率地说,我不知道从这里去哪里。我是开发第二个表单来搜索人员,还是在主要的人员表单中构建搜索功能,无论如何我都应该这样做?如果是这样,如何?在完成上述任何一项之后,我该如何填充 people_has_trips?我能想到的唯一答案是用户单击按钮打开人员,找到他们想要添加的人,然后手动将主键输入到子表单中,这肯定不是最佳的。

The aforementioned People entry form

我敢打赌,解决方案是 VBA 命令。我最近花时间学习了一些 VBA,而且我对它有点舒服,但我只是不知道从哪里开始解决这个问题。我相信我可以适应和应用其他人的 VBA 想法和代码,但我找不到关于这个特定问题的线程来做这件事!我猜我在这个问题上找不到任何帮助的原因是它太明显了,没有人问过这个问题,或者我的谷歌技能缺乏。无论哪种方式,我都很乐意面对解决方案。感谢大家的帮助!

【问题讨论】:

【参考方案1】:

您需要专注于您的核心问题,据我了解,您希望搜索“用户/联系人”并将其添加到“此行的人员”表单中。

是的,组合框在加载 10 万行时会占用大量时间,而且它对搜索并不友好。

在“此行的人”表单中,您可以:

有一个文本框 => 用于搜索 有一个组合框 => 显示搜索结果 [Search] [Add] [Clear] 按钮

理论上,

    搜索按钮对您的TContacts 表执行搜索并将结果分配给组合框。 类似SELECT PersonId, FirstName, LastName From Prople WHERE firstName like @keyword OR lastNAme like @keyword ... other fields 用户从组合框中选择特定结果。 添加按钮然后执行 SQL 操作,将选定的用户添加到您的联结表并刷新您的联结表。 类似于:INSERT INTO people_has_trips (people_personId, trips_tripId) values (@selectedPersonId, @tripId); 后跟 requery

这只是一个理论,您需要尝试一些东西并将其缩小到一个特定的问题。否则您的问题可能会被标记为过于宽泛。

【讨论】:

以上是关于访问:如何实现将联系人加入旅行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用ContentResolver

如何将CentOS 7桌面系统加入到Samba4 AD域环境中

使用 google api javascript 客户端访问 google 联系人 - 如何?

域内,如何限制一台电脑只能指定的域用户登录

在给定旅行预算(以分钟为单位)的情况下,如何使用旅行时间矩阵找到我可以访问的最大城市数量

如何将 QProcess 的执行与 QProgressBar 的推进联系起来以实现非常繁重的计算循环