【问题标题】:Type casting in VBA using SQL in MS Access?在 MS Access 中使用 SQL 在 VBA 中进行类型转换?
【发布时间】:2012-01-23 14:38:11
【问题描述】:

我需要使用类似于 SQL Server 中的 CAST 函数的东西将 NON-Unicode 表的所有记录转换为 Unicode 表,如下所示:

Cast ([Transaction_No] as [nvarchar](14))


但是现在我使用的是 MS Access,所以我可以在 VBA 代码中进行类型转换吗?
或者是否有其他解决方法可以为我解决这个问题?

在我的表 t_Transaction 我有这个字段: TRANSACTION_NO,定义为

DateType=Text, FieldSize=50    

以及我想要的:

DateType=Number, FieldSize=Integer

【问题讨论】:

  • 你能发布一个代码示例来演示你想要做什么吗?
  • 好的,尝试这样做。我的表 t_Transaction 中的所有字段都定义为 DateType=Text,FieldSize=50,我想将它们转换为其他字段类型,fx Integers,Date 等。
  • 请发布示例数据和预期结果,包括数据类型,谢谢。

标签: sql ms-access vba casting type-conversion


【解决方案1】:

在 Access 中,所有内容都被视为 Unicode。您不必进行任何从非 Unicode 到 Unicode 的转换。

【讨论】:

    【解决方案2】:

    假设字符串值都是可以使用的有效整数:

    CInt(YourStringValue)
    

    沿着这些方向还有各种其他转换函数(CBool​​()、CStr() 等)。

    您甚至可以完全避免这种情况,因为您应该能够在 VBA 中隐式转换它们:

    YourIntegerVariable = YourStringValue
    

    【讨论】:

    • 所有值都是非 Unicode 格式,因为它们是从 csv 文件导入的。所以好像我不能让 CInt(YourStringValue) 工作。
    • 你得到什么错误? ASCII 应该可以正常工作。再次,请发布您的代码。
    • 是的,告诉我们你在做什么。您是否正在执行导入、是否正在执行查询、是否使用 VBA 进行操作、是否将 CSV 链接为表格或其他什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 2013-12-06
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多