目前,我正在创建一个数据库,并在表中遇到了麻烦。
我有一个tblCustomer
,其中包括一个CustomerID
,它是autonumber
的格式,Customer-001
,但是我有一个tblOrder
用于客户订购,两者之间存在一对多的关系。
我有一个orderID
字段,其中的autonumber
格式为Order-001
。问题出在表中的customerID
上,它的数据类型是number
,但是我使用了查找以便从CustomerID
中获取tblCustomer
以便添加到表Order
中。由于格式为Customer-001
,其中包含字母,因此,由于数据类型而导致错误。
最佳答案
如果您希望客户编号看起来像这样的“ Customer-001”,您仍然可以在数据库中使用数字字段,并仅格式化该编号以进行显示。
在“立即访问”窗口中(使用Ctrl-G打开):
?Format$(1, """Customer-""000")
产生输出
顾客001
在访问文本框的
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):
这是在输入某些内容之前在Access 2002中的外观:
输入
CustomerID
时:在日期字段中输入
CustomerID
后:关于mysql - Microsoft Access Number字段中的字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47819217/