Vba 我可以将csv导入mdb吗

Vba 我可以将csv导入mdb吗,vba,csv,ms-access,Vba,Csv,Ms Access,代码首先将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")

代码首先将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、电话、传真、电子邮件、Manager、Business、SerialNo、MeasuredBy、Height、BlockNo、Mapkey、User1、User2、user3是csv中的列,但i时间可以更长

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

(不知道如何导入到mdb“Y:\Eilat\arnna\Eilat.mdb”)

假设:

  • 您的代码正确地打开CSV文件并逐行读取
  • 所有表字段都是字符串类型
  • 您的表有字段字段\u 01、字段\u 02、字段\u 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文件,那么这将更加复杂。

您实际上有几个选项。您可以将CSV文件链接到一个表,然后只需执行插入选择或者你可以试着构建一个文本文件和一个导入规范,以这种方式导入。可能还有另外两种方式,但这两种方式对我来说很突出。我想用代码来完成。是的,我理解。我建议的事情都是通过代码来完成的。用谷歌搜索我说的事情,学习我很酷的技术,我可以使用吗?”从代码中导入mdb文件之外的规范。你真的应该查找这些东西,伙计-我发现这个表单是google的第一个结果。
DoCmd.RunSQL "INSERT INTO MyTable (Field_01, Field_02, Field_03) VALUES ('" & aryMyData(0) & "','" & aryMyData(1) & "','" & aryMyData(2) & "'")