内部加入Excel记录集与Access记录集

时间:2014-09-22 18:55:04

标签: sql vba excel-vba ms-access vb6

是否可以在Excel电子表格和访问数据库表之间建立内部联接? 我尝试了许多方法使这成为可能,但没有成功。

这是我的Visual Basic 6代码:

Dim DbTemp As Database
Dim ExcelDB As Database
DIm xlsRs As Recordset

Set DbTemp = OpenDatabase(App.Path + "\mydb.mdb")
Set ExcelDB = OpenDatabase(App.path + "\QueryExcelDATA.xls", False, True, "Excel 8.0;")
Set xlsRS = ExcelDB.OpenRecordset(query, dbOpenDynaset) ' query is a sql query I used to get some other results

Do Until xlsRs.EOF
        Workspaces(0).BeginTrans
            sql =  "INSERT INTO Presenze(Enterprise, Emp_ID, mYear, mMonth, mDay, WorkHours) " _
                 & " SELECT Presenze.Emp_ID, '"+xlsRs("Entps")+"', '" + xlsRs("Yr") + "', '" + " _
                 & " xlsRs("Mnth") + "', '" + xlsRs("Dy") + "', '" + xlsRs("WH") + `"' " _
                & " FROM [ExcelDATA$] INNER JOIN Presenze On [ExcelDATA$].[CardID] = Presenze.CardID"
            DbTemp.Execute sql
        Workspaces(0).CommitTrans
        xlsRS.MoveNext
Loop

我想从[ExcelData $]电子表格中获取数据并将其插入访问表“Presenze” 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

唯一可行的方法是在访问数据库中创建导入表,然后将数据从Excel复制到其中,然后加入此表。这样,每次Excel中的数据发生变化时,您都不必重新创建连接。