sql - VBA 代码 - 将文本文件导入 Access 表 - 有条件

标签 sql ms-access vba

我需要将文本文件导入到 Access 表中,但在 TXT 文件中使用导入条件。

下面是我的 VBA 代码。它仅在您不使用 WHERE 子句时起作用,因为它要求输入参数。我认为问题在于缺少字段格式规范。

您建议进行哪些调整?如有任何建议,我们将不胜感激。

文本文件 - Teste.txt

1;24;433;43;5
2;436;424;43;24
3;5454;656;656;555
4;545;545;0;0
5;65465;756;0;0

我的代码 VBA Access :

Sub MyTableImport()

    Dim sqlStr As String

    sqlStr = "SELECT * INTO NewTable "
    sqlStr = sqlStr & " FROM [Text;HDR=Yes;FMT=Delimited;Database=C:\Temp].Teste.txt "
    sqlStr = sqlStr & " WHERE field4 <> '0' AND field5 <> '0';"

    DoCmd.SetWarnings False
    DoCmd.RunSQL sqlStr
    DoCmd.SetWarnings True

End Sub

最佳答案

我使用了 Schema.ini 方法,as Fionnuala suggested ,类似于您在问题的早期版本之一中所拥有的内容。

使用您的 Teste.txt 源文件和下面的 Schema.ini 和查询,这就是 NewTable 的结果。所有五个字段都是文本数据类型:

enter image description here

这是C:\Temp\Schema.ini:

[Teste.txt]
ColNameHeader=False
Format=Delimited(;)
Col1="field1" Text
Col2="field2" Text
Col3="field3" Text
Col4="field4" Text
Col5="field5" Text

这是创建 NewTable 的查询:

SELECT t.field1, t.field2, t.field3, t.field4, t.field5
INTO NewTable
FROM [Text;HDR=No;FMT=Delimited;Database=C:\Temp].[Teste.txt] AS t
WHERE (((t.field4)<>'0') AND ((t.field5)<>'0'));

关于sql - VBA 代码 - 将文本文件导入 Access 表 - 有条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32390960/

相关文章:

java - MS Access "invalid record set status"错误

sql-server - 将 Access 查询中的 Bool 插入 SQL Server 数据库

Excel VBA : Wait for JavaScript execution in Internet Explorer

excel - 当鼠标移入文本框或组合框时使单位可见

java - "=?"在 SQL 查询中使用时代表什么

MySQL - 结合选择和更新?

mysql - 如果两个应用程序都具有多数据库架构,如何将不同应用程序的数据存储在同一个本地MySQL实例中?

sql - 合并 XML 中的节点 (Oracle)

ms-access - 在MS Access中打开另一个窗体时关闭当前窗体

VBA Excel - 将大小写更改为正确大小写