亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VB的Excel與Access數(shù)據(jù)交換的實(shí)現(xiàn)

        2013-08-06 02:14:46韋立梅
        電腦與電信 2013年4期
        關(guān)鍵詞:窗體報(bào)表應(yīng)用程序

        韋立梅

        (廣東白云學(xué)院電氣與信息工程學(xué)院,廣東 廣州 510450)

        1.引言

        Visual Basic(VB)是比較常用的軟件開(kāi)發(fā)工具之一,但VB的報(bào)表功能有限,而Excel是一款使用廣泛的、優(yōu)秀的電子表格處理軟件,其報(bào)表功能十分強(qiáng)大。日常工作中,用戶也希望程序設(shè)計(jì)者能把報(bào)表結(jié)果輸出到他們更熟悉的Excel文件中。那么,如何能把二者有機(jī)地結(jié)合在一起,實(shí)現(xiàn)在VB編程中有效地控制Excel生成報(bào)表,或者把Excel表格內(nèi)容導(dǎo)入到數(shù)據(jù)庫(kù)中的某個(gè)表,是程序設(shè)計(jì)員經(jīng)常面臨的問(wèn)題,也是本文將要討論的問(wèn)題。

        2.EXCEL對(duì)象模型

        若想在VB中靈活地使用Excel文件,就要用到VB的OLE自動(dòng)化技術(shù)獲取Excel控制句柄,再利用其提供的Excel各種對(duì)象所具有的方法與屬性,實(shí)現(xiàn)在VB中控制Excel的一系列操作。Excel是以層次結(jié)構(gòu)組織對(duì)象的,最頂層是Application對(duì)象,代表Excel應(yīng)用程序本身,其下一層是workbooks對(duì)象集,代表Excel工作簿文件;worksheets對(duì)象集,是Workbooks對(duì)象集的下層,它表示一個(gè)Excel工作表;Cells和Range對(duì)象,是worksheets對(duì)象的下層,代表Excel工作表中的一個(gè)或多個(gè)單元格。以上四個(gè)對(duì)象是Excel中最常用的對(duì)象。

        3.ADO對(duì)象模型

        ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對(duì)象)是Microsoft提出的應(yīng)用程序接口(API),用以實(shí)現(xiàn)訪問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。ADO可以以ActiveX控件的形式出現(xiàn),技術(shù)編程接口豐富,支持 Visual C++、Visual Basic、JS等。ADO常用的對(duì)象有:Connection,用于表示和數(shù)據(jù)源的連接,以及處理一些命令和事務(wù);Recordset用于處理數(shù)據(jù)源的記錄集,它是在表中修改、檢索數(shù)據(jù)的最主要的方法。Command用于執(zhí)行某些命令來(lái)進(jìn)行諸如查詢、修改數(shù)據(jù)庫(kù)結(jié)構(gòu)的操作。Field描述數(shù)據(jù)集中的列信息。Parameter用于對(duì)傳遞給數(shù)據(jù)源的命令賦參數(shù)值。Error用于承載所產(chǎn)生錯(cuò)誤的詳細(xì)信息。

        4.實(shí)例

        4.1 建立工程文件

        圖1 窗體設(shè)計(jì)界面

        圖2 導(dǎo)入前“圖書(shū)信息”表記錄

        圖3 導(dǎo)入后“圖書(shū)信息”表記錄

        新建一個(gè)VB的“標(biāo)準(zhǔn)EXE”工程,在工程菜單上選擇“引用”,選中“Microsoft ActiveX Data Objects 2.8 Library”和“Microsoft Excel 11.0 Object Library”兩個(gè)選項(xiàng)后,單擊“確定”按鈕,將ADO對(duì)象和Excel對(duì)象引用到工程中,然后在窗體 Form1中添加兩個(gè)命令按鈕“access導(dǎo)出 excel”(OutExcel)和“excel導(dǎo)入 Access”按鈕(inputAcc)。完成此程序要在D盤根目錄下建立一個(gè)包含“圖書(shū)信息”表的Access數(shù)據(jù)庫(kù)(圖書(shū)管理.mdb),再建立新購(gòu)圖書(shū).xls和myexl.xls兩個(gè)工作簿,其中新購(gòu)圖書(shū).xls的結(jié)構(gòu)與“圖書(shū)信息”表的結(jié)構(gòu)一樣,用于導(dǎo)入,myexl.xls用于導(dǎo)出報(bào)表。程序設(shè)計(jì)界面如下圖1所示,導(dǎo)入前“圖書(shū)信息”表的內(nèi)容如圖2所示,導(dǎo)入后“圖書(shū)信息”表的內(nèi)容如圖3所示。

        4.2 代碼的編寫(xiě)及說(shuō)明

        (1)在窗體的通用區(qū)聲明對(duì)象變量:

        Option Explicit

        Dim exlapp Asexcel.Application

        Dim exlbook Asexcel.Workbook

        Dim exlsheet Asexcel.Worksheet

        說(shuō)明:聲明Excel編程模型對(duì)象

        Dim cnn AsNew ADODB.Connection

        Dim rst As New ADODB.Recordset

        說(shuō)明:聲明ADO編程模型對(duì)象

        (2)在窗體的Load事件中建立與數(shù)據(jù)庫(kù)的連接Dim s As String

        s="Provider=Microsoft.Jet.OLEDB.4.0;Data

        Source=D:圖書(shū)管理.mdb;Persist Security Info=False"cnn.CursorLocation=adUseClient

        cnn.Open s‘打開(kāi)D:圖書(shū)管理.mdb數(shù)據(jù)庫(kù)Set rst=New Recordset‘創(chuàng)建一個(gè)新的記錄集

        (3)“excel導(dǎo)入Access”按鈕(inputAcc)單擊事件代碼

        Private Sub Command1_Click()

        Dim sql As String

        Dim value1 As String

        Dim value2 As String

        Dim row As Integer

        Screen.MousePointer=vbHourglass

        DoEvents

        Set exlapp=CreateObject("excel.Application")‘創(chuàng)建 Excel應(yīng)用程序?qū)ο髮?shí)例

        exlapp.Visible=True‘使Excel應(yīng)用程序可見(jiàn)

        exlapp.Workbooks.Open FileName:="d:新購(gòu)圖書(shū).xls"Setexlsheet=exlapp.ActiveSheet‘激活 Excel工作表

        row=1

        Do

        value1=Trim$(exlsheet.Cells(row,1))‘得到書(shū)號(hào)值

        value2=Trim$(exlsheet.Cells(row,2))‘得到書(shū)名值

        If Len(value1)=0 Then ExitDo‘如果書(shū)號(hào)單元格內(nèi)容不為空時(shí),就插入一條記錄

        sql="insert into圖書(shū)信息 (書(shū)號(hào),書(shū)名)values('"&value1&"',"&"'"&value2&"')"

        cnn.Execute sql‘在圖書(shū)信息表末尾插入一條新記錄

        row=row+1

        Loop

        exlapp.ActiveWorkbook.Close False‘關(guān)閉Excel文件但不保存

        exlapp.Quit‘退出Excel應(yīng)用程序

        Setexlsheet=Nothing‘釋放Excel工作表對(duì)象

        Setexlapp=Nothing‘釋放Excel工作簿對(duì)象

        Screen.MousePointer=vbDefault

        End Sub

        (4)“access導(dǎo)出excel”按鈕(OutExcel)單擊事件代碼

        Private Sub Command2_Click()

        Dim row As Integer,col As Integer

        Set rst.ActiveConnection=cnn‘記錄集中創(chuàng)建連接

        rst.Open"圖書(shū)信息 ",cnn,adOpenStatic,

        adLockBatchOptim istic‘打開(kāi)圖書(shū)信息表

        Set exlapp=CreateObject("excel.application")‘創(chuàng)建 Excel應(yīng)用程序?qū)ο?/p>

        Set exlbook=exlapp.Workbooks.Open("d:myexl.xls")‘打開(kāi)Excel工作簿

        Setexlsheet=exlapp.Worksheets(1)‘選擇第一張工作表

        exlapp.Visible=True‘Excel應(yīng)用程序可見(jiàn)

        row=1

        For col=1 To rst.Fields.Count-1

        exlsheet.Range(Cells(row,col),Cells(row,col+1)).MergeCells=True‘合并第一行單元格區(qū)域

        exlsheet.Cells(2,col)=rst.Fields.Item(col-1).Name‘第二行顯示列標(biāo)題

        If Not rst.EOFThen rst.MoveNext

        Next

        exlsheet.Cells(2,col)=rst.Fields.Item(col-1).Name rst.MoveFirst

        exlsheet.Rows(1).HorizontalAlignment=xlCenter

        exlsheet.Cells(1)="圖書(shū)信息"‘工作表第一行顯示圖書(shū)信息標(biāo)題

        row=3

        col=1

        DoWhile Not rst.EOF‘使用記錄集,循環(huán)實(shí)現(xiàn)將圖書(shū)信息表中的記錄逐條顯示

        For col=1 To rst.Fields.Count

        exlsheet.Cells(row,col)=rst(col-1)

        Next

        rst.MoveNext

        row=row+1

        Loop

        exlapp.ActiveSheet.PrintPreview‘在Excel工作簿中預(yù)覽圖書(shū)信息表記錄內(nèi)容

        End Sub

        5.結(jié)束語(yǔ)

        把后臺(tái)數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄輸出到Excel或者把Excel的內(nèi)容輸入到后臺(tái)數(shù)據(jù)表,是程序開(kāi)發(fā)人員經(jīng)常要處理的問(wèn)題,本文通過(guò)一個(gè)具體的實(shí)例,說(shuō)明在VB中利用ADO對(duì)象建立VB與后臺(tái)數(shù)據(jù)庫(kù)的連接,同時(shí)使用VB控制Excel,把數(shù)據(jù)導(dǎo)入Excel應(yīng)用程序中,很方便快捷地完成打印功能。并給出了具體的代碼,所有代碼已編譯成功。用戶在使用時(shí),只要用鼠標(biāo)單擊一下相應(yīng)的命令按鈕,就可以輕松地實(shí)現(xiàn)在Access與Excel之間進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出。

        [1]劉東.VB控制EXCEL生成報(bào)表. 宜賓學(xué)院學(xué)報(bào),2005,12:73-75.

        [2]吳聲松.VisualBasic調(diào)用Excel之技巧.工程地質(zhì)計(jì)算機(jī)應(yīng)用,2000,2:18-21.

        [3]傾明.通過(guò)ADO實(shí)現(xiàn)VB與EXCEL的無(wú)縫連接.內(nèi)蒙古石油化工,2007,10:60-62.

        猜你喜歡
        窗體報(bào)表應(yīng)用程序
        刪除Win10中自帶的應(yīng)用程序
        試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        LabWindows/CVI中Excel報(bào)表技術(shù)研究
        從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        巧設(shè)WPS窗體控件讓表格填寫(xiě)更規(guī)范
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        三星電子將開(kāi)設(shè)應(yīng)用程序下載商店
        微軟軟件商店開(kāi)始接受應(yīng)用程序
        月度報(bào)表
        av国产免费在线播放| 久久er99热精品一区二区| 性生交大片免费看淑女出招| 一级毛片不卡在线播放免费| 人人妻人人澡av| 亚洲精品成人网线在线播放va| 永久免费在线观看蜜桃视频 | 亚洲捆绑女优一区二区三区| 日韩精品综合一本久道在线视频| 成年女人粗暴毛片免费观看| 亚洲一本大道无码av天堂| 国产成年无码aⅴ片在线观看| 日韩av一区二区在线观看| 日本熟女人妻一区二区| 永久免费人禽av在线观看| 女同性黄网aaaaa片| 日本韩国三级aⅴ在线观看| 麻豆成年人视频在线观看| 精品激情成人影院在线播放| 免费看美女被靠的网站| 无码人妻视频一区二区三区99久久| 亚洲双色视频在线观看| 与最丰满美女老师爱爱视频| av黄页网国产精品大全| 黄桃av无码免费一区二区三区| 国产一线二线三线女| 无码免费午夜福利片在线| 亚洲女同高清精品一区二区99| 蜜桃精品视频一二三区| 免费观看mv大片高清| 亚洲午夜精品久久久久久人妖| 粗大挺进尤物人妻一区二区| 激情视频在线播放一区二区三区| 美利坚日韩av手机在线| 亚洲中文字幕成人无码| 内射少妇36p九色| 国产精品反差婊在线观看| 亚洲av男人的天堂在线| 蜜桃一区二区三区视频| 又粗又黄又猛又爽大片免费| 精品亚洲成在人线av无码|