設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3830|回復(fù): 4
打印 上一主題 下一主題

[Access本身] 如何把記錄導(dǎo)出到一張以編輯好的EXCEL的表中

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2005-3-8 21:36:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好

      我想把主記錄和二個子記錄,導(dǎo)出到一個以編輯好的EXCEL報表中,如何實現(xiàn),請幫忙寫明方法?

                                                  多謝!!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2005-3-8 21:49:00 | 只看該作者
請看transftext或open file as input #1語句。
3#
發(fā)表于 2005-3-8 21:52:00 | 只看該作者
恐怕要用到ADO才行。
4#
發(fā)表于 2005-3-9 04:49:00 | 只看該作者
幫你搜索了一下。你看看如何。http://www.mzhfr.cn/forum.php?mod=viewthread&tid=20424以下是我收藏的東西。我自己沒有用過他這一段,不知有沒有問題,不過有些句子有參考意義的。創(chuàng)建完美報表

Access作為Microsoft Office辦公軟件包中的一部分,以其友好的操作界面和卓越的數(shù)據(jù)管理能力而日益成為中小型管理信息系統(tǒng)的理想開發(fā)環(huán)境,在各行各業(yè)得到了廣泛的應(yīng)用。但在應(yīng)用中我們發(fā)現(xiàn),Access在報表輸出上還存在一些不足:盡管它可以很好地處理一些基于頁面的報表,但對一些復(fù)雜報表或一些特殊報表的處理能力卻很難令人滿意,這主要是由于Access系統(tǒng)附帶的報表設(shè)計器太過直觀,缺少了程序設(shè)計和文字處理所需的必要的靈活性。而Word作為Microsoft Office家族中的重要成員——字處理器,其強大的文字處理功能正好可以彌補Access在報表方面的不足。這就使得我們自然而然地想到將Access與Word有機地結(jié)合起來,利用Access的數(shù)據(jù)處理功能進行數(shù)據(jù)的錄入、查詢、存儲,而利用Word的字處理功能進行各種報表的打印輸出。幸好,微軟在設(shè)計Office的時候就已經(jīng)為我們提供了一種在諸如Access、Word、Excel等應(yīng)用程序之間通信的機制,使得這種想法得以實現(xiàn)。

一、基本原理

對于一些復(fù)雜的或有特殊要求的查詢,用ADO(ActiveX數(shù)據(jù)對象)來處理要比用Access本身提供的查詢管理器更靈活一些。所以我們的基本思路是:用ADO執(zhí)行一條或多條特定的SQL查詢,生成我們所需要的一個或多個Recordset,再將這些Recordset中的數(shù)據(jù)逐條輸出到Word文檔,然后就可以用程序或手工控制Word文檔的格式,達到我們的特殊要求。這聽起來挺麻煩,可只要了解了其工作原理,實際操作卻很簡單。下面就分別以在Access中和在Word中的具體操作為例進行介紹。

二、在Access中應(yīng)用ADO將數(shù)據(jù)輸出到Word

1. 系統(tǒng)配置

系統(tǒng)軟件:Microsoft Windows 9x/NT/2000;Microsoft Access 2000;Microsoft Word 2000。

樣例數(shù)據(jù)庫:“C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb”,Office 2000中包含的例子?蓪⑵渲械摹爱a(chǎn)品”表復(fù)制到一個新的數(shù)據(jù)庫中,如“D:\db1.mdb”。

窗  體:在數(shù)據(jù)庫“D:\db1.mdb”中新建窗體“窗體1”,其中只包含1個命令按鈕“命令0”。

引用ADO:按Alt+F11進入Visual Basic編輯器,執(zhí)行“工具”->“引用”命令,在彈出的引用窗體中選擇“Microsoft ActiveX Data Objects 2.1”或更高版本。

引用Word:再次執(zhí)行命令“工具”->“引用”,在彈出的引用窗體中選擇“Microsoft Word 9.0 Object Library”。

2. 代碼詳解

在“窗體1”的設(shè)計模式下右鍵單擊“命令0”按鈕,選擇“事件生成器”,進入Visual Basic編輯器,創(chuàng)建過程“Private Sub 命令0_Click()”,其代碼如下:

Sub 命令0_Click()

'輸入表格標題

Title = InputBox(vbCrLf & vbCrLf & "請輸入表格標題:", "表格標題", "XX公司產(chǎn)品報價單")

If Title = "" Then Title = "XX公司產(chǎn)品報價單"

'步驟1:建立數(shù)據(jù)連接cnn

'由于數(shù)據(jù)庫已經(jīng)打開,所以直接應(yīng)用CurrentProject.Connection就可以建立連接

Set cnn = New ADODB.Connection

Set cnn = CurrentProject.Connection '步驟2:用SQL語句創(chuàng)建記錄集rs

Set rs = New ADODB.Recordset

'設(shè)定游標類型與鎖定類型

rs.CursorType = adOpenKeyset

rs.LockType = adLockOptimistic

'制定特定的查詢條件,可以是任何有效的SQL查詢,甚至包括多表、多條件等復(fù)雜的查詢,查詢條件也常常從窗體取得

SQL = "select 產(chǎn)品名稱,單位數(shù)量,單價,庫存量 from 產(chǎn)品 where 單價>10.00"

'創(chuàng)建記錄集rs

rs.Open SQL, cnn

'統(tǒng)計字段數(shù)及記錄數(shù)

total_fields = rs.Fields.Count

total_records = rs.RecordCount '步驟3:建立Word文檔對象

Set mywdapp = CreateObject("word.application")

'調(diào)整Word窗口大小

mywdapp.WindowState = wdWindowStateNormal

'生成新的Word文檔實例

mywdapp.Documents.Add

'設(shè)置視圖為頁面視圖

mywdapp.ActiveWindow.View.Type = wdPrintView

'轉(zhuǎn)到Word視圖,顯示文檔生成過程

mywdapp.Visible = True

mywdapp.Activate

'設(shè)置文檔(表格)字體

mywdapp.ActiveDocument.Range.Font.Size = "9" '步驟4:將記錄集rs中的字段名稱和字段內(nèi)容輸出到Word,各字段之間用制表符分隔

'輸出字段名稱

For I = 0 To total_fields - 2

mywdapp.Selection.TypeText Text:=rs.Fields(I).Name & vbTab

Next I

'最后一個字段名稱后加回車符

mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Name & vbCrLf

'逐條輸出字段內(nèi)容

Do While Not rs.EOF

For I = 0 To total_fields - 2

tmpstr = rs.Fields(I).value

If rs.Fields(I).Name = "單價" Then

tmpstr = Format(tmpstr, "####.00")

End If

mywdapp.Selection.Type
5#
發(fā)表于 2005-3-9 20:29:00 | 只看該作者
太暈了,有沒有實例呀
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 00:37 , Processed in 0.089731 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表