是否可以在 MS Access 2013 中基于另一个表中的值生成多个新记录?



我会预先承认我不是专业程序员或数据库设计师。 我有一个特定的问题需要解决 - 需要管理大量有关员工福利请求的信息 - 并且资源有限,并建立了一个数据库来替换我继承的Excel电子表格。 我边走边学,我真正想知道的是,Access 能否实现我的设想,或者我是否需要调整我的目标?

我的数据库包括的主要表是员工、请求、任务和活动(以及一些用于下拉字段等的辅助表)。 每个员工可以有多个请求,对于每个请求,我使用 TASKS 来跟踪所有需要完成的事情,由谁完成以及何时完成,以便从头到尾查看请求(我是 dbase 文件本身的唯一用户,但我将任务列表作为报告发布给相关人员)。正如您所期望的那样,ACTIVITY是"日记"功能,我可以在其中跟踪已完成的操作,对话等。

我现在想做的是加快任务输入的过程,因为对于大多数请求,任务流非常相似。 我已经为"任务所有者"和"任务类别"创建了表格 - 两者都与我的主要任务表相关 - 因此除了过滤之外,我还可以标准化这些字段的数据输入("向我显示员工拥有的所有内容")。 任务有一个"注释"字段,因此我可以在不更改下拉列表的情况下个性化条目。 这是进度,但我仍然花费太多时间向我设置的每个新请求添加相同但许多任务。

我一直在脑海中玩的是用某种代码识别任务,这些代码将它们与一种类型的请求相关联 - 即,员工学费报销请求被识别为"请求类型 001",并且所有通常与学费报销相关的任务都有一个查找字段将它们连接回"001" - 这样当我选中一个框或从表格的下拉列表中选择"001 - 学费报销"时, 6 或 8 个"标准"任务会自动放入"任务"子窗体,但它们是新记录 - 不仅仅是我从任务类别查询的"模板任务"。 我希望能够调整、编辑、更新甚至删除它们,而不会影响任何其他请求。

我发现很多信息通过 APPEND 查询添加新记录,但如果有意义,它似乎仅限于为每个"事务"生成一条记录 - 每次查询找到其值并执行操作时,都会生成一条记录。 如何让 Access 识别一个值(请求类型),并将与该请求类型关联的每个任务生成为 TASKS 中的新记录?

用户从多列组合框中选择请求类别,例如"学费报销"。组合框的隐藏列具有类别代码,这是绑定列,因此这是组合框的值。然后保存多条记录的代码如下所示:

CurrentDb.Execute "INSERT INTO Tasks(RequestID, TaskDesc) SELECT " & _ 
Me.tbxReqID & " AS RID, TaskDesc FROM TasksCategories WHERE TaskCat = " & Me.cbxCategory 

真正的诀窍是弄清楚要将此代码放入哪个事件。输入某些数据元素后应该是自动的还是应该单击按钮?然后需要防止重复输入 - 如果用户不小心再次单击该按钮怎么办?(这可能由表中的复合索引设置处理。此外,在请求表单上创建的新主记录必须首先提交到表。关闭表/查询/窗体、移动到另一个记录或运行要保存的命令时提交记录。

如图所示,您的要求当然是可能的,请记住"用户越友好,代码越多"。

现在,当您开发具有特定问题的代码时,请将其发布以供分析。

相关内容

  • 没有找到相关文章

最新更新