gpt4 book ai didi

sql - 使用 Excel VBA 将 CSV 转换为 MS Access 数据库中的表

转载 作者:行者123 更新时间:2023-12-04 20:17:48 25 4
gpt4 key购买 nike

我希望能够获取一个像 http://ichart.yahoo.com/table.csv?s=^GSPC 这样的 csv 文件,它位于工作簿文件夹中
并将其作为一个已存在的空白 MS Access 数据库中名为 GSPC 的表。空白数据库文件将位于同一文件夹中并命名为 tblImport.accdb。我查看了许多论坛主题,发现对于像我这样的菜鸟来说没有什么简单的。我很高兴能得到任何帮助。

最佳答案

将 CSV 导入 Access 的最简单方法是使用 DoCmd.TransferText从 Access 应用程序 session 中。

但是您想使用 Excel VBA。在这种情况下,如果您的 MS Office 安装包括 Access (MSACCESS.EXE),您可以使用 Excel VBA 自动执行 Access,并且仍然使用 DoCmd.TransferText便于 CSV 导入。

我在 Excel 2007 中测试了这个模块。它创建了 GSPC表并存储来自 table.csv 的数据在那张 table 上。如果表已经存在,TransferText将简单地附加 CSV 数据。你可以执行DELETE FROM GSPC运行前TransferText因此该表将仅包含最新的 CSV 数据。

考虑到你说你是菜鸟,这看起来有点吓人。但是,以下大部分内容是我添加的用于指导您的评论。该过程的实际“胆量”相当简短。

Option Explicit

Public Sub ImportCsvToAccess()
Const cstrCsvFile As String = "table.csv"
Const cstrDbFile As String = "tblImport.accdb"
Const cstrTable As String = "GSPC"
Dim strFolder As String

'* early binding *'
' requires reference to Microsoft Access <version> Object Library
'Dim objAccess As Access.Application
'Set objAccess = New Access.Application

'* late binding *'
' no reference required
Dim objAccess As Object
Set objAccess = CreateObject("Access.Application")

' this is useful during development
' in production, you may prefer to hide it (Visible = False)
objAccess.Visible = True

strFolder = ActiveWorkbook.Path & Chr(92)
'Debug.Print strFolder
objAccess.OpenCurrentDatabase strFolder & cstrDbFile, _
Exclusive:=True

'* early binding *'
'objAccess.DoCmd.TransferText _
' TransferType:=acImportDelim, _
' TableName:=cstrTable, _
' Filename:=strFolder & cstrCsvFile, _
' HasFieldNames:=True

'* late binding *'
' acImportDelim = 0
objAccess.DoCmd.TransferText _
TransferType:=0, _
TableName:=cstrTable, _
Filename:=strFolder & cstrCsvFile, _
HasFieldNames:=True

objAccess.Quit
Set objAccess = Nothing
End Sub

关于sql - 使用 Excel VBA 将 CSV 转换为 MS Access 数据库中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com