带有字母的Microsoft Access Number字段

时间:2017-12-14 17:40:03

标签: mysql ms-access

目前,我正在创建一个数据库并遇到了我的桌面问题。

我有一个tblCustomer,其中包含一个CustomerID autonumber,其格式为Customer-001,但我有一个tblOrder用于客户订购和这之间有一对多的关系 我有orderID字段,其autonumber格式为Order-001。问题在于此表中的customerID,其数据类型为number,但我使用了查找以从CustomerID获取tblCustomer以便添加到OrderCustomer-001。由于格式为index(),因此存在字母,因此,由于数据类型而出现错误。

1 个答案:

答案 0 :(得分:1)

如果您希望客户编号看起来像这样" Customer-001",您仍然可以在数据库中使用数字字段,只需格式化这样的数字即可显示。

在Access Immediate窗口中(使用Ctrl-G打开):

?Format$(1, """Customer-""000")

产生输出

  

客户-001

在Access TextBox的Format字段中填写"Customer-"000

永远不要将Customer-001存储在数据库中,也不要使用Customer-001进行加入或查询。在Access中,自动编号列的类型为Number / Long Integer

如果您需要Customer-001,则可以查询

SELECT * FROM tblCustomer WHERE CustomerID = 1

并且

Dim id as Long
id = DLookup("CustomerID", "tblCustomer", "CustomerName='Miller'")

1产生Long(或其他id值),无论该列的Format属性如何设置。

即。格式(与列类型不同)在where子句的连接操作中无关紧要。

您可以将客户插入订单表中,如下所示

INSERT INTO tblOrder (CustomerID, othercolumns)
VALUES (1, othervalues)

不是VALUES ('1', othervalues)VALUES ('Customer-001', othervalues)

我做了一个测试。我的表看起来像这样(Access 2002):
enter image description here

这是它在输入内容之前在我的Access 2002中的样子:
enter image description here

输入CustomerID时:
enter image description here

在日期字段中输入CustomerID后:
enter image description here