2012-01-11 68 views
0

我试图用CSV文件中的数据更新数据库。我已经得到了这么多,但我不知道该从哪里去:使用Visual Basic和CSV文件更新Access数据库

Dim web As String 
web = "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symbol & "&f=a" 

Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(web) 
Dim response As System.Net.HttpWebResponse = request.GetResponse() 
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream()) 
Dim sourcecode As String = sr.ReadToEnd() 

' Database connection 
Dim daoengine As DAO.DBEngine 
Dim dbs As DAO.Database 
Dim rst As DAO.Recordset 
daoengine = New DAO.DBEngine 
dbs = daoengine.OpenDatabase("Project.mdb") 
+0

使用OleDB ADO.NET提供程序而不是DAO。 – adatapost 2012-01-11 02:34:26

+0

我被要求特别使用DAO。老实说,我宁愿不使用DAO。 – bear 2012-01-11 02:36:24

+0

那么这段代码中的问题是什么? – adatapost 2012-01-11 02:37:46

回答

0

您可以对数据库执行sql。以下是从VBA中取得的一些笔记:

scn = "[Text;FMT=Delimited;HDR=Yes;DATABASE=Z:\Docs]" 

''Example for simply importing from the CSV 
ssql = "SELECT * INTO TestTable FROM " & scn & ".[Test.CSV] " 

''Example for updating an existing table 
ssql = "INSERT INTO TestTable SELECT * FROM " & scn & ".[Test.CSV] " _ 
& "WHERE ID Not In (SELECT ID FROM TestTable)" 

''dao.dbFailOnError = 128 

dbs.Execute ssql, dbFailOnError 
+0

我有一个问题。 “身份证不在”看起来像你告诉它只添加新记录;此代码示例是否实际使用CSV中的值更新现有记录? 我负责处理一些情况,我需要将CSV文件包含新记录,并更新到旧记录,并将它们导入Access数据库,更新所有现有记录。 – schizoid04 2015-09-07 14:05:48

+0

@DougRobinson你需要两个查询,但最好导入文本文件,将其附加到每次清除的表格中。这样你可以运行一些测试。 – Fionnuala 2015-09-07 14:37:24

+0

我没有任何经验,无法访问....是否有一个具体的例子,你可以给,或者我应该在其他地方阅读来解决这个问题?我很欣赏考虑到这个话题几年的快速反应! – schizoid04 2015-09-07 21:28:39