【问题标题】:can i import csv to mdb我可以将csv导入mdb吗
【发布时间】:2020-03-05 03:42:55
【问题描述】:

代码首先将 dbf 文件更改为 csv。

Sub FindFiles()
    Dim strDocPath As String
    Dim strCurrntFile As String
    Dim Fname As String

strDocPath = "Y:\Eilat\Shapes\"
'strCurrentFile = Dir(strDocPath & "*.*")
strCurrentFile = Dir(strDocPath & "111.dbf")

    Workbooks.Open FileName:=strDocPath & strCurrentFile
    Fname = Left$(strCurrentFile, Len(strCurrentFile) - 4) & ".csv"
    ActiveWorkbook.SaveAs FileName:=strDocPath & Fname, FileFormat:=xlCSVMSDOS, CreateBackup:=False
    ActiveWorkbook.Close (True)


Dim filepath As String
Dim sqlinsert As String
Dim sqlvalue As String
Dim sqlquery As String
Dim sqlwhere As String

'Set db = CurrentDb
directory = "Y:\Eilat\Shapes\"
FileName = "111.csv" 
Set rs = CreateObject("ADODB.Recordset")
strcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & directory & ";" _
& "Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
'strSQL = "SELECT * FROM " & FileName
'rs.Open strSQL, strcon
'rs.MoveFirst
Dim strTextLine As String
Dim aryMyData() As String


Open directory & FileName For Input As #1
Do While Not EOF(1)             ' Loop until end of file.
    Line Input #1, strTextLine   ' Read line into variable.
    aryMyData = Split(strTextLine, ",") 'Split text into array by comma

'(csv 长度发生变化,例如这是 csv 中的列,但它可以更长。EHANDLE,UseCode,UseCode2,Descriptio,Gush,Helka,Owner,OwnerID,Holder,HolderID,Floor,PhysicalNo,Date,Area ,Comments,Address,StreetName,HouseNo,Telephone,Fax,Email,Manager,Business,SerialNo,MeasuredBy,Height,BlockNo,Mapkey,User1,User2,user3是csv中的列,但可以更长。

strSQL = "??(需要什么sql语句??)

(不知道如何导入到 mdb "Y:\Eilat\Arnona\Eilat.mdb")

Debug.Print strSQL
DoCmd.RunSQL strSQL

Loop
Close
End Sub

【问题讨论】:

  • 您实际上有多种选择。您可以链接 csv 文件有一个表,然后只做一个 insert-selet 或者您可以尝试构建一个文本文件和一个导入规范以这种方式导入它。可能还有另外几种方法,但这是我最喜欢的两种方法。
  • 我想用代码来做
  • 是的,我明白这一点。我建议的事情是通过代码完成的。谷歌我说的东西并学习一些很酷的技术
  • 我可以在代码中的 mdb 文件之外使用“导入规范”吗?
  • 你真的应该看看这些东西,伙计——我发现这个表格是谷歌的第一个结果。 stackoverflow.com/questions/28950791/…

标签: vba csv ms-access


【解决方案1】:

假设:

  • 您的代码正确打开 CSV 文件并逐行读取
  • 您的所有表格字段都是字符串类型
  • 您的表有字段 Field_01、Field_02、Field_03 想要导入 CSV 文件的第 1、2 和 3 列

你可以使用

DoCmd.RunSQL "INSERT INTO MyTable (Field_01, Field_02, Field_03) VALUES ('" & aryMyData(0) & "','" & aryMyData(1) & "','" & aryMyData(2) & "'")

并根据需要扩展所有字段和列。

这是一个非常基本的示例,假设您的表格是专门为您要导入的 CSV 文件准备的。如果您希望表格的设计能够更改以适应您要导入的任何 CSV 文件,那就更复杂了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多