将CSV文件导入MS Access 2010表

时间:2013-08-23 03:07:00

标签: vba ms-access access-vba ms-access-2010

我是VBA编码的新手,我正在寻找创建导入UI的ms访问权限,以便用户导入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

2 个答案:

答案 0 :(得分:1)

看一下这篇文章Working with external text files in MS Access,它应该对你有帮助。

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

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

答案 1 :(得分:0)

尝试

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

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

您可能想要设置

DoCmd.SetWarnings False

首先,避免用户看到记录提交提示。但是之后它应该回到True。

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