【问题标题】:MS Access Report Hyperlink to FormMS Access 报表超链接到表单
【发布时间】:2017-10-06 22:06:34
【问题描述】:

您好,我创建了一个数据库,我正在尝试创建它,以便当我单击报告中的某个字段时,它会跳转到具有相关字段的表单。

我有一个表格“tblPagers”一个表格“frmPagers”和一个报告客户报告

在表格中,我有一个字段 PagerID 和用户名...在我的报告中,我想点击用户名,让它把我带到我当前记录上的 frmPagers。我的 Where 条件有问题。

我有:

If IsNull([User Name]) Then
Beep
End If
If Not IsNull([User Name]) Then
OpenForm
 Form Name frmPagers
 View Form
Where Condition (this is where I have the problem)
Data Mode Edit
Window Mode Dialog

对于我的 where 条件,我已经尝试过 =="[Pager ID]="&[User Name] 当我单击空用户名时,它会发出哔声。但是,如果我单击用户名,我会收到此错误。 “查询表达式 '[Pager ID]=Sam Hall' 中的语法错误(缺少运算符)。”

【问题讨论】:

  • 为了清楚起见,If IsNull([UserName])Then

标签: ms-access vba


【解决方案1】:

[Pager ID] 是文本类型字段吗?它真的存储用户名文本吗?我怀疑两者都没有。

试试:

If IsNull(Me.[User Name]) Then
    Beep
Else
    DoCmd.OpenForm "frmPagers", , , "[User Name]='" & Me.[User Name] & "'", acFormEdit, acDialog
End If

如果必须使用宏,则 WHERE CONDITION 为:
[User Name] = Reports![Customer Report]![User Name]

建议在命名约定中不要使用空格或标点符号/特殊字符(下划线除外)。最好是 UserName 或 User_Name、PagerID 或 Pager_ID。

【讨论】:

  • 感谢您的回复。寻呼机 ID 是我的主键。用户名在同一个表中。感谢您提供有关命名约定的建议。
  • 我不想要消息框,因为这只是从发送给最终用户的报告到输入数据的表单的快速访问链接。
  • 错误显示正确的信息:查询表达式'[PagerID]='John Doe'中的字符串语法错误。这是该寻呼机 ID 的正确用户名。但是,它没有打开表单。如果我清除“Where 条件”。表单会打开,但不会打开当前记录。我会尝试添加屏幕帽的照片。
  • 我猜我无法添加照片,因为我的帐户太新了……我想我在这个帐户上有很多活动。一定是我在学生时代使用的另一个帐户,因为我知道我以前在这里发布过屏幕截图。
  • 如果 PagerID 是 Autonumber 主键,那么肯定不能将它与文本用户名进行比较。将 PagerID 更改为 UserName 或与 PagerID 值进行比较。请参阅修改后的答案。
猜你喜欢
  • 2014-12-31
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
相关资源
最近更新 更多