问题标签 [subforms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ms-access - 跨多个选项卡填充的唯一实验室条目
我正在使用我在 MS Access 2007(医院拥有的……)方面的 2 周经验从头开始创建数据库,以跟踪研究患者。信息的基本流程是这样的,从一个开始屏幕,这个人可以输入一个新病人或找到一个老病人(每个都通过一个按钮) - 得到这些部分......(他们去一个病人人口统计表格)
找到患者后,他们可以从组合框中选择以前的就诊(获取该部分)或创建新就诊(通过一个按钮,然后弹出组合框的附加表单)- 获取该部分... (他们去访问表格)
这就是我的问题所在。在访问表单上,我们需要能够生成实验室条目(每个实验室条目都有多个表来存储数据)。我已经创建了表单(患者信息区域和 12 个选项卡,每个选项卡在数据表视图中都有不同的子表单(一个除外)),我可以获得我在表中输入的当前“假”结果以显示在选项卡中。我的问题在于获取它,以便当我们在任何一个选项卡中输入新的实验室日期(确实会生成一个新的唯一 LabID)时,让它在其他 11 个选项卡(都与该唯一 LabID 相关联)中填充该日期和记录在每个基表中。如果访问没有与之关联的实验室,我的子表单应该只是空白数据表,可以输入新的 labID。否则,如果我们已经在访问,
哦,是的....我们还必须能够回到那些其他实验室记录并在结果可用时对其进行编辑/添加(病理学比其他需要更长的时间 - 等等)。但是,如果 LabID 和相关日期填充在所有 12 个选项卡中的每个表单中,则应该有一个空白区域等待该信息可用时。所以这可能不是什么大问题。
本质上,一个独特的患者将产生多次独特的就诊——>每次就诊可以产生 1 个或多个独特的 LabID,然后与许多实验室数据点相关联(对于该实验室 ID 来说都是唯一的)。迷茫了吗?如果我的想法是正确的,那是一对多对多对一的关系吗?
这是我的关系表的一部分:
这是访问表格:
对于访问表单选项卡中的每个子表单,我将“链接主字段”设置为 VisitID,并将“链接子字段”设置为 Lab ID。我已经设法通过少量的 VBA 编码完成了所有这些工作,但这是让我从患者人口统计页面上的组合框中获得的编码:
截至目前,我的构建器中没有访问页面的代码。子表单基于从实验室组表和 labID 表中提取的查询。
一周以来,我一直在网上和 Access 2007 圣经中寻找答案,但我可以承认,当我不知所措并陷入困境时……专家,请帮忙!- 如果需要,我可以提供指向数据库的链接。
ms-access - 当 subID = frmID 未针对正确的子表单记录时,子表单字段更新
我的表单包含一个组合框,我在其中选择一条记录并填充txt
子表单中的字段。在save
按钮上,我有以下 VBA 代码。
如果subaccount
表单中只有一条记录,它可以工作,但似乎无法-1
在以下记录上放置复选标记(the )。有什么建议么?
angularjs - 使用“ng-form”启用/禁用带有嵌套子表单的角度表单验证
我需要ng-form="myForm"
根据范围变量启用/禁用 Angular 表单或子表单中的所有验证规则$scope.isValidationRequired
。因此,如果isValidationRequired
是false
,则为指定字段组设置的任何验证都不会运行,结果将始终为myForm.$valid==true
,否则,验证规则将照常运行。
我做了很多研究,并意识到这个功能在 Angular 中是不可用的。但是,我发现了一些附加组件或进行了一些自定义,这是可能的。
例如,我可以使用带有自定义指令的附加angular-conditional-validation(github和demoenable-validation="isValidationRequired"
) 。这将是完美的,除了我不能将此功能应用于ng-form
. 我必须为每个适用的字段添加此指令。
另一种解决方案是使用 Angular$validators
管道使用自定义验证。这需要一些额外的努力,而且我没有时间,因为 sprint 快结束了,我必须在几天内给出一些结果。
如果您有任何其他建议,请发布答案。
用例:
为了澄清这一点,我将提到用例。最终用户可以用无效数据填写表单,他可以单击Save
按钮,在这种情况下,不应该触发验证规则。只有当用户单击时,才Validate and Save
应触发验证规则。
解决方案:
在此处查看最终的 plunker 代码。
更新:根据下面的评论,如果在ng-form
. 需要更多的努力来调试和解析这个发行者。如果只使用一个级别,那么它工作正常。
更新:这里的 plunker更新了更通用的解决方案。现在该代码将使用具有子表单的表单ng-form
。该函数setAllInputsDirty()
检查对象是否$$parentForm
为停止递归。此外,changeValidity()
将检查对象是否是一个表单,$addControl
然后它将调用自身来验证其子对象。到目前为止,这个函数运行良好,但它需要一些额外的优化。
vba - 循环浏览记录时,访问中的更改事件将不起作用
我目前有一个包含两个子表单的表单,在一个名为 Customer Addresses 的子表单中,我有一个包含地址表主键的文本框。我在此表单上放置按钮以循环到下一个或上一个记录,当我循环浏览这些记录时,我可以在文本框中看到我的不同地址 ID 循环。
现在,当我的 addressID 被循环时,我希望该值自动更新另一个名为 CustomerContacts 的子表单中的另一个文本框。我在更改和更新事件中添加了一些代码,但没有成功。
上面代码中的引用是正确的。我用一个组合框测试了这段代码,我实际上在其中点击了下拉箭头并选择了一个值,它成功地更新了另一个子表单中的另一个文本框。
所以我在这里遗漏了一些东西,当循环浏览记录时,它不会触发更改或更新事件,所以我想知道如何解决这一切。
forms - 根据先前的条目/字段自动填充 access2003 子表单中的字段
首先,我是新手。其次,是的,我正在使用 access 2003,这不是自愿的。这是我的工作提供给我的程序,所以我一直在使用它。
问题:我在access2003 中创建了一个带有子表单的表单。该表单具有三个字段:State、Year 和 CompanyName。
然后子表单列出三个字段:CompanyID、Date 和 AmtPaid(以美元为单位)。
每次我让用户在子表单中输入新的数据行时,我希望子表单自动填充/自动填充子表单中的 CompanyID。
例如:我选择以下形式...State=PA, Year=2017, CompanyName=ABC (ID=2)。
然后我可以在我的子表单中输入值...CompanyID=2, Date=3/1/17, AmtPaid=$10.00。
当我去输入一个新的数据行时,例如 17 年 4 月 1 日为同一家公司支付的金额,我希望 CompanyID 自动填写“2”。我的目标是让该字段自动填充每个公司 ID,因为我计划避免用户错误并计划隐藏该字段。
我了解字段属性窗口中的默认分配,但如果我输入数字“2”,则默认情况下将为所有公司输入“2”,而不仅仅是公司 ABC。我相信我必须编写某种代码来引用子表单中的前一个字段或第一个字段,以便新行复制以前输入的内容。
任何帮助都非常感谢提前。
ms-access - 我可以在 MS Access 2013 中根据另一个表中的值生成多条新记录吗?
我将通过预先承认我不是专业程序员或数据库设计师来证明这一点。我有一个特定的问题要解决——需要管理大量关于员工福利请求的信息——以及有限的资源,并建立了一个数据库来替换我继承的 Excel 电子表格。我边走边学,我真正想知道的是,Access 能否实现我的设想,或者我是否需要调整我的目标?
我的数据库包括的主要表是 EMPLOYEES、REQUESTS、TASKS 和 ACTIVITY(加上一些用于下拉字段的辅助表等)。每个员工可以有多个请求,对于每个请求,我使用 TASKS 来跟踪需要完成的所有工作、由谁以及何时完成,以从头到尾查看请求(我是dbase 文件本身,但我将任务列表作为报告发布给相关人员)。正如您所期望的那样,活动是“日志”功能,我可以在其中跟踪所做的事情、对话等。
我现在要做的是加快任务进入的过程,因为对于大多数请求,任务流程非常相似。我已经为“TASK OWNER”和“TASK CATEGORIES”创建了表 - 两者都与我的主 TASKS 表相关 - 所以我可以标准化这些字段的数据输入,除了对其进行过滤(“向我展示员工拥有的一切”) . 任务有一个“注释”字段,因此我可以在不更改下拉列表的情况下个性化条目。这是一个进步,但我仍然花费太多时间为我设置的每个新请求添加相同的任务。
我脑子里一直在玩的是用某种代码来识别任务,这些代码将它们与一种请求相关联——即,员工的学费报销请求被识别为“请求类型 001”,并且所有通常执行的任务有学费报销的查找字段将它们连接回“001” - 这样当我选中一个框或从我的表格的下拉列表中选择“001 - 学费报销”时,6或8个“标准”任务会自动下降在任务子表单中,但它们是新记录 - 不仅仅是我从任务类别中查询的“模板任务”。我希望能够在不影响任何其他请求的情况下调整、编辑、更新甚至删除它们。
我发现了很多通过 APPEND 查询添加新记录的信息,但如果有意义的话,它似乎仅限于为每个“事务”生成一个记录 - 每次查询找到它的值并执行操作时,一条记录是生成。如何让 Access 识别一个值 - 请求类型 - 并将与该请求类型关联的每个任务生成为 TASKS 中的新记录?
database - MS Access:如何使用表单填充其他子表单中的其他字段?
我有以下表格,其中包含它们共同的字段。例如
分支表
- 零售商 ID (PK)
- 零售商名称
- 地址1
- 地址2
内部表
- 零售商 ID (PK)
- 零售商名称
- 内部标识
银行账户
- 零售商 ID (PK)
- 零售商名称
- 银行代码
- 银行帐号
我使用分支表创建了一个“主”表单,并将内部表和银行账户的表单作为子表单。我的意图是在零售商 ID 和零售商名称字段中输入用户类型,以防止重复手动输入相同的字段。在属性表下,我使用链接主字段和链接子字段链接了这些字段。但是,该表单似乎没有按预期执行。
输入分支表(主表)的测试数据后,转到内部表的字段会导致以下错误:
“Microsoft Access 数据库引擎无法在具有键匹配字段的表中找到记录。(错误 3101)”解释为“在一对多关系中,您在“多”端输入了数据“一”侧没有匹配记录。例如,如果您在 CustomerID 字段上连接客户表和订单表,然后使用客户表中不存在的客户 ID 添加订单,则会出现此错误。
因此,我无法自动为其他表添加另一个条目。
vba - access 2010主窗体后如何加载子窗体
我有一个 Access 2010 数据库,主表中有文档信息。
我有显示表格中特定文档类型信息(信用卡对帐单、发票等)的表格。
我有一个主表单,带有单独的子表单,每个子表单代表一个特定的文档类型。我希望能够从主表单中过滤,以便每个文档类型子表单仅显示落在用户指定的美元金额范围内的文档。
我在想,如果我可以让子表单在主表单之后打开(与此相反的是默认顺序),我可以在每个子表单的打开事件中设置过滤器,从主表单开始,然后得到我想要的结果。
我发现导致子表单在主表单之后打开的原因是从子表单的“属性”表的“数据”选项卡中删除 SourceObject;然后在主窗体的open事件中将子窗体名称赋给vba中的SourceObject属性。
我的例子是 Me.MySubForm.Form.SourceObject = "frmSubFormName",左边的所有内容都是逐字记录的,frmSubFormName 是我的子表单的名称。
这并没有通过编译器 - 它在抱怨 MySubForm,不幸的是,带有示例的帖子/博客在将 SourceObject 属性分配给我的子表单名称时并未指出“MySubForm”是什么。
对这种过滤方法有什么想法吗?
任何人都可以阐明设置 SourceObject 的语法吗?或者也许提供另一种在主表单之后加载子表单的方式?
提前致谢。
forms - 在父窗体中过滤多个 Access 子窗体实例
好吧,伙计,我不知所措。似乎有几种过滤子表单的方法,但我成功使用的方法很少,而且没有一个能够处理多个实例。
这就是我想要完成的事情(这是我的 VBA 书呆子与我的 Fantasy Football 书呆子相冲突的时候)。
我有一个 Fantasy Football Auction Draft 数据库,它从 FantasyPros 中提取使用情况以及球员统计数据、排名、价值等。
主要表格允许我实时跟踪草稿。随着球员的购买,交易被记录下来并与经理联系起来。
数据库的“肉类”是 frm_ManagerBox。此处的此表单屏幕截图正在使用大约 16 个查询提取数据,但主要记录源是 Manager 表。
frm_ManagerBox 作为一个独立的表单运行良好,我可以毫无问题地滚动浏览记录(我们联盟中有 12 位经理)。
我的目标是拥有一个包含 12 个 frm_ManagerBox 实例的主父表单 (frm_ProfileHub),每个实例都过滤到我们 12 位联盟经理中的一位。理想情况下,我应该有一个包含 12 个框的大表单,每个框下都有一个组合框,用于将子表单填充到相应的管理器。
但是,一旦我尝试嵌入子表单,这一切都变成了废话。子表单的查询全部中断(在表单加载时,我收到 16 个弹出窗口,询问每个源的定义)。
我的理解是子表单中的查询必须从父表单中调用数据。我可以手动设置子表单的每个查询的条件,以从父表单的组合框中提取,但这并不能说明我在父表单上需要的 11 个其他实例。
任何帮助或指导将不胜感激。选秀日即将到来!谢谢!
vba - 访问子表单更改关注按钮单击
我有一个子表单(连续表单),每行都有一个按钮,单击时过滤该记录上的主表单。当我单击按钮时,子窗体上的焦点会跳转到子窗体的顶部(即第一条记录)。我怎样才能让焦点留在记录上。
换句话说,我单击记录 100 旁边的按钮,焦点更改为子窗体上的记录一个(主窗体按预期显示记录 100)。我希望专注于子表单以保持记录 100。
这是我正在使用的 VBA 代码:
上面的代码在子窗体上的按钮的 On Click 事件上。