在 Access 中关闭自动数据类型识别

Switch off auto data type identification in Access

如果之前有人提出过这个问题,但我在任何地方都找不到答案,请提前致歉。

有谁知道是否有办法关闭或理想地将自动数据类型识别设置为“短文本”?我相信 MS Access 查看前 24 行并应用 table 的数据类型。在我的例子中,第一列数据的前 24(实际上是 1000s)可能是一个数字,但我需要是短文本,因为有些数字是字母数字。

所以我首先将 .CSV 文件导入(链接)到临时 table,然后通过 ODBC 连接将数据传递到另一个 table。那么有没有办法确保在 temp table 中“tblrsSLPARENTTEMP”数据类型将始终设置为“短文本”?

Set db = CurrentDb
On Error Resume Next: db.TableDefs.Delete "tblrsSLPARENTTEMP": On Error GoTo 0
db.TableDefs.Refresh
DoCmd.TransferText TransferType:=acLinkDelim, TableName:="tblrsSLPARENTTEMP", _
FileName:=strPathFile, HasFieldNames:=True
db.TableDefs.Refresh

注:

  1. .CSV 文件中的列可能会更改位置,因此前一天 A 列中的数据可能在第二天位于 B 列中。
  2. 我需要知道列名,所以 HasFieldNames:=False 不是一个选项

导入数据访问后,可以通过名称更改字段类型

 CurrentDb.Execute "ALTER TABLE YourTableName ALTER COLUMN YourColumnName VARCHAR(255);" ,dbFailOnError

将您的Table姓名更改为您的Table姓名等。

为您需要更改的每个字段执行此行。

不确定这是否对任何人有用,但在 Access 中找不到解决方案,所以我所做的工作是:

  1. 在 Excel 中创建了一个 VBA 以在 CSV 文件中插入 50 行字母数字文本并保存
  2. 导入 Access 数据库。

已创建具有短文本数据类型的链接数据库。不是最干净的解决方案,但它有效:)