当前位置:编程学习 > VB >>

怎么用VB将Access的一个表中数据复制到excell的某个页面中?

谢谢! --------------------编程问答-------------------- 至少有 8 种方法:

1 通过 Sheet 对象逐单元格填入数据;
2 通过 Range 对象一次将数组填入多个单元格;
3 通过 Range 对象的 CopyFromRecordset 方法将记录集一次写入;
4 通过 Sheet 对象的 QueryTables.Add 方法直接执行对 Access 表的查询导入;
这个介绍的比较少,贴一段例子:
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
   
   'Create the QueryTable
   Dim sNWind As String
   sNWind = _
      "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
   Dim oQryTable As Object
   Set oQryTable = oSheet.QueryTables.Add( _
   "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";", oSheet.Range("A1"), "Select * from Orders")
   oQryTable.RefreshStyle = xlInsertEntireRows
   oQryTable.Refresh False
   
   'Save the Workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls"
   oExcel.Quit

5 利用剪贴板:将数据 vbCr 分隔行,vbTab 分隔列的字符串复制到剪贴板,然后

   oBook.Worksheets(1).Range("A1").Select
   oBook.Worksheets(1).Paste

  以上字符串,可以通过记录集的 GetString 方法得到。

  sData = rs.GetString(adClipString, , vbTab, vbCr, vbNullString)

6 通过将以上字符串形式的数据写入文本文件,另 Excel 读入:

   Shell "C:\Program Files\Microsoft Office\Office\Excel.exe " & _
      Chr(34) & "C:\Test.txt" & Chr(34), vbMaximizedFocus

  或通过自动化,以 Book 对象读入文本文件:

   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
       
   'Open the text file
   Set oBook = oExcel.Workbooks.Open("C:\Test.txt")
   
   'Save as Excel workbook and Quit Excel
   oBook.SaveAs "C:\Book1.xls", xlWorkbookNormal
   oExcel.Quit

7 使用 ADO,将 Excel 当作外部数据库,直接由 Access 导入数据表。

   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;"
  conn.Execute "Select Into [Sheet1$] From MyTable In mydb.mdb"
  '......

8 使用 DDE。这里就不介绍了。 
--------------------编程问答-------------------- 多多多多多谢谢,很好很强大!!!!谢谢of123! --------------------编程问答-------------------- Dim conn As New ADODB.Connection


Dim rs As New ADODB.Recordset


Dim str1 As String


Dim str2 As String


Dim str3 As String


str1 = "Provider = Microsofte.Jet.OLEDB.4.0"


str2 = "Data Source=F:\FFF\VB学习\数据库学习db2.mdb"


str3 = "Jet.OLEDB:Database Password="


conn.Open str1 & str2 & str3 


.......



提示:“实时错误‘3706’ 未找到提供程序。该程序可能未正确安装。”


重装了MDAC,重新运行了msjetoledb40.dll都无效。


望赐教。我初学,初初学,问题可能太简单,不要见笑。

--------------------编程问答--------------------
引用 1 楼  的回复:
至少有 8 种方法:

1 通过 Sheet 对象逐单元格填入数据;
2 通过 Range 对象一次将数组填入多个单元格;
3 通过 Range 对象的 CopyFromRecordset 方法将记录集一次写入;
4 通过 Sheet 对象的 QueryTables.Add 方法直接执行对 Access 表的查询导入;
这个介绍的比较少,贴一段例子:
  Dim oExcel As ……

牛B --------------------编程问答-------------------- 我的课题:
   建立一个ACCESS“学生登记表”;
   通过VB编程显示、添加、修改、删除表中的内容(添加、修改、删除用TextBox+CommandButton);
  “学生登记表”的建立、显示已经完成,在写“添加”按钮代码时遇到问题--“ 实时错误‘3706’未找到提供程序。该程序可能未正确安装。”

   望指教 --------------------编程问答-------------------- 贝隆,多想想, 下午好
     你们都是我关注的高手,不期在此相遇,真乃缘分。我会做个好学生。好好学习,天天向上。
     祝天天愉快,事业有成,轻松发财!
礼                          
                           fzygsgsfzylsq   --------------------编程问答-------------------- 最简单的方式,一句话实现:

INSERT INTO [excel 8.0;database=z:\book1.xls].[sheet5$]
SELECT *
FROM 表名 --------------------编程问答-------------------- --------------------编程问答-------------------- 资源下载:
http://download.csdn.net/detail/xiaoyao961/4502287
vb导出ACCESS数据库中一个表的内容到EXCEL MDB2XLS
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,