Events MS Access 2007:是否可以(使用VBA或类似工具)在打开的表中或从打开的查询结果中获取所选行?

Events MS Access 2007:是否可以(使用VBA或类似工具)在打开的表中或从打开的查询结果中获取所选行?,events,ms-access,vba,ms-office,ms-access-2007,Events,Ms Access,Vba,Ms Office,Ms Access 2007,这个问题的标题说明了一切,我正在寻找实现这一目标的方法。可能吗 此外,如果这无法实现,是否有其他方法可以将用户选择的ID从表/查询传递到表单(即,打开表单不是问题,使用超链接字段,传递单击内容的值是棘手的部分) 谢谢。在Excel中,您可以捕获事件表SelectionChange,因此只需简单介绍一下: 'Variable for trapping events in Excel application. Private WithEvents mxlApp As Excel.Applicatio

这个问题的标题说明了一切,我正在寻找实现这一目标的方法。可能吗

此外,如果这无法实现,是否有其他方法可以将用户选择的ID从表/查询传递到表单(即,打开表单不是问题,使用超链接字段,传递单击内容的值是棘手的部分)


谢谢。

在Excel中,您可以捕获事件表SelectionChange,因此只需简单介绍一下:

'Variable for trapping events in Excel application.
Private WithEvents mxlApp As Excel.Application  

Private Sub mxlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    'Do stuff here.
End Sub
我想在访问方面也会类似。我以前没有在VBA中为Access编程,但应该是类似的

以下是一些资源:


通常认为,让用户直接访问表或查询结果是一种不好的做法。通常,您应该构建一个

  • 包含包含表/查询结果的列表,或
  • 是绑定到表/查询的连续表单

  • 然后,用户可以从表单中选择所需的项目,表单可以将所选内容发送到另一个表单。

    否,Access不像电子表格,因此这绝对不是一个有用的答案。您是否浏览了Access附带的基本教程?似乎您正试图在代码中完成一些可以通过点击创建的访问对象,这对我来说意味着您确实不适应访问方式(可能是因为不熟悉)。所有这些都表明,表数据表是具有表单对象属性子集的对象。因此,您可以使用
    Screen.ActiveDatasheet获取当前行的字段值!MyField
    (其中
    MyField
    是要查找其值的列的名称)。非常正确。制作只读数据表可能是一种快速、肮脏的方式,可以通过免费排序/过滤来显示数据。不过,我还是不推荐它。一个连续的子表单,具有定制
    OrderBy
    FilterOn
    表达式所需的逻辑,使您能够更好地控制。