gpt4 book ai didi

ms-access - 自动将文本转换为十进制数 - Access

转载 作者:行者123 更新时间:2023-12-04 04:51:17 35 4
gpt4 key购买 nike

我正在尝试使用 ODBC 将数据从 MS SQL Server DB 导入 MS Access。
对于大多数数据类型,导入正确映射类型,但当 SQL Server 列数据类型为十进制数时,MS Access 将其转换为文本数据类型。
所以我试图找到一个合适的解决方法,自动将此文本转换为十进制数。

例如:
一个价格是“3978.76821”,数据类型设置为文本,因此我无法在现场进行简单的计算。

Screenshot showing data in both SQL server and MS Access

最佳答案

Access 正在转换 decimal(31,7)列到 Text(31)因为 Access 的最大精度 Decimal列是 28。我通过导入以下 SQL Server 表确认了这一点:

CREATE TABLE [dbo].[importTest](
[seq] [int] NULL,
[textCol] [nvarchar](50) NULL,
[decimalCol] [decimal](31, 7) NULL
) ON [PRIMARY]

解决方法 1:

在 SQL Server 上创建一个 View 以“缩小”有问题的列......
CREATE VIEW dbo.importTestForAccess AS
SELECT seq, textCol,
CONVERT(decimal(28,7), decimalCol) AS decimalCol
FROM dbo.importTest

...然后导入 View 而不是表。

解决方法 2:

像以前一样导入表格,然后通过VBA在Access中将列从Text转换为Decimal
CurrentProject.Connection.Execute _
"ALTER TABLE dbo_importTest " & _
"ALTER COLUMN decimalCol DECIMAL(28,7)"

关于ms-access - 自动将文本转换为十进制数 - Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399118/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com