MS Access 通过文本框而不是下拉列表搜索记录

2023-11-26

我对 MS Access 还很陌生。我正在尝试创建一个简单的表单,基本上将使用文本框而不是下拉框搜索特定记录。本质上,用户将能够输入 ID 号并检索一些其他相关信息。但是,我不希望用户能够向数据库添加任何新记录。我已经能够让表单看起来像我想要的那样,但我不确定在哪里放置代码(我是否创建一个宏,将代码插入按钮的属性中?)任何帮助都很大赞赏!


我假设您已将表单绑定到表或查询,并且希望能够在文本框中手动输入 ID,然后按 ENTER 并加载该记录的数据,或者在没有此类记录时显示错误消息。

As dsteele说,确保表单的 Data 属性允许添加被设定为No禁止用户添加记录。

然后,从AfterUpdate文本框的事件,添加以下代码(假设您的文本框名为txtGoTo):

Private Sub txtGoTo_AfterUpdate()
    If (txtGoTo & vbNullString) = vbNullString Then Exit Sub
    Dim rs As DAO.RecordSet
    Set rs = Me.RecordsetClone
    rs.FindFirst "[ID]=" & txtGoTo
    If rs.NoMatch Then
        MsgBox "Sorry, no such record '" & txtGoTo & "' was found.", _
               vbOKOnly + vbInformation
    Else
        Me.RecordSet.Bookmark = rs.Bookmark
    End If
    rs.Close
    txtGoTo = Null
End Sub

请注意,您必须更改线路rs.FindFirst "[ID]=" & txtGoTo适合您的数据的东西:

  • "[ID]="应替换为您要搜索的字段(可以是"[POReference]="或者是其他东西。

  • 如果您通过数字 ID 进行搜索,例如因为该字段是自动编号列,那么该代码就可以了。
    否则,如果您正在搜索的字段是一个字符串(例如PN12-G)那么你必须将代码更改为:

    rs.FindFirst "[ID]=""" & txtGoTo & """"
    

未能使用正确的引用(或不必要的引用)将导致此类错误数据类型不匹配....

作为新用户,我建议您查看示例北风项目数据库可以随旧版本的 Access 一起提供,也可以作为模板从 Access 2007 下载。
作为新的 Access 开发人员,有很多技术可供学习,包括实现记录导航的其他方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MS Access 通过文本框而不是下拉列表搜索记录 的相关文章

  • Vba访问错误91

    我尝试运行这段代码 Public Sub Production UpdateStatus ByVal lngProductionId As Long ByVal NewProductionStatus As eProductionStatu
  • SQL SERVER 中是否有与 MS Access 的 VAL() 函数等效的函数?

    我在直接在 sql server 中运行代码 Access Query 时遇到问题 其中包含VAL CoLUMN NAME 经过大量谷歌搜索后 我发现了一个CAST COLUMN AS DATATYPE 取代VAL 但是当该列是文本类型并且
  • VBA 中的查找和查找下一个

    我正在研究 Excel 宏 当我从另一个 Excel 工作表获取数据时 我需要什么 代码应该首先检查是否有任何其他行具有相同的 FundName 如果找到 则条件适用 我只是给出要检查 FundId 的 Excel 工作表示例 S No F
  • 如何使用循环自动填充表单上的文本框?

    所以我有一个表 其中包含我试图在表单上显示的总计列表 我需要从总计表中获取 10 个总计并显示在表单上的 10 个文本框中 这10个文本框分别是 A1 A2 A3 及其使用DLookup查找 ID 字段编号 这似乎是一个语法问题Me TEX
  • MS Access 2003 - 有没有一种方法可以以编程方式定义图表的数据?

    因此 我有一些 VBA 用于获取使用表单的图表向导构建的图表 并自动将其插入到 PowerPoint 演示文稿幻灯片中 我将这些图表表单用作较大表单中的子表单 该表单具有用户可以选择的参数来确定图表上的内容 这个想法是 用户可以确定参数 根
  • Access 中的 VBA:DoCmd.RunCommand acCmdSaveRecord 如何工作?

    I use DoCmd RunCommand acCmdSaveRecord 保存 但我不确定这实际上是如何工作的 它会保存所有未保存的更改吗 或者无论是否更改它都会保存所有内容吗 还是只保存当前表单 其他形式的相关未保存更改又如何呢 或者
  • 消除启动时的安全警告

    打开任何 MS Access 数据库时 都会出现安全警告 指出该文件可能对计算机有害 但是 有没有办法删除此消息 或者它应该仍然是一种必要的罪恶 您也许可以签署您的程序 我不确定 读本文 http www howto outlook com
  • 将 VBA 转换为 .NET 语言 [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以将 VBA 转换为 C https stackoverflow com questions 388819 is it possible to convert vba to c 假设我有一个大型
  • 使用 vb.net 在 MS Access 中插入和更新值

    我已经检查了该网站上的大部分论坛 但没有得到我的解决方案 我的问题是将数据从 vb net 插入到 MS Access 但我无法做到 它没有显示任何错误 但也没有在我的表中插入值 我正在使用非常简单的代码 Imports System Da
  • 使用 powershell 在 MS-Access 中创建查询

    我需要自动从 Microsoft Access DB 中提取一些数据 数据库是由第三方提供给我的 因此我无法控制收到数据库时的内容 我需要使用 Powershell 自动从数据库中提取数据 有没有办法使用powershell在accessD
  • MS Access 不支持连接表达式吗?

    谁能向我解释我的查询有什么问题吗 SELECT T2 TIPOPRODUTO T2 PRODUTO T1 ESPESSURA AS LARGURA AS COMPRIMENTO AS ACABAM REVEST AS ESPECIF QUA
  • 查询不可更新

    我正在尝试使用 BE SQL Server 2012 Express 中的记录更新本地 Access 2007 表 我的步骤在这里 SQL Server中存在带有4个参数的存储过程来获取所需的记录 Access VBA中有调用SP并进行临时
  • 访问:根据记录中的最新日期进行分组(嵌套查询)

    下表中的此查询 SELECT ID Value As of FROM Table a INNER JOIN SELECT ID MAX As of AS As of FROM Table GROUP BY ID b ON a ID b ID
  • VB SQL 语句未选择正确的行

    我试图使用 SELECT 语句在我的数据库中 选择 一个人 但它没有选择正确的人 我也不确定为什么 我正在使用访问数据库 数据库连接代码 Imports System Data OleDb Module Database Connectio
  • MS Access 中的舍入

    VBA Access 中舍入的最佳方法是什么 我目前的方法是利用Excel方法 Excel WorksheetFunction Round 但我正在寻找一种不依赖Excel的方法 请注意 VBA Round 函数使用 Banker 舍入 将
  • 在 Access 数据库中对列包含数字和字母的数据进行排序

    请帮助我 因为我一直无法做到这一点 选择此列 columnA 的访问 SQL 是什么 以便它返回一个结果集 其中的不同值首先根据数字排序 然后根据字母排序 这是列值 10A 9C 12D 11G 9B 10C 9R 8T 我尝试过 从 tb
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • 与 OLE 服务器或 ActiveX 控件通信

    MS Access 2010 Win 7 常规形式我没有故意放置任何 ActiveX 或 OLE 东西 甚至不确定它们是什么 但无论如何 每当我在特定形式的代码中放入某些内容时 它都会说 您作为事件属性设置输入的表达式 XXXXX 产生了以
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol

随机推荐