|
Q HiRong:
编程工具: vb6
操作系统: win98
问题: 我想将ACCESS中的数据传到EXCEL中已经做好的表格中,然后打印出来,请问如何传数据,谢谢!
A回答:
借助Automation你可以实现数据传递,下面是一个简单的例子:
Dim ExcelApp As Object
Private Sub Command1_Click()
Dim i
Set ExcelApp = CreateObject("excel.application")
ExcelApp.Workbooks.Add
i = 1
While Not Data1.Recordset.EOF
ExcelApp.Range("a" & i).Value = Data1.Recordset("CategoryName")
i = i + 1
Data1.Recordset.MoveNext
Wend
ExcelApp.Visible = True
End Sub
JiaQiang Xu的意见:
在VB中编写Excel的外接程序Addin,生成一个 Dll文件,在这个Addin中,用ADO或DAO读取Access,和一般方法无异。注册Dll后,在Excel的Com Addins列表中出现这个Addin,加载该Addin,发生OnConnection事件,该事件有一个参数Application,就是Excel事例,可据次编写代码将Access数据填到Excel单元格中。
如果你用VBA编写宏,就不能编译成DLL,除非安装office developer tools。Com Addin比Automation效率更高。
cobe的意见:
有一个更好些的办法,就是用xSheet.Range("A1").CopyFromRecordset RS
这样可以将一个DAO的Recordset直接拷贝到指定开始的单元格中.
此问题由李海回答。 转自<问专家>
|
|