问题标签 [ms-access-forms]

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.

0 投票
1 回答
209 浏览

vba - 文本框的控制源设置为 DCount 函数 - 刷新问题

我正在设置文本字段的控制源以返回函数的值(具有不同过滤条件的多个字段)。该表单有一个包含年份列表的组合框:当用户选择特定年份时,on change 事件会触发所有字段的刷新。

我的问题是这些字段不显示任何值,除非在组合框的On Change事件之后。在值开始显示之前,我必须单击表单/字段。

我尝试进行表单刷新和字段的重新查询,但不起作用。

文本字段的Control Source设置为:

我想要做的是当用户从下拉列表中选择一年时,字段值会更新并由On Change事件显示 - 目前它们似乎已更新但不显示,除非我点击屏幕,那就是值开始出现在每个领域。

网格刷新问题

0 投票
1 回答
185 浏览

vba - MS-Access 列表框中显示货币的问题

每当 MS-Access 中的列表框接收数据时,它会自动考虑逗号、分号或其他类型的分隔符,并将值分隔到列表框中的列中。

因此,当我将值格式化为货币时,它在$2,000(例如)中找到的逗号被分隔为$2(在第 1 列中)和000(在第 2 列中)。

我确实将列数设置为 4,所以我明白它为什么这样做,但必须有不同的方式......

我将列数设置为 4,因为我有 4 个值要显示在列表框中。

总之,我希望我的列表看起来像这样

相反,我看到:

0 投票
1 回答
636 浏览

vba - VBA CommandBarButton 不运行代码 OnAction

一旦按下按钮,它就不会执行子例程定义的OnAction方法。

我检查了 Access 中的所有安全选项都已启用,并以不同的方式编写了相同的代码。

我试图用OnAction方法运行一个函数。

我没有收到任何错误,只是即使菜单显示它也没有做任何事情。

0 投票
1 回答
237 浏览

vba - 不同表单的用户级别权限

我有用于打开一个特定表单的代码,但我需要设置不同的用户级别,然后可以使用这些用户级别来限制对 Access 程序中不同表单的访问。

我有一个登录屏幕,它使用表中的数据(用户名/密码)employee,该表还有一个名为的外键列employeeTypeId,另外我有一个名为的表Access,它具有不同employeetypeId1, 2, 3, 4, 5

5应该是管理员并且1是只读用户等等。第三个表是EmployeeAccess,它具有数据类型employeeTypeId以及列。HasAccessyes/no

我正在使用它在 VBA 中编写代码,以确保只有某些用户可以访问某些表单。

我有一个适用于一种表单的代码,我试图弄清楚如何将此HasAccess列与employeeTypeId不同的表单名称结合使用(需要弄清楚如何使用它)以确保employeetypeId=5用户可以访问所有表单,employeetypeId=4可以访问让我们说除了employee表格表格之外的所有表格,并且employeetypeId=3只能编辑少数几个表格等等。

这是登录后访问表单的代码(加载时):

这是登录表单中的代码:

目前,当登录正确时,代码会打开所有表单,我想更改它并基于employeeTypeId.

tblEmployeeAccess

===========================

我只想知道如何将 DoCmd.OpenForm 与 TempVars("FormName") 一起使用,如果可能的话。

0 投票
1 回答
35 浏览

vba - Access 中的自定义审计跟踪以捕获登录详细信息

我有一个在 Access 中构建的登录屏幕,我需要将 UserName(它是表“Employee”中的一列)存储在我为存储数据库中发生的更改而构建的“Audit”表中。

当我从自定义登录屏幕登录时,它应该在(可能是tempvars)中捕获用户名,并且它应该保持可用直到用户关闭程序,即在会话期间(登录为“user_x”),我也想要这个要在审核表中捕获的用户名。

我从 Internet 获得了一个代码来捕获数据库中发生的更改,但它使用 Access 登录实用程序。一旦用户登录,我想更改它以从我的自定义登录表中捕获登录详细信息。

用户使用登录屏幕登录后,将在审核表中捕获的用户名。

我应该用什么代替

从我构建的自定义登录屏幕中捕获来自成功登录操作的用户名。

0 投票
2 回答
53 浏览

vba - 如果循环选择要在文本框中填充的值

我有一个文本框JobForm2我有多个文本框Form1

假设form1我有Textbox1which is RollFromInventory, Textbox2is RollFromMachine1, Texbox3isRollFromMachine2等等,假设有 4 台其他机器,所以有 4 个其他文本框。

当我想在 中填充文本框JobForm2,我想编写一个If循环,该循环应该查找其中填充form1了值的文本框(在所有可用文本框中只有一个文本框将具有值form1),即要么RollFromInventory有价值,要么RollFromMachine1有价值,要么RollFromMachine2..

我不确定循环逻辑,所以我真的不知道如何去做。

目前我编写的代码主要用于填充连接值(我没有提供该代码,因为它会使目标看起来很复杂)。

0 投票
1 回答
24 浏览

vba - 如果循环从一个表单的多个文本框中查找最新值以填充另一个文本框是另一种表单

我有一个名为“Label”的表格和另一个名为“Sheeter”的表格。Sheeter 表单有 12 个文本框 (Pallet1), (Pallet2), (Pallet3)...

用户将在“Sheeter”表单中输入其他详细信息,但他们将停留在页面上,直到填满所有 12 个框。托盘文本框基本上记录了制作不同托盘的时间(用作跟踪编号)。一旦制作了一个托盘,用户将双击文本框“Pallet1”,它将填充当前时间。接下来,用户想要在文本框 Pallet1 中使用此值来打印标签。我制作了一个按钮,它将在标签表单的文本框中获取 Pallet1 文本框的值。用户此时不想关闭 Sheeter 表单,将在表单上等待下一个 Pallet 生成,再次双击文本框“Pallet2”

我尝试过两种不同类型的 if 循环,但是我不确定语法。

第一个逻辑是查看一个文本框是否为空,如果它为真,则从标签的前一个文本框中获取值。

第二个逻辑是比较文本框的值,哪个更高,获取该值。


我不确定我应该写“”还是 Null,两者都尝试过,但都不起作用。

而且这两个逻辑似乎都不起作用(不知道语法是否不正确或逻辑本身有缺陷)

0 投票
1 回答
33 浏览

vba - Checkbox Yes/No Change on Dropbox Change

I have a Combo Box (cbo1) that list available Items. When I select an item in cbo1, I would like it change a checkbox to True (or Yes).

cbo1 gets data from tblLOG where Box (checkbox) is NO Query

I've tried using

Actual Code.

My Results are

Run-time error '3061': Too few parameters. Expected 1.

0 投票
1 回答
35 浏览

vba - 为什么 ComboBox 值的条件测试被忽略?(访问 VBA)

在我发现解决方法之前,我有一个If完全被忽略的子句,但现在我想更好地了解幕后发生的事情。

我们有一个带有 ComboBox 的表单,它被填充,但没有设置默认值。当我去保存表单时,我们需要测试用户是否选择了一个值。代码是:

代码永远不会触发,直到我将条件更改为:

我猜测"" &强制比较是文本比较,因此可以有效地测试空字符串"",但是之前的比较实际上在做什么,有没有更好、更直观的方法来管理这个?我的解决方案感觉很糟糕。

-- 30 年的 Pascal、HTML、Javascript 编码经验,但不到 1 年的 VBA 编码经验,在接到需要调试的旧应用程序之后。

0 投票
0 回答
81 浏览

vba - 尝试按日期排序的问题

我正在尝试对一个恰好是主表单上的连续表单的表单进行排序。此外,默认排序顺序是在打开表单时按降序排序。

我试图删除默认的排序顺序。我还尝试在查询或数据表视图中对其进行排序,并且效果很好。

代码是:

ActionDate它使用以下消息对 but 进行排序:

该对象不包含自动化对象“类别”。

您试图运行 Visual Basic 过程来设置对象的属性或方法。但是,该组件不会使属性或方法可用于自动化操作。检查组件的文档以获取有关它为自动化操作提供的属性和方法的信息。

请帮忙!