使用 SQL 后端时维护表单中的自动编号功能

2024-02-19

目前,我正在尝试将数据库从 Access 后端迁移到 SQL 后端,同时仍保留 Access 表单作为前端。这是通过带有 ODBC 连接到我的后端的链接表来完成的。该表单旨在向表中添加新记录。问题出在自动编号上。 ID 设置为自动编号,并且在等待用户添加剩余列时,表单将简单地显示(新建)。我已经使用 IDENTITY 属性设置了 SQL 数据,因此一旦创建新记录,它就会递增。但是,我无法让表单以与以前相同的方式运行,因为即使后端会自动添加下一个连续 ID,我也无法在用户实际保存表单数据之前自动将该数据填充到表单中。有没有办法维护自动编号提供的表单功能?

TL;DR:自动编号更改为数字后,表单无法正常工作。


嗯,在“罕见”的情况下,您在保存记录之前实际上需要自动编号器。例如,如果您有一个子表单,则 Access 始终会自动保存主记录,因此自动编号将会被创建。因此主表单和子表单(子表)将正常工作,并且无需代码即可完成此操作。

现在,在某些情况下您需要自动编号。假设您有一些“代码”需要运行并吐出一些子记录。

一般方法是简单地在该时间点执行记录保存。

那么,假设有一个按钮,或者您需要在表单中运行一些代码,并且您需要 PK 自动编号?

您可以使用此代码:

If isnull(me!ID) = true then
   me.dirty = false  ' force record save - autonumber now created
end if

上述工作的记录必须是“脏”的,但在几乎所有情况下,情况往往都是如此。 “罕见”的例外情况建议您可以检查 me.IsNewRecord,但在大多数情况下,上述代码就足够了。

我真的无法想象当用户开始输入数据时某些自动编号的“显示”是如此重要。

但是,如果您希望在任何按键(表单上的数据输入)后显示自动编号?

只需将这行代码放在 after insert 事件中:

me.dirty = false

因此,现在在查看表单时,用户在任何文本框中按下第一个键将强制生成并显示自动编号。然而,将自动编号 ID 的任何含义分配给最终用户是非常糟糕的做法。事实上,在大多数情况下,该 ID 应该被隐藏。

当然,上述唯一的问题或缺点是,如果您有任何必需的列,则上述内容可能会出错或出现问题。

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

使用 SQL 后端时维护表单中的自动编号功能 的相关文章

  • 如何隐藏组合框下拉列表中的列?

    我正在 Excel 用户窗体中构建一个 ComboBox 该用户窗体从 Access 表中获取其行 我想在下拉列表中向用户显示多个文本字段 但从 ComboBox 返回的值应该是与用户选择的行关联的 ID 号 即 ID 列是绑定列 但我不想
  • 使用 VBA 将 Excel 工作表导入 Access

    我正在尝试使用一些简单的 VBA 代码将 Excel 电子表格导入到 Access 中 我遇到的问题是 Excel 文件中有 2 个工作表 我需要导入第二个工作表 是否可以在VBA代码中指定所需的工作表 Private Sub Comman
  • 从 CSV 中去除额外的文本限定符

    我有一个 CSV 其中某些字段由 符号分隔作为文本限定符 参见下面的例子 请注意 每个整数 例如 1 2 3 等 都应该是一个字符串 合格的字符串被 符号包围 1 2 3 qualifiedString1 4 5 6 7 8 9 10 11
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • 为开发人员记录访问应用程序[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要记录一个完全由高级用户创建 开发和维护超过 10 年的 MS Access 应用程序 这是一个有趣的情况 因为他们想要的是一本手册 以便未
  • Access 2007 触发器和过程等效项?

    好的 有人有一些关于 Access 2007 功能 有关触发器或存储过程 的好资源吗 它甚至可以做它们或类似的事情吗 我在 Microsoft 帮助中找到的所有资源都引用了 Access 2003 以及许多在线帮助手册 2007 年一切都发
  • c#.net MS Access 数据库,未安装 Access [重复]

    这个问题在这里已经有答案了 是否可以 我尝试过谷歌 但我一定是搜索了错误的关键词并且没有得到答案 我有一个仅由 2 3 人使用的小型应用程序 我想将其数据存储在数据库中 我无法安装任何 SQL 服务器 因此我认为访问将是最好的选择 将使用它
  • 获取给定日期的周数

    例子 DD MM YYYY 1 1 2009 should give 1 31 1 2009 should give 5 1 2 2009 should also give 5 Format 1 2 2009 ww 回报6 那么 怎样才能得
  • 在没有 ODBC 的情况下从 Java 操作 Access 数据库

    我想从我的 Java 项目操作 Microsoft Access 数据库 accdb 或 mdb 文件 我不想使用 Microsoft 的 JDBC ODBC Bridge 和 Access ODBC 驱动程序 因为 JDBC ODBC 桥
  • 滞后分区相当于 MS Access

    我正在寻找 MS Access 中以下 Oracle 查询的等效项 我知道 Lag Over Partition by 功能在 MS Access 中不可用 但希望使用 MS Access 实现以下查询的相同功能 感谢任何输入 select
  • 使用 access VBA 将列表框项目添加到数组

    我在访问表单中有一个列表框 它包含 18 项 我如何使用 access vba 将这些项目存储到数组中 下面将把列表框的内容拉入数组并吐出内容 Dim Size As Integer Size Me List0 ListCount 1 Re
  • VBA 中 .NET 的 System.Convert 的替代方案

    我正在 Microsoft Access 中编写一个 VBA 函数 以使用 RSA 密钥加密 解密文本数据 目前正在进行以下工作 CreateObject System Security Cryptography RSACryptoServ
  • 使用 MS Access 在 Excel VBA 中运行代码

    我使用访问前端从 SQL Server 中提取查询 然后 我将记录集导出到新的 Excel 工作簿 然后我想使用 Excel 运行 Access 中的代码 它只是循环遍历单元格并添加格式并检查特定值 我可以从访问权限运行它 它将让工作簿打开
  • 如何通过ODBC检索Oracle数据库函数的结果?

    我在通过 ODBC 调用 Oracle 存储函数 而不是过程 时遇到问题 我的函数非常简单 它只是连接两个字符串 我可以通过以下方式调用它 rs c execute SELECT add str yogi bubu FROM dual fo
  • 不使用 DAO 压缩 Microsoft Access 数据库

    我用CDatabase类开一个ACCDB访问数据库 司机是 T Microsoft Access Driver mdb accdb 我可以打开并使用数据库 已经这样做很多年了 if DatabaseExist m strMDBPath AJ
  • sql查询将两列与一列连接起来

    我在 MS Access 2010 中有 2 个表 如下所示 USERS u id u name LOAN l id l from ref users u id l to ref users u id l amount Users u id
  • MS Access (Jet) 事务、工作区

    我在提交事务 使用 Access 2003 DAO 时遇到问题 它的表现就好像我从未调用过 BeginTrans 我在 CommitTrans 上收到错误 3034 您尝试在未先开始事务的情况下提交或回滚事务 并且更改将写入数据库 大概是因
  • 具有日期变量的 SSIS For 循环容器

    我想创建一个每月包 在 ODBC 上执行每日查询并写入输出文件 更具体地说 必须首先在上个月的第一天执行查询 e g 01 11 2018 然后下一个 02 11 2018 直到上个月的最后一天 30 11 2018 日期变量当前保存为字符
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate

随机推荐

  • 如何在 JSON 对象中添加 URL 字符串

    我需要添加通常采用 http somewebsite com somepage asp 格式的 URL 当我使用上面的 URL 创建一个字符串并将其添加到 JSON 对象 json 时 using json put url urlstrin
  • JPanel 不会完全伸展以占据可用空间

    我有一个面板 我在其中并排放置了几个具有不同尺寸和颜色的迷你面板 它们应该占据整个父面板 水平 为此 我使用 BorderLayout 用于父面板 并使用 BoxLayout 作为放置所有迷你面板的子面板 请参见下面的代码 它在调整大小和其
  • 阻止 chrome 在拖动链接时将光标更改为地球仪

    我有一个标准链接 例如 a href test Test a 在 Chrome 中 单击并拖动此链接将导致光标变为拖动地球仪的箭头 地球仪可以放在 URL 或书签栏上 我正在尝试用 JavaScript 实现拖放文件系统界面 所有文件和文件
  • 何时使用 $sanitize 和 $sce ?他们之间有什么区别?

    我试图了解属性之间的区别 请帮忙举出实际例子 何时使用它们 在这个论坛里找不到这样的问题 请帮帮我 sce是实际选择字符串是否可以安全使用以及是否应该对其进行清理的服务 如果是 HTML 则运行 sanitize如果有的话 你可能永远不需要
  • Perl 子例程参数

    我最近一直在阅读有关 Perl 的内容 并且对 Perl 如何处理传递给子例程的参数感到有点困惑 在 Python Java 或 PHP 等语言中 函数定义采用以下形式 伪代码 function myFunc arg1 arg2 Do so
  • 使用 Python 创建新的 Access 数据库和表

    我正在尝试用 Python 创建一个 Access 数据库并向其中添加两个新表 我正在使用 win32com 并已成功创建数据库 但无法创建表 我得到的只是无益的 Windows 错误 谁能帮我 下面的代码工作正常 dbname r C U
  • 如何在运行时获取过程或函数名称?

    有没有any返回函数或过程名称的方法在运行时 我目前正在错误处理这样的事情 Sub foo Const proc name as string foo On Error GoTo ErrHandler do stuff ExitSub Ex
  • WordPress 计数小部件

    您好 我想弄清楚如何获得在给定侧边栏位置发布的小部件的数量 例如 我有一个名为 UTILITY 的侧边栏 它是一个水平侧边栏 我希望这些小部件位置的宽度根据其中发布的小部件的数量进行均匀调整 我想知道在给定页面上此侧边栏中发布了多少个小部件
  • 别名使 emacs 在新缓冲区(不是框架)中打开文件并被激活/来到前面?

    到目前为止我所拥有的是 alias em open a Applications Emacs app osascript e tell application Emacs app to activate 但我很困惑 使用该代码 em fil
  • 在 Jar 中查找实现接口的类

    我想知道 jar 内的类是否实现了特定的接口 我已经实现了下面的代码 但它会迭代 jar 文件中的所有类 并在每个类上查找它是否实现了这个特定的接口 public static synchronized boolean findClasse
  • 表单action="/"是什么意思? [复制]

    这个问题在这里已经有答案了 表单的操作通常是指提交后运行的脚本 我看到一个代码form action 我无法找到它的去向 有人请给我解释一下 它转到基本目录的索引
  • NTLM授权WCF在ASP.NET Core中不起作用

    我遇到 NTLM 授权问题 我有一个在asp net上运行没有任何问题的服务 但现在我需要在asp net core上使用这个服务 但我无法通过授权 我这样配置绑定 var binding new BasicHttpBinding Basi
  • 使用 设置日期格式并将其显示在

    我想在 h outputText 中显示类似 2010 10 20 by Mary 的内容 日期值存储在 MBean 的名为 date1 的字段内 而用户名存储在 MBean 的名为 username 的字段内 我使用以下 EL 表达式和
  • C# 中 var 和 string 有什么区别? [复制]

    这个问题在这里已经有答案了 有什么区别var and string in C 关键词var用于隐式类型的声明 如果您使用变量的命名类型 那么除了可读性之外没有其他区别 并且对于哪种更好有不同的意见 例子 var s asdf 给出与以下完全
  • MCP23017 I2C 设备驱动程序探测函数未调用

    我正在使用以下 I2C GPIO设备驱动 https github com torvalds linux blob master drivers gpio gpio mcp23s08 c访问 MCP23017 GPIO 使用 insmod
  • 在 Sphinx 中的文件链接中使用版本号

    在 Sphinx 中 可以使用以下语法生成文件链接 name of file js
  • ImportError:动态模块未定义 init 函数 (initfizzbuzz)

    我尝试编译fizzbuzz c 以便通过 python 导入它 用于建筑fizzbuzz c I used python setup py build ext i 构建后 我尝试导入fizzbuzz c但出现了下面的错误 我怎么解决这个问题
  • Prolog 中的递归乘法

    序言新手 编辑 使用 swi prolog 我想递归地执行乘法方法在序言中已经执行的操作 而不实际使用乘法方法 我想要实现的算法看起来像 multn N1 N2 output if n2 lt 0 return output else mu
  • Ruby 和 Ruby on Rails 之间有什么区别?

    这几天我一直在研究 Ruby 我注意到有 Ruby on Rails 两者有什么区别 他们一起工作吗 语法一样吗 Ruby 是一种编程语言 Ruby on Rails RoR 是一个用 Ruby 实现的 Web 应用程序框架 因此 它们不仅
  • 使用 SQL 后端时维护表单中的自动编号功能

    目前 我正在尝试将数据库从 Access 后端迁移到 SQL 后端 同时仍保留 Access 表单作为前端 这是通过带有 ODBC 连接到我的后端的链接表来完成的 该表单旨在向表中添加新记录 问题出在自动编号上 ID 设置为自动编号 并且在