【问题标题】:Generating a customer ID in a form在表单中生成客户 ID
【发布时间】:2013-11-25 20:16:03
【问题描述】:

我有一个客户表“tblCustomer”,其中包含一个名为 CustID 的主键列。 CustID 将客户作为他们自己的 ID 号。

现在,我正在创建一个允许人们添加新客户的表单。为此,我需要生成一个新的 CustID。我的 CustID 从“10000”开始,每次增加 1。请务必注意,此字段是文本字段,而不是数字字段。

必须有ID,否则无法创建记录,因为主键字段是必填字段,并且还与数据库中的其他关系绑定。

因此,我在表单上的 ID 字段旁边创建了一个按钮,它将在文本框中生成一个 ID。它需要从 custID 的最高键值开始,并将其递增 1。问题是它是一个文本字段,无法更改。

我个人不确定如何做到这一点。我已经解决了很多方法,但都把我带回到同一个地方 - 我不知道如何使用 custID 作为文本值而不是数值来做到这一点。我一直在考虑在计算发生时进行某种转换,但我根本不知道该怎么做。

我是 Access 的新手,因此我们将不胜感激!

【问题讨论】:

  • 您是否致力于将CustID 保留为文本类型?如果您将其更改为自动编号并让 Access 自动提供新值,这将很简单。
  • 如果您想跟踪自己的主键,最好的方法是创建一个键表。每次,提取键并更新值 (+1)。至于转换,CInt 和 CStr 会做得很好。

标签: forms ms-access


【解决方案1】:

假设所有 CustID 都是数字,您可以执行以下操作来获取新 ID:

Dim strMax As String
Dim intMax As Integer

strMax = DMax("CustID", "<your table name>")
intMax = CInt(strMax) + 1

strMax 将保存当前的最大 id,intMax 将保存新的 ID。如果 strMax 包含非数字值,但此代码将失败 - 您需要一个错误处理程序来解决它。

只需将其放入按钮点击事件中即可。

希望这会有所帮助!

西蒙

【讨论】:

    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多