使用vba代码逐行写入excel

嗨,大家好,我是新来的,我是vba新手。

我想解决以下问题:

我有两个不同的访问表。 每个都包含我想先比较的数据,然后,如果某个约束为真,我想从两个访问数据库表中的某一个导入到Excel表中。

我已经有了:连接到数据库,我可以读取数据并通过debug.print命令在控制台上打印它们。

我真的不知道如何写一些行(符合约束的行)到Excel表单。

代码示例

'commandstring and data base variables stands here 'non database connection variables Dim oldID, newID, oldBuildPlanned, newBuildPlanned As String Dim createExcel, doesExcelExist As Boolean Dim xl As Excel.Application Dim wb As Excel.Workbook Dim Wksht As Excel.Worksheet Dim dataVar As String Dim counter As Integer counter = 0 createExcelSheet = False doesSheetExist = False 'Debug.Print "TEST old database" Do While Not objRs.EOF And Not objRs2.EOF 'Debug.Print vbTab & objRs(0) & " " & objRs(1) 'assigning database values to variables to make them comparable oldID = objRs(counter) newID = CStr(objRs2(counter)) oldBuildPlanned = objRs(counter + 1) newBuildPlanned = objRs2(counter + 1) If oldID = newID And oldBuildPlanned = newBuildPlanned Then createExcel = True If createExcelSheet = True And Not doesSheetExist = True Then Set xl = New Excel.Application Set wb = xl.Workbooks.Add Set Wksht = ActiveWorkbook.Worksheets("Sheet1") doesExcelExist = True End If Call writeReport(newID) End If objRs.MoveNext objRs2.MoveNext Loop 'tidy up stuff comes here 

代码结束

我很抱歉,如果我的代码没有像往常一样格式化,我的第一个post在这个论坛^^

所以writeReport()应该包含将数据写入表单的代码。 我打算将匹配数据库条目的ID作为参数插入到方法中,并从logging集中读取这些特定的数据。 但我不能将logging集项目转换为string,所以byRef参数声明导致编译错误“types不匹配”。 另外,我试图用DoCmd.TransferSpreadsheet导出表,但是这个方法将整个表导出到excel中,它工作正常,但这不是我正在寻找的。

我希望有人可以帮我解决我的小问题,如果你需要更多的信息,请随时问我。 我正在使用ADO。

提前致谢

欢迎来到论坛,

我想你可能会发现这两个网站对你正在做的事情很有帮助。 第一个是一起使用Access和Excel的一个很好的教程。

http://www.datawright.com.au/excel_resources/excel_access_and_ado.htm

http://www.w3schools.com/sql/default.asp

我不知道你是如何创build你的logging集,我build议使用SQL语句作为您的来源。 这样你只需要从你需要的Access中获取数据。 如果您有任何更具体的问题,请让我知道。

贾森