【问题标题】:Customized Auto-Number IDs for tables?表的自定义自动编号 ID?
【发布时间】:2009-12-14 11:48:17
【问题描述】:

有没有办法在表格中使用我自己的号码,比如自动号码;即自动将下一个可用的记录分配给新记录。对于我想绑定到这个数据库的每个员工,我们都有系统 ID 号。我只想让表格自动分配下一个数字。

我可以这样做吗?
这可以通过混合数字和字母来完成吗?
是否可以使用标准,例如代码 A = 某组数字,代码 B = 另一个?

【问题讨论】:

    标签: ms-access vba ms-access-2003


    【解决方案1】:

    当然可以,但您必须自己设计。

    有数百种方法可以做到这一点,但一种方法可能是您可能有一个带有“nextQuote”、“nextEmployeeNo”、“nextJob”的参数表......当然,您的表设计可以有任何东西,包括前缀示例;

    PARAMETERS
    Prefix    Number
    Q          1145
    E            54
    J           999
    

    所以现在你可以SELECT PreFix + MAX(Number) AS NextEmployee FROM Parameters WHERE Prefix = E

    在您的代码中,您可以在处理后增加数字。

    UPDATE Parameters SET Number = number + 1 WHERE Prefix = E 
    

    如果这不能胜任这份工作,那么希望它能让你思考如何做类似的事情。

    希望这会有所帮助。

    【讨论】:

    • 是的,我认为这会让我朝着正确的方向前进。谢谢!
    【解决方案2】:

    【讨论】:

    • 不幸的是,您引用的文章使用了 ADO 和 JRO,这两种技术在使用 Jet/ACE 数据存储时确实不需要。这篇文章展示了如何在 DAO 中做同样的事情:support.microsoft.com/kb/191253/EN-US——它不需要任何额外的引用或后期绑定,并且 100% 等同于 ADO/JRO 版本(即,它与 Jet 做同样的事情数据库引擎)。
    • 我将停止编辑并保留我的评论,因为要重新编辑它以使其措辞恰当,我会删除您帖子的全部内容并用我的替换它,因为ADO 版本在 Access 上下文中几乎无关紧要。
    • 首先,问题中没有任何内容表明上下文不是 Access 数据库引擎。其次,“人们真正不需要的技术”和“ADO 版本几乎无关紧要”只是争论:ADO 与 DAO 之类的。你真的想再次经历这一切吗?
    • 如果您在 Access 中编程,DAO 是合适的数据接口。这在 A2007 中和在所有以前版本的 Access 中一样正确。 ADO 有一些 DAO 不能做的事情,可以与后期绑定和/或使用 CurrentConnection 对象一起使用。但是 DAO 是适合在 Access 中编程的数据接口库,其中与 ADO 有重叠(大约 99%)。
    • 同样,问题中没有任何内容表明上下文不是 Access 数据库引擎。其次,您对“适当”一词的使用是主观的,即偏向于您自己的个人喜好。我从 Microsoft 和 Access 团队看到的所有建议要么支持 ADO 而不是 DAO,要么同样支持它们。第三,重叠率远低于 99%(对于 ADO,认为 Jet 4.0 功能集加上制造/分层/断开的异步获取、批量更新、另存为 XML 记录集等)。可能是 80% 的用户使用的 99% 的功能。
    猜你喜欢
    • 2015-12-22
    • 2019-10-10
    • 1970-01-01
    • 2016-06-05
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多