目前,我正在创建一个数据库,并在表中遇到了麻烦。

我有一个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):
mysql - Microsoft Access Number字段中的字母-LMLPHP

这是在输入某些内容之前在Access 2002中的外观:
mysql - Microsoft Access Number字段中的字母-LMLPHP

输入CustomerID时:
mysql - Microsoft Access Number字段中的字母-LMLPHP

在日期字段中输入CustomerID后:
mysql - Microsoft Access Number字段中的字母-LMLPHP

关于mysql - Microsoft Access Number字段中的字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47819217/

10-14 13:36