0

我是 VBA 编码的新手,我正在考虑在 ms 访问中创建一个 Import UI,以便用户导入 CSV 文件并插入到一个新的临时表中,从临时表中会有 SQL 查询将数据拆分到不同的表中,最后删除临时表。

根据代码,我创建了导入按钮并对文件选择器进行了编码。但是,我不知道如何对其进行编码以将其导入新的临时表并执行 SQL 查询。

感谢所有帮助

Sub ImportButton_Click()

Dim strfilename As String

With Application.FileDialog(msoFileDialogFilePicker)

    .Title = "Select the CSV file to import"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "CSV Files", "*.csv", 1
    .Filters.Add "All Files", "*.*", 2
    If .Show = -1 Then
        strfilename = .SelectedItems(1)
        DoCmd.TransferText TransferType:=acImportDelim, _
            TableName:="Import_Table", FileName:=strfilename
        Else
        Exit Sub
    End If
End With

End Sub
4

2 回答 2

1

看看这篇文章在 MS Access 中使用外部文本文件,它应该对你有所帮助。

基本上,您可以为文本文件创建一些模式,然后使用 SQL 对其进行查询,就好像它是数据库中的表一样。

从那里,您可以使用 VBA 中的记录集或查询轻松浏览数据,INSERT以创建或填充您的其他表。

于 2014-12-01T03:17:57.280 回答
0

尝试

docmd.RunSQL("SELECT * INTO myTable FROM Import_Table WHERE [conditions]")

将 [conditions] 替换为您的条件,将 myTable 替换为您要创建的表的名称。

您可能想要设置

DoCmd.SetWarnings False

首先,避免用户看到记录提交提示。但之后应将其设置回 True 。

或者,如果您更愿意使用查询设计器,则可以只创建一些 Access“生成表”查询(在功能区的“设计”选项卡上更改查询类型)。

于 2013-08-23T11:10:26.877 回答