将数据类型从Float更改为?

时间:2009-06-22 17:59:06

标签: ms-access

我有一个数据类型为float的对象,我需要将数据类型更改为允许将字符添加到数字但我不想使用错误数据类型的内容。对象是一个简单的数字,如26273,我想添加一个像26273B2的字符。使用哪种数据类型不会导致以前的数据出现问题?

5 个答案:

答案 0 :(得分:2)

您需要使用文本类型。这将允许数字和字符。

答案 1 :(得分:2)

我猜那个字段不用来做计算所以TEXT对你有好处。

以下是useful table MS Access字段类型。

答案 2 :(得分:1)

如果您希望使用比文本更小的字段,则可能是nvarchar,并修复长度。 varchar如果您不想使用国际字符集。 nvarchar,我相信在大多数数据库中索引比文本字段更有效

答案 3 :(得分:1)

使用NVARCHAR列(a.k.a.文本),但如果您只想允许数字和一个或零个字母,则需要添加CHECK约束或列级验证规则。假设您当前只允许介于1和9999999之间的正整数值(七位数),您的新表结构可能如下所示(ANSI-92 Query Mode中的Access数据库引擎语法):

CREATE TABLE AccountNumbers (
account_nbr VARCHAR(8) NOT NULL UNIQUE, 
CHECK (
          RIGHT('0000000' & account_nbr, 8) LIKE '[A-Z][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][A-Z][0-9][0-9][0-9][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][A-Z][0-9][0-9][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][0-9][A-Z][0-9][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][0-9][0-9][A-Z][0-9][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][A-Z][0-9]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][A-Z]'
       OR RIGHT('0000000' & account_nbr, 8) LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
      )
);

答案 4 :(得分:0)

您可能希望为suffic添加一个单独的字段,并在各种只读表单和报告中连接这两个字段。

一个原因是数据排序。当您在文本字段中输入数字时,会发生以下非直观排序:

26273B2
262893C4
26295A2
262966Q3
26297M3

现在会发生。而使用数字字段和文本字段将是

26273 B2
 26295 A2
 26297 M3
262893 C4
262966 Q3

好吧,我试图在上面列表的前三个数字前面插入一个空格,但我不知道如何用这个HTML编辑器强制它。