访问:如何实现将联系人加入行程?
Access: How to implement joining a contact to a trip?
(Table Relationships)
我正在开发一个旅行社数据库,我有一个 table 联系人(人员),一个 table 旅行和一个交汇点 table,people_has_trips。 "Trip"指的是一个table,其身份主要是多对多关系,与各种可选的旅行元素,如酒店,航班等(我对这种结构表示怀疑,但这是另一个问题问题)。
无论如何,我正处于为 Trips 设计表单的早期阶段,该表单几乎完全由链接到交叉点 table 的子表单组成。到目前为止给我最大困难的问题是如何将联系人添加到行程中。我对访问相当陌生,到目前为止,我一直在使用自动填充组合框填充此类 table,但联系人 table 包含超过 100,000 条记录,因此某种搜索功能将是谨慎。
Here's what I have so far. 此子表单基于 people_has_trips table,目前仅限于显示现有记录。我禁用了所有字段以不允许编辑人员记录,但我对如何处理添加更多人员感到有些困惑。以我有限的 Access 知识,对我来说最合乎逻辑的解决方案似乎是有一个按钮来打开一个允许搜索人员并可能添加新人员的表单。
现在,我有一个完全实现的用于输入新人员的表单(如下所示),但是除了 Access 的内置过滤器之外,它没有任何真正的搜索功能。所以我的子表单当前打开了 People 并且...没有做任何其他事情。坦率地说,我不知道从这里去哪里。我是开发第二个表单来搜索人员,还是在主要的人员表单中构建搜索功能,无论如何我都应该这样做?如果是这样,如何?在完成这些操作后,我该如何填充 people_has_trips?我能想到的唯一答案是用户单击按钮打开人员,找到他们想要添加的人,然后手动将主键输入子表单,这肯定不是最佳选择。
The aforementioned People entry form
我敢打赌,解决方案是 VBA 命令。我最近花时间学习了一些 VBA,而且我对它比较满意 table,但我就是不知道从哪里开始解决这个问题。我相信我可以改编和应用其他人的 VBA 想法和代码,但我找不到关于这个特定问题的线程来做这件事!我猜我找不到任何帮助解决这个问题的原因是它太明显了以至于还没有人问过这个问题,或者我的 Google 技能不足。无论哪种方式,我都非常乐意面对解决方案的实现。感谢大家的帮助!
您需要专注于您的核心问题,据我了解,您想要搜索并将 "users/contacts" 添加到您的 "People on this trip" 表单。
是的,组合框会占用加载 10 万行的时间,而且搜索起来并不友好。
在您的 "People in this trip" 表单中,您可以:
有一个文本框 => 用于搜索
有一个组合框 => 显示搜索结果
[Search]
[Add]
[Clear]
按钮
理论上,
- 搜索按钮对您的
TContacts
table 执行搜索并将结果分配给组合框。
类似于 SELECT PersonId, FirstName, LastName From Prople WHERE firstName like @keyword OR lastNAme like @keyword ... other fields
- 用户从组合框中选择特定结果。
- 添加按钮然后执行 SQL 操作将所选用户添加到您的联结 table 并刷新您的联结 table。
类似于:INSERT INTO people_has_trips (people_personId, trips_tripId) values (@selectedPersonId, @tripId);
后跟 requery
这只是一个理论,您需要尝试一些东西并将其缩小到特定问题。否则您的问题可能会被标记为过于宽泛。
(Table Relationships)
我正在开发一个旅行社数据库,我有一个 table 联系人(人员),一个 table 旅行和一个交汇点 table,people_has_trips。 "Trip"指的是一个table,其身份主要是多对多关系,与各种可选的旅行元素,如酒店,航班等(我对这种结构表示怀疑,但这是另一个问题问题)。
无论如何,我正处于为 Trips 设计表单的早期阶段,该表单几乎完全由链接到交叉点 table 的子表单组成。到目前为止给我最大困难的问题是如何将联系人添加到行程中。我对访问相当陌生,到目前为止,我一直在使用自动填充组合框填充此类 table,但联系人 table 包含超过 100,000 条记录,因此某种搜索功能将是谨慎。
Here's what I have so far. 此子表单基于 people_has_trips table,目前仅限于显示现有记录。我禁用了所有字段以不允许编辑人员记录,但我对如何处理添加更多人员感到有些困惑。以我有限的 Access 知识,对我来说最合乎逻辑的解决方案似乎是有一个按钮来打开一个允许搜索人员并可能添加新人员的表单。
现在,我有一个完全实现的用于输入新人员的表单(如下所示),但是除了 Access 的内置过滤器之外,它没有任何真正的搜索功能。所以我的子表单当前打开了 People 并且...没有做任何其他事情。坦率地说,我不知道从这里去哪里。我是开发第二个表单来搜索人员,还是在主要的人员表单中构建搜索功能,无论如何我都应该这样做?如果是这样,如何?在完成这些操作后,我该如何填充 people_has_trips?我能想到的唯一答案是用户单击按钮打开人员,找到他们想要添加的人,然后手动将主键输入子表单,这肯定不是最佳选择。
The aforementioned People entry form
我敢打赌,解决方案是 VBA 命令。我最近花时间学习了一些 VBA,而且我对它比较满意 table,但我就是不知道从哪里开始解决这个问题。我相信我可以改编和应用其他人的 VBA 想法和代码,但我找不到关于这个特定问题的线程来做这件事!我猜我找不到任何帮助解决这个问题的原因是它太明显了以至于还没有人问过这个问题,或者我的 Google 技能不足。无论哪种方式,我都非常乐意面对解决方案的实现。感谢大家的帮助!
您需要专注于您的核心问题,据我了解,您想要搜索并将 "users/contacts" 添加到您的 "People on this trip" 表单。
是的,组合框会占用加载 10 万行的时间,而且搜索起来并不友好。
在您的 "People in this trip" 表单中,您可以:
有一个文本框 => 用于搜索
有一个组合框 => 显示搜索结果
[Search]
[Add]
[Clear]
按钮
理论上,
- 搜索按钮对您的
TContacts
table 执行搜索并将结果分配给组合框。
类似于SELECT PersonId, FirstName, LastName From Prople WHERE firstName like @keyword OR lastNAme like @keyword ... other fields
- 用户从组合框中选择特定结果。
- 添加按钮然后执行 SQL 操作将所选用户添加到您的联结 table 并刷新您的联结 table。
类似于:INSERT INTO people_has_trips (people_personId, trips_tripId) values (@selectedPersonId, @tripId);
后跟requery
这只是一个理论,您需要尝试一些东西并将其缩小到特定问题。否则您的问题可能会被标记为过于宽泛。