欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      vb學(xué)習(xí)綜合資料

      時(shí)間:2019-05-12 13:36:50下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《vb學(xué)習(xí)綜合資料》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《vb學(xué)習(xí)綜合資料》。

      第一篇:vb學(xué)習(xí)綜合資料

      VB教程:序言-不再游戲

      我們需要什么

      我們需要什么?當(dāng)我們在一個(gè)精彩的游戲世界中游歷了一番之后,或是驚嘆于某一工具軟件的小巧精致之余,多少總會(huì)產(chǎn)生些許編程的沖動(dòng)。編程嗎,在以前如果你對電腦還是一個(gè)門外漢,那實(shí)在是一件可望而不可及的事情。如果運(yùn)用基于DOS下的編程語言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。

      編程是需要天賦的,你必須在大腦中對整個(gè)程序有一個(gè)清晰的輪廓,一個(gè)高效的流程,這并不是每個(gè)人都能做到的,你必須思之慎之,這也使編程變成一件最枯燥無味的事情。但在第四代計(jì)算機(jī)語言(可視化編程)出現(xiàn)后,可以確切的說它開發(fā)了人們的更多天賦,并不局限于那些頭腦異常清晰的人,每一個(gè)人都可以發(fā)現(xiàn)自己也可以編出一些從前不敢問津的程序,想象力的充分發(fā)揮才是第四代語言的精粹。

      Visual Basic(以下簡稱VB)可以說是可視化語言的先驅(qū)了,而且它也是可視化程度最高的一個(gè),從幾年前VB誕生之日起到現(xiàn)在,它已經(jīng)經(jīng)歷了五個(gè)版本,而且現(xiàn)在微軟正在緊張的進(jìn)行著VB6.0的研制、測試,這么高的更新率,不外乎說明兩個(gè)問題:用戶對VB的熱衷,微軟對VB的重視。不可否認(rèn)微軟對市場的預(yù)測能力是極為高明的,而它強(qiáng)大的技術(shù)、財(cái)力支持也使它在許多以前未進(jìn)入的領(lǐng)域,在不長的時(shí)間內(nèi)有成為最有力的競爭對手,如IE之于瀏覽器領(lǐng)域,《帝國時(shí)代》之于游戲都是最好的例證。對于VB現(xiàn)在也有一個(gè)很強(qiáng)的競爭對手――Delphi,有人把它稱作VB殺手,這顯然有偏激之處,VB的確有它的不足之處,但Delphi又何嘗不是呢,而且以微軟對VB的傾心,VB的功能必然會(huì)越來越強(qiáng)大。

      VB的誕生

      VB的出現(xiàn)可以說是Microsoft Windows的日漸成熟的必然產(chǎn)物。Microsoft Windows為程序員和最終用戶提供了一個(gè)共同的人機(jī)界面。對用戶,Windows提供了一個(gè)圖形鼠標(biāo)的操作環(huán)境,該環(huán)境對所有的應(yīng)用程序都一樣;對于程序員,Windows提供了一組預(yù)定義工具----稱之為Microsoft Windows 的軟件開發(fā)工具箱(SDK),該工具能使程序員建立一個(gè)與Windows界面相同的應(yīng)用程序,而且,程序員不必關(guān)心最終用戶的硬件配置情況。在這一開發(fā)環(huán)境中,程序員唯一困難的是Microsoft SDK提供了六百多個(gè)函數(shù)和與其一致的事件驅(qū)動(dòng)(event-driven)編程技術(shù)。兩種新方法的交叉使眾多的程序員重新陷入困境,程序員不僅要掌握程序驅(qū)動(dòng)編程技術(shù)和六百多個(gè)函數(shù)的功能,而且還得用C語言描述這些問題。因此一般情況下,程序員首先要掌握C程序設(shè)計(jì)技術(shù),而后再開始學(xué)習(xí)SDK。這樣的條件下就要求在Microsoft多任務(wù)環(huán)境下出現(xiàn)一種操作方便,使用簡單的新工具----Visual Basic由此誕生。

      何為可視

      英文Visual的意思是“視覺的”,“可視的Baisc”這個(gè)名字可能抽象了點(diǎn),但實(shí)際上它卻是最直觀的編程方法,之所以叫做“可視”,你只要看到VB的界面就會(huì)明白,實(shí)際上你無需編程,就可以完成許多步驟。在VB中引入了控件的概念,在Windows中控件的身影無處不在,各種各樣的按鈕、文本框、無線鈕,都是控件的種類,VB把這些控件模式化,并且每個(gè)控件都有若干屬性用來控制控件的外觀,工作方法。這樣你就可以象在畫板上一樣,隨意點(diǎn)幾下鼠標(biāo),一個(gè)按鈕就完成了,這些在以前的編程語言下是要經(jīng)過相當(dāng)復(fù)雜的工作的。

      我的希望:

      我在學(xué)習(xí)VB的過程中也曾遇到了許多困難,而且用的參考書大都來自譯文,畢竟美國人和中國人的表達(dá)方式有所不同。這也造成了理解上的困難,所以我想為什么我不能寫一個(gè)給中國人看到VB教程呢,于是我這么做了。也曾經(jīng)在雜志上發(fā)表過幾篇用VB制作小程序的文章,但受雜志的限制(篇幅、內(nèi)容等等)(我得聽小編的),總沒有一個(gè)機(jī)會(huì)系統(tǒng)的介紹一下VB,造成了小小的遺憾。不過,我自己的主頁建好后,終于這個(gè)愿望可以實(shí)現(xiàn)了,利用HTML可以方便的把文字與圖片結(jié)合起來,不失為一個(gè)教學(xué)良所,也希望能夠得到大家的支持。希望“VB教程”能給你我一個(gè)互相學(xué)習(xí)的機(jī)會(huì),如果你能從中獲益那將是我最大的快樂,那時(shí)你一定會(huì)發(fā)現(xiàn)編程比游戲有趣得多。:)

      VB教程:第一章-Hello World!

      沒學(xué)過編程的人常常會(huì)問,編程難不難,這個(gè)問題很難回答。難,的確很難,要編一個(gè)好的程序尤其是這樣,并且有些程序還要用到一些其他專業(yè)的知識(shí),比如說一個(gè)圖形處理程序,就要對圖像的格式有所了解,甚至一些美術(shù)知識(shí);但編程也很容易,就拿VB來說,編一個(gè)自娛自樂的小工具還是一件相當(dāng)愜意的事情呢,當(dāng)然它沒法完全代替人工,譬如說完成你的家庭作業(yè)、向?qū)W校發(fā)射導(dǎo)彈??

      作為第四代計(jì)算機(jī)語言,VB的特點(diǎn)是顯而易見的。因?yàn)槭恰翱梢暤摹彼晕覀儾环料瓤纯碫B的界面(圖1_1)(我用的是VB4.0 32位版),很容易可以看到,屏幕上有五個(gè)窗口,(1)是菜單欄;(2)是工具箱(Tools Box),里面是VB所需的控件;(3)是VB程序要設(shè)計(jì)的窗體(Form);(4)控件及窗體的屬性(Properties),在VB中每一個(gè)控件都有其自己的屬性,比如文本框有Text屬性,而任何一個(gè)控件都有一個(gè)自己唯一的名字,這使得我們無需編程就可以完成部分編程的工作;(5)是VB的文件控制窗口,VB的每一個(gè)程序稱為一個(gè)項(xiàng)目(Project),一個(gè)項(xiàng)目文件里往往包括以下兩種文件,窗體(Form)文件和模塊(Bas)文件,當(dāng)然還有Class文件,這些文件組成一個(gè)完整的程序,而項(xiàng)目文件(Vbp)則用來描述程序所包含的內(nèi)容。

      實(shí)際上,我一直認(rèn)為學(xué)習(xí)的最好方法就是實(shí)際操作一下,好,下面我們就來看一個(gè)最簡單的程序,和所有的編程教科書一樣,我們把第一個(gè)程序稱為“Hello,world!”。

      首先,我們先來熟悉一下窗體。如果你用過Win95附件所帶的畫圖板的話,那么你一定會(huì)很快熟悉VB的窗體設(shè)計(jì)方法,用鼠標(biāo)單擊一下工具箱中的任何一個(gè)控件,然后在窗體上任意拖動(dòng)鼠標(biāo),你就會(huì)得到一個(gè)所需的控件;當(dāng)然還有其他的方法得到控件,你可以在工具箱上雙擊得到一個(gè)控件;或是按住Ctrl鍵,再單擊所需控件,重復(fù)第一次的步驟,你會(huì)發(fā)現(xiàn),不用再回去點(diǎn)擊工具箱了,點(diǎn)右鍵可以恢復(fù)鼠標(biāo)指針,這樣對于重復(fù)畫同一個(gè)控件尤其有用。

      對于我們的第一個(gè)小程序,知道這些就已經(jīng)足夠了?,F(xiàn)在你可以在我們的窗體上畫如下控件一個(gè)圖片框(Picture Box),用來顯示圖畫,每一個(gè)控件建立的時(shí)候,系統(tǒng)都會(huì)給它設(shè)一個(gè)默認(rèn)的名字(Name),這個(gè)PictureBox的名字就叫做Picture1,為了方便起見,我們以后的控件都使用缺省的名稱。選定Picture1,在左邊的屬性窗口中找到Picture屬性,單擊會(huì)出現(xiàn),點(diǎn)擊為Picture1選一個(gè)圖像文件,VB支持的圖像文件有BitMap、WMF、ICO三種,微軟為用戶提供了一套圖標(biāo)文件,存放在VB目錄的Icons目錄下,選擇Iconsmiscface01.ico文件,這樣圖標(biāo)就被裝入了Picture1。再選擇Pictrue1的Autosize屬性,設(shè)為1-True,則會(huì)發(fā)現(xiàn)Picture1以變成和圖像一樣大了;把BorderStyle定為0-None,去掉圖片邊框。用同樣的方法再添加兩個(gè)圖片框:Picture2(Picture:face02.ico),Picture3(Picture:face03.ico)。

      圖片框完成了,第二步,建立三個(gè)無線鈕(Option Button),由于它象收音機(jī)的無線電按鈕而得名),把它們的標(biāo)簽名屬性(Caption)分別定為“悲哀”,“高興”,“沒治了”,放置成圖1_2的樣子。

      最后我們還需要三個(gè)文本框(Text Box),分別把它們的Text屬性設(shè)為””(空字符串),程序的最后界面如圖1_3,這樣按下菜單窗口的運(yùn)行按鈕,運(yùn)行一下程序,還可以吧,不過現(xiàn)在程序還無法工作,就算是VB也不能免俗,還必須輸入代碼才能使程序運(yùn)作。

      VB是一門典型的面向?qū)ο缶幊痰恼Z言,它的整個(gè)程序都是由事件驅(qū)動(dòng)的。那么,什么是事件呢?其實(shí),我們的生活中充滿了各式各樣的事件,比如說“闖紅燈”這個(gè)事件的發(fā)生會(huì)導(dǎo)致被警察追殺、走路撞到電線桿時(shí)會(huì)痛。上面的例子雖然有些滑稽,但它可以清楚的解釋事件的含義,就象你馬上就能體會(huì)到的在什么地方單擊鼠標(biāo)時(shí)會(huì)發(fā)生什么,按下鍵盤時(shí)會(huì)發(fā)生什么,這就是事件,而事件就是這么容易。

      要進(jìn)入VB的代碼設(shè)計(jì)區(qū),只需在需要的控件或窗體上雙擊鼠標(biāo)即可得到這樣的窗口。如圖1_4,每一個(gè)VB程序都由若干小程序組成,這使得用VB編程更加容易,這些小程序,分為“過程”(Procedure)和“函數(shù)”(Function),二者都可以傳遞參數(shù),所不同的是函數(shù)有一個(gè)返回值,而過程沒有,僅此而已。

      雙擊窗體的任何一個(gè)部分,將出現(xiàn)一個(gè)空的過程:“Form_Load()”,這是一個(gè)非常重要的過程,它所驅(qū)動(dòng)的事件就是該窗體被加載的事件,打個(gè)比方,就象計(jì)算機(jī)啟動(dòng)時(shí)的批處理程序(Autoexec.bat)。這個(gè)程序里我們要對控件進(jìn)行一些設(shè)置。我們剛才也曾對控件進(jìn)行設(shè)置,但那是在程序設(shè)置中進(jìn)行的,有時(shí)我們也需要在程序中改變某些控件的屬性,通過程序代碼。VB中規(guī)定,一個(gè)控件屬性的訪問方法:名稱.屬性,于是我們對本程序的控件進(jìn)行如下設(shè)置:

      Private Sub Form_Load()

      Picture1.Visible = False Picture2.Visible = False Picture3.Visible = False Text1.Visible = False Text2.Visible = False Text3.Visible = False

      End Sub

      Private表示此過程是局部的,Sub表示子過程的開始,與之相對的是End Sub表示過程的結(jié)束,Visible屬性表示控件的可見性,這個(gè)屬性的值有兩個(gè)True和False。

      注意:

      VB里對大小寫是不加區(qū)分的,而且,已定義的名稱,以后再用到時(shí),系統(tǒng)會(huì)自動(dòng)把它變成相應(yīng)的大寫或小寫。

      小知識(shí):

      1.VB里的對變量及常量的規(guī)矩。

      變量一般為Abc的格式,常量為ABC,另外這些變量和常量名不得同VB內(nèi)的關(guān)鍵字相同,也不可以使用一些特殊符號(hào),這些我們將在以后介紹,注意在學(xué)習(xí)中養(yǎng)成好習(xí)慣,使程序便于自己和別人的瀏覽。

      2.程序書寫的竅門:

      不要真的一句一句把程序打完,利用快捷鍵:拷貝Ctrl+C,剪切Ctrl+T,粘貼Ctrl+P。

      按下F5,運(yùn)行一下程序,現(xiàn)在發(fā)現(xiàn)只剩下無線鈕了。如圖1_5。

      Private Sub Form_Load()

      Picture1.Visible = False Picture2.Visible = False Picture3.Visible = False Text1.Visible = False Text2.Visible = False Text3.Visible = False Option4.Left =-2000 Option4.Value = True

      End Sub

      Left屬性表示控件離窗體左邊框的距離,設(shè)置為-2000,則在窗體內(nèi)不會(huì)看到這個(gè)控件,并使之Value=True。再運(yùn)行程序,一切如愿,如圖1_6.注意:為什么不用Option4.Visible=False?

      因?yàn)椋坏┰O(shè)置無線鈕為不可見,那么再使它的Value為真是沒有意義的,不信自己試試。

      下面我們可以繼續(xù)進(jìn)行了。在剛才的代碼窗口里,將Object選擇為Option1,Proc選擇為Click,即得到一個(gè)Option1_Click的過程。代碼如下:

      Private Sub Option1_Click()

      Picture1.Visible = True Picture2.Visible = False Picture3.Visible = False Text1.Visible = True Text2.Visible = False Text3.Visible = False Text1.Text = “再見,殘酷的世界?!?/p>

      End Sub

      相同的建立Option2_Click和Option2_Click:

      Private Sub Option2_Click()

      Picture2.Visible = True Picture1.Visible = False Picture3.Visible = False Text2.Visible = True Text1.Visible = False Text3.Visible = False Text2.Text = “今天心情不錯(cuò)?!?/p>

      End Sub

      Private Sub Option3_Click()

      Picture3.Visible = True Picture2.Visible = False Picture1.Visible = False Text3.Visible = True Text2.Visible = False Text1.Visible = False Text3.Text = “Hello,World?!?/p>

      End Sub

      好,我們的開山之作完成了!按下F5,玩一下吧。這個(gè)程序雖然簡單,但也用到了許多基本知識(shí),你開始感興趣了嗎?^_^

      VB教程:第二章-事件、屬性及數(shù)據(jù)類型

      以后兩章可能會(huì)比較枯燥,但不可否認(rèn)也很重要,所以為了學(xué)好VB,我們一定要打好基礎(chǔ)才行。

      一、事件

      通過上一章的例子,你可能對“面向?qū)ο蟮木幊獭币呀?jīng)有了一定了解,它是由事件驅(qū)動(dòng)的,對于不同的對象,所能感應(yīng)到的事件也會(huì)不同,譬如說當(dāng)你把鼠標(biāo)移進(jìn)某一區(qū)域時(shí)就會(huì)觸發(fā)MouseMove事件,這很直觀,也容易理解,但也有些事件比較抽象,下面我來對一般的事件進(jìn)行一下解釋。

      窗體和圖象框類事件

      Paint事件:當(dāng)某一對象在屏幕中被移動(dòng),改變尺寸或清除后,程序會(huì)自動(dòng)調(diào)用Paint事件。注意:當(dāng)對象的AutoDraw屬性為True(-1)時(shí),程序不會(huì)調(diào)用Paint事件。

      Resize事件:當(dāng)對象的大小改變時(shí)觸發(fā)Resize事件。

      Load事件:僅適用于窗體對象,當(dāng)窗體被裝載時(shí)運(yùn)行。

      Unload事件:僅適用于窗體對象,當(dāng)窗體被卸載時(shí)運(yùn)行。

      2.當(dāng)前光標(biāo)(Focus)事件

      GotFocus事件:當(dāng)光標(biāo)聚焦于該對象時(shí)發(fā)生事件。

      LostFocus事件:當(dāng)光標(biāo)離開該對象時(shí)發(fā)生事件。

      注意:Focus英文為“焦點(diǎn)”、“聚焦”之意,最直觀的例子是,比如有兩個(gè)窗體,互相有一部分遮蓋,當(dāng)你點(diǎn)下面的窗體時(shí),它就會(huì)全部顯示出來,這時(shí)它處在被激活的狀態(tài),并且標(biāo)題條變成藍(lán)色,這就是GotFocus事件,而相反,另外一個(gè)窗體被遮蓋,并且標(biāo)題條變灰,稱為LostFocus事件。上面所說的“光標(biāo)”并非指鼠標(biāo)指針。

      3.鼠標(biāo)操作事件

      Click事件:鼠標(biāo)單擊對象。

      DbClick事件:鼠標(biāo)雙擊事件。

      MouseDown、MouseUp屬性:按下/放開鼠標(biāo)鍵事件。

      MouseMove事件:鼠標(biāo)移動(dòng)事件。

      DragDrop事件:拖放事件,相當(dāng)于MouseDown、MouseMove和MouseUp的組合。

      DragOver事件:鼠標(biāo)在拖放過程中就會(huì)產(chǎn)生DragOver事件。

      4.鍵盤操作屬性

      KeyDown、KeyUp事件:按鍵的按下/放開事件。

      KeyPress事件:按鍵事件。

      5.改變控制項(xiàng)事件

      Change事件:當(dāng)對象的內(nèi)容發(fā)生改變時(shí),觸發(fā)Change事件。最典型的例子是文本框(TextBox)。

      DropDown事件:下彈事件,僅用于組合框(ComboBox)對象。

      PathChange事件:路徑改變事件,僅用于文件列表框(FileBox)對象。

      6.其他事件

      Timer事件:僅用于計(jì)時(shí)器,每隔一段時(shí)間被觸發(fā)一次。

      二、屬性

      每個(gè)對象都有它的屬性,并且“Name”屬性是共有的,有了“Name”屬性才可以在程序中進(jìn)行調(diào)用。對于屬性,可以在窗體的布局操作中完成,也可以在程序運(yùn)行中改變,這取決你的需要,但有些屬性是只讀的,它只能在控件布局時(shí)改變。我將在以后的實(shí)例中具體介紹各個(gè)屬性的作用。

      三、數(shù)據(jù)類型

      學(xué)過編程的人都知道大多數(shù)的計(jì)算機(jī)語言都規(guī)定了各自的數(shù)據(jù)類型,VB也不例外。其實(shí),在一個(gè)最簡單的程序中數(shù)據(jù)類型是可以不作規(guī)定的,也就是說,變量可以使用各種類型,但是在一個(gè)復(fù)雜的程序里,這樣做就很危險(xiǎn),因?yàn)楹芸赡芙o同一個(gè)變量賦予了不同的類型,而導(dǎo)致程序出錯(cuò)。所以,為了程序的嚴(yán)謹(jǐn)和便于查看,正確的定義數(shù)據(jù)類型是必要的。定義數(shù)據(jù)的另一個(gè)原因是,不同的數(shù)據(jù)占用不同的內(nèi)存數(shù)量,譬如整型(Interger)數(shù)據(jù)占2字節(jié),而長整型數(shù)據(jù)占4個(gè)字節(jié),定義合適的數(shù)據(jù)類型,不管你相信不相信,它可以節(jié)省內(nèi)存!

      VB常用的數(shù)據(jù)類型有:整型(Integer,表示-32768至32767之間的整數(shù))、長整型(Long,表示-2,147,483,648至2,147,483,647之間的整數(shù))、實(shí)型(Single,表示-3.37E+38至3.37E+38之間的實(shí)數(shù))、雙精度實(shí)型(Double,表示-1.67E+308至1.67E+308之間的實(shí)數(shù)),字符(String,每個(gè)字符占一字節(jié),可以儲(chǔ)存0~65,535個(gè)字符),布爾(Boolean,只有兩個(gè)值True/-1,或False/0)。

      數(shù)據(jù)類型的定義方法:

      定義變量最簡單的方法是用“Dim”關(guān)鍵字,它的語法:

      Dim 【變量名】As 【數(shù)據(jù)類型】

      如:Dim Index As Integer

      也可以在一行中定義多個(gè)變量,如:

      Dim Index As Integer , Dim Number As Long

      把多個(gè)變量定義成同一類型可以寫成:

      Dim Index , Number As Integer

      有時(shí)為了簡便,也以符號(hào)進(jìn)行簡單的定義,作用是和上面一樣的。整型可以用“%”代替,長整型可以用“&”代替,實(shí)型可以用“!”,雙精度實(shí)型可以用“#”定義,如剛才的第一個(gè)例子可以寫成:

      Dim Index% 等價(jià)于 Dim Index As Integer

      對于常量的定義用Const定義,如:Const COLOR=255。

      為了在程序中便于查閱,我們對變量和常量的寫法進(jìn)行規(guī)定,變量一般用小寫方式,常量則全部大寫。

      注意:使用常量的好處,對于程序中經(jīng)常出現(xiàn)的數(shù)值,應(yīng)設(shè)常量等于它,這樣一是書寫方便,其二,如果要改變該數(shù)值,只需改變定義常量的語句值,而不需改變每個(gè)語句,提高了效率。

      數(shù)組的定義類似于變量定義,所不同的是數(shù)組需要指定數(shù)組中的元素個(gè)數(shù),例如:

      Dim IntegerArray(99)As Integer

      這個(gè)數(shù)組中包含100個(gè)元素,腳標(biāo)從0到99。

      也可以指定腳標(biāo)的起始值,例如:

      Dim IntegerArray(2 to 10)As Integer

      這個(gè)數(shù)組含有九個(gè)元素,腳標(biāo)從2到10。

      還可以定義多維數(shù)組:

      Dim ThreeD(4,2 to 5,3 to 6)As Integer

      上例定義了一個(gè)三維數(shù)組(4×4×4)。

      記錄的定義

      記錄定義是把控制權(quán)交給用戶的方法,它讓用戶可以定義自己的數(shù)據(jù)類型,它使用關(guān)鍵字“Type”,方法是:

      Type 【數(shù)據(jù)類型標(biāo)識(shí)符】

      <域名> As <數(shù)據(jù)類型> <域名> As <數(shù)據(jù)類型> <域名> As <數(shù)據(jù)類型> ??????????

      End Type

      例如,定義一個(gè)地址數(shù)據(jù):

      Type Address

      Street As String ZipCode As String Phone As String

      End Type

      這個(gè)地址數(shù)據(jù)里包括三個(gè)屬性,街區(qū)、郵政編碼和電話,可以把某數(shù)據(jù)定義成此類型:

      Dim MyHome As Address

      要調(diào)用或改變“MyHome”的值時(shí),類似于對對象的屬性的操作:

      變量名.域名=“??”

      為了簡化書寫重復(fù)的部分,可以用關(guān)鍵字“With”:

      With MyHome

      .Street=”阜成路”.ZipCode=”100037”.Phone=”12345678”

      End With

      VB教程:第三章-VB語言

      一、VB與Basic

      VB之所以叫做“Visual Basic”就是因?yàn)樗褂昧薆asic語言作為代碼,所以它們之間有著千絲萬縷的關(guān)系,如果學(xué)過Basic的話,看到VB的程序結(jié)構(gòu)會(huì)感到很親切。但VB作為新生物,也超越了Basic的限制,有了許多自己的特點(diǎn):

      VB建立了一種新的變量類型――貨幣型變量,通過使用僅帶有二位小數(shù)的貨幣變量,就能避免因使用實(shí)型變量而帶來的數(shù)值積累誤差問題。

      VB在調(diào)用函數(shù)(Function)時(shí),必須在函數(shù)名后跟一對括號(hào)。

      VB對白蘭地使用范圍重新做了規(guī)范,在Basic里把隱含變量都當(dāng)作全局變量,而在VB里對隱含變量都當(dāng)作局部變量。

      VB里的說明語句(Declare),僅支持動(dòng)態(tài)鏈結(jié)庫(DLL)的子程序和無變量函數(shù)。

      使用數(shù)組,必須事先用Dim或Redim進(jìn)行定義。

      二、注釋語句

      在使用注釋語句之前必須先了解注釋的作用,注釋不僅僅是對程序的解釋,有時(shí)它對于程序的調(diào)試也非常有用,譬如說可以利用注釋屏蔽一條語句以觀察變化,發(fā)現(xiàn)問題和錯(cuò)誤。以后注釋語句將是我們在編程里最經(jīng)常用到的語句之一。

      在VB里,注釋語句有兩種,一種是用“Rem”關(guān)鍵字,這跟DOS里的批處理文件的用法一樣,還有一種是利用單引號(hào)“’”,例如:

      ‘Dim a As String 與

      Rem Dim a As String 的作用是一致的。

      三、長語句的分行

      在比較早的版本中,因?yàn)闆]有象C等語言用“;”隔開語句與語句,VB的語句是必須寫在一行里的,不過后來版本的VB里如許用分行符“_”把一個(gè)長語句分成若干行來存放。

      四、條件語句

      如果你學(xué)過任何一種編程的話,都會(huì)知道在程序里控制其流程的有兩種語句,條件與循環(huán),VB自然也不例外,其實(shí)不管哪種語言,條件和循環(huán)的樣子都差不多,只不過各有各的規(guī)矩罷了。

      在條件語句里,我們先來學(xué)習(xí)“If??Then??”語句。

      它的一般語法是:

      If <條件> Then

      <語句> <語句> ???

      End If

      與C 語言不同,VB的條件語句更符合英語的語法,如果Then后面所跟的語句只有一條,可以寫成: If <條件> Then <語句>

      而不用End If。

      有時(shí)我們還會(huì)用到

      If <條件> Then

      <語句> Else

      <語句>

      End If

      更可以在Else里在嵌套If語句,如:

      If <條件> Then

      <語句> Else If

      <語句> Else

      <語句>

      End If

      所有這些可以用一個(gè)表格表示:

      條件1

      True False

      句 條件2

      True False

      語 句 條件3

      True False

      ?

      ?

      ?

      ………………………

      條件N

      True False

      語句N 語句N+1

      用了過多的Else后你會(huì)感到很不方便,而且程序結(jié)構(gòu)也不清晰,所以大多數(shù)的語言還有Select語句幫助解決這個(gè)問題。

      VB里的Select語句的格式是這樣的:

      Select Case <變量名>

      Case <情況1>

      ……

      Case <情況2>

      ……

      Case <情況3>

      ……

      ……

      …… Case Else

      ……

      End Select

      例如:

      Select Case a%

      Case 1

      Print “a=1” Case 2

      Print “a=2” Case Else

      Print “a does not equal to 1 or 2.”

      End Select

      五、循環(huán)語句

      循環(huán)結(jié)構(gòu)是計(jì)算機(jī)語言里一種重要的結(jié)構(gòu),它的應(yīng)用廣泛,最簡單的例子是累加器的作用,還可以用于窮舉法,更直觀的例子是把某件事重復(fù)指定的次數(shù),這樣就不用把要重復(fù)的語句輸入多次,而通過循環(huán)結(jié)構(gòu)完成,非常方便。

      C語言里有一個(gè)“for”循環(huán)語句,VB里也有“For”關(guān)鍵字,作用也差不多,只是VB的“For”語句更容易理解。它的格式是:

      For <循環(huán)變量>=<初賦值> To <終值> [Step <步長>] ?? ??

      Next <循環(huán)變量>

      在默認(rèn)情況下,Step被設(shè)為“1”,可以省略,Step也可以設(shè)為負(fù)值,例如:

      Dim a=0

      For I=1 To 10

      a=a+I

      Next I

      這是一個(gè)最簡單的累加器的例子,把1到10累加在一起,然后賦值給“a”這樣的效果和上面是一樣的,只不過是倒著加罷了,請看:

      Dim a=0

      For I=10 To 1 Step –1

      a=a+I

      Next I

      While語句也是一個(gè)很常用的循環(huán)語句,它的形式很多。

      Do While ?? Loop語句

      While ?? Wend 語句

      Do …… Loop While

      While后面都跟邏輯條件判斷,“Do While ?? Loop語句”和“While ?? Wend 語句”作用相似,都是先判斷While后面的條件是否為“真”,如果為“真”則執(zhí)行里面的語句,如果為“假”,則退出循環(huán),循環(huán)直至條件為“假”終止?!癉o ?? Loop While ”與前兩者的區(qū)別在于,它不管條件的真假,都會(huì)先執(zhí)行“Do”后面的語句,也就是說,它至少執(zhí)行語句一次。

      與While用法相似的還有Until語句,它是直至條件為真則終止循環(huán),句式把While上述三個(gè)語句的While換成Until即可,但是因?yàn)槿菀子浕?,所以我建議只用While即可。Until <條件>可以相當(dāng)于While Not <條件>。

      For循環(huán)和Whlie循環(huán)應(yīng)當(dāng)根據(jù)適當(dāng)?shù)沫h(huán)境使用,它們有時(shí)也可替換。

      六、運(yùn)算操作

      數(shù)學(xué)運(yùn)算

      +:加法運(yùn)算,也適合于字符串的之間的合并運(yùn)算。

      -:加法運(yùn)算。

      *:乘法運(yùn)算。

      /:除法運(yùn)算。

      :整除運(yùn)算。

      Mod:求余運(yùn)算。例如:a Mod b表示a被b整除以后的余數(shù)。

      ^:冪運(yùn)算。A^B表示以A為底的B次方。

      關(guān)系運(yùn)算

      關(guān)系運(yùn)算也稱比較運(yùn)算,它表示不等式的真或假,VB共提供六種運(yùn)算符,分別是=(等于),>(大于),<(小于),>=(大于等于),<=(小于等于)和<>(不等于)。

      邏輯運(yùn)算

      邏輯運(yùn)算是對真或假的運(yùn)算,我將列表說明:

      A B Not A 非

      And 與 Or 或 Xor 異或

      Eqv 相等

      Imp 蘊(yùn)含

      T T F T T F T T

      T F F F T T F F

      F T T F T T F T

      F F T F F F T T

      T――True F――False

      七、數(shù)據(jù)與定義

      本標(biāo)題的內(nèi)容已經(jīng)在上一章向大家詳述過,在這里就不再重復(fù)。

      八、函數(shù)與過程

      函數(shù)與過程有許多相似的地方,它們之間最大也是最本質(zhì)的區(qū)別就在于,函數(shù)有一個(gè)返回值,而過程只是執(zhí)行一系列動(dòng)作,所以可以簡單的把函數(shù)理解成為一個(gè)變量,而VB中的每個(gè)事件都是一個(gè)過程,比如Command1_Click()就是一個(gè)過程。

      因?yàn)樵诔绦蛟O(shè)計(jì)中經(jīng)常會(huì)有重復(fù)的地方,所以把它做成一個(gè)函數(shù)或一個(gè)過程,在使用時(shí)進(jìn)行調(diào)用,可以節(jié)省大量的輸入代碼的時(shí)間,而且使用函數(shù)和過程也便于程序的結(jié)構(gòu)化和修改查看。函數(shù)和過程都可以有參數(shù),也可以沒有參數(shù)。

      關(guān)于函數(shù)和過程我將在以后的章中配合實(shí)例講解,請您繼續(xù)留意VB教程。

      VB教程:第四章-按鈕

      從本章開始我們將正式進(jìn)入VB的編程世界,但這還僅僅是個(gè)開端,要編出功能強(qiáng)大的軟件,還要學(xué)很多東西,那就要看以后的VB高級(jí)教程了,我也得努力學(xué)??!

      按鈕是我們在Windows操作見到最多的控件,它們有著各種各樣的功能:“確認(rèn)”、“取消”、“下一步”等等,這些都是按鈕的表現(xiàn),另外還有很多圖形話的按鈕,其實(shí)它們并沒什么不同,所有的按鈕都是通過單擊(click)事件實(shí)現(xiàn)的,只不過是在外表不同罷了。下面就讓我們建立一個(gè)最簡單的按鈕,雙擊工具箱的CommandButton,將在窗體上建立一個(gè)形如圖4-1的按鈕,它的缺省名(Name屬性)為Command1,我們可以把它改名為cmdExit,把Caption屬性設(shè)為“退出”,然后雙擊,按鈕填寫代碼:

      Private Sub cmdExit_Click()

      Unload Me

      End Sub

      按下F5或者工具條上的播放按鈕,運(yùn)行程序。圖4-2當(dāng)你按下退出按鈕的時(shí)候,就會(huì)自動(dòng)退出程序,原因是當(dāng)你單擊按鈕時(shí)激活了它的Click事件,執(zhí)行“Unload Me”語句,使得窗體被卸載。

      上面舉了一個(gè)比較簡單的例子,下面的例子稍微復(fù)雜些:

      新建窗體,控件布局如圖4-3所示,包括一個(gè)List控件,一個(gè)Text控件和兩個(gè)按鈕(Command1和Command2),(比較簡單的程序我們都采用缺省名),對它們屬性做如下修改:

      List1 Caption=“請輸入你的名字”

      Text1 Text=“”(空字符串)Button1 Caption=“復(fù)原”

      Enabled=False

      Button2 Caption=“清除”

      把使用Button1的Enabled屬性設(shè)為False(假),是使程序在初始時(shí),無法單擊Command1。按F5,運(yùn)行程序,圖4-4,復(fù)原按鈕成為灰色,不可選。

      當(dāng)然現(xiàn)在程序還什么也不能做,下面我們在程序中添加代碼:

      首先在General里聲明全局變量:

      Dim StoreString As String '用來儲(chǔ)存字符串

      ※注意:為什么用全局變量?

      VB里每一個(gè)小過程都相當(dāng)于一個(gè)程序,程序里的變量稱為局部變量,是只能在程序內(nèi)部使用的,而當(dāng)程序調(diào)用結(jié)束后,由于從內(nèi)存中被清除,所以變量儲(chǔ)存的值也就消失了,這里的全局變量是用來在過程中傳遞字符串。

      接著填寫以下代碼: Private Sub Command1_Click()

      Text1.Text = StoreString Command1.Enabled = False

      End Sub

      Private Sub Command2_Click()

      StoreString = Text1.Text Text1.Text = “" '清除

      Command1.Enabled = True

      End Sub

      運(yùn)行程序,如圖4-5。按下“清除”,文本框被清除,按下“復(fù)原”,文本有被恢復(fù),許多程序中的Undo/Redo就是利用這個(gè)原理實(shí)現(xiàn)的,現(xiàn)在知道為什么內(nèi)存越多越好了吧。

      我們在把程序修改一下,把Button2刪除,Button1的Enabled屬性改為True,Caption改為“清除”,填寫代碼:

      Private Sub Command1_Click()

      If Command1.Caption = ”清除“ Then

      StoreString = Text1.Text Text1.Text = ”“ '清除

      Command1.Caption = ”復(fù)原“ Else

      Text1.Text = StoreString Command1.Caption = ”清除“

      End If

      End Sub

      同樣可以上面的功能,但是卻少用了一個(gè)控件,控件使用少的程序啟動(dòng)會(huì)快些。

      下面的例子要更加復(fù)雜些,大家一定都用過Windows附件中的計(jì)算器,它是一個(gè)標(biāo)準(zhǔn)的科學(xué)計(jì)算器,利用VB我們也可以做到,只是沒有那么復(fù)雜,四則運(yùn)算而已。

      先建立一個(gè)新的項(xiàng)目文件,里面包含一個(gè)Form1的窗體。然后,添加控件,包括一個(gè)Text框(Text1),和17個(gè)按鈕,這17個(gè)按鈕使用的名稱都是Command1,只是Index屬性不同,就好象一個(gè)數(shù)組,創(chuàng)立一組按鈕的方法是,先在窗體上建立一個(gè)按鈕(Command1),然后在Command1上擊鼠標(biāo)右鍵,選擇復(fù)制(Copy),然后在窗體上任意部位擊右鍵,選擇粘貼(Paste),系統(tǒng)會(huì)提示是否創(chuàng)建控件組,選擇“是”,重復(fù)上面步驟,直至創(chuàng)立17個(gè)按鈕為止。各控件屬性如下表:

      Text1 BackColor=&H00C0FFFF& Text=“0.”

      Command1 Index 0――16

      Index 0――9 Caption=“0”-“9” Index 10 Caption=“.”

      Index 11 Caption=“=”

      Index 12 Caption=“+”

      Index 13 Caption=“-”

      Index 14 Caption=“×”

      Index 15 Caption=“÷”

      Index 16 Caption=“清除”

      如果想改變一些其他的屬性,比如字體,可以自己定義一下Font屬性,如果相對多個(gè)控件的共同屬性進(jìn)行改變,可以在窗體上按下鼠標(biāo),拖動(dòng),把多個(gè)控件一起選定,然后對它們的共同屬性進(jìn)行修改。

      別看這個(gè)東西小,還費(fèi)了近我兩個(gè)小時(shí)呢,不覺大嘆手生,里面也有些地方很繞彎子,我盡量解釋清楚。

      在編寫程序之前,我們先來回顧一下計(jì)算器的使用。

      按下數(shù)字鍵在液晶屏上會(huì)出現(xiàn)數(shù)字,這是最基本的功能。

      第一次按下運(yùn)算鍵,再按下數(shù)字鍵,將重新輸入第二個(gè)數(shù)字,再次按下運(yùn)算鍵,將算出前兩個(gè)數(shù)的結(jié)果,然后按下數(shù)字鍵,將又重新輸入新的數(shù)字。

      輸入數(shù)字后,按下“等于鍵”將仍輸出原來的數(shù)字,輸入運(yùn)算符和第二個(gè)數(shù)字后在按下“等于”,將得到二者的結(jié)果。然后又重復(fù)第二、三步。

      按下“清除”,數(shù)據(jù)被全部清除。

      了解了這些,我們一步一步實(shí)現(xiàn)。先實(shí)現(xiàn)數(shù)據(jù)的輸入,請看代碼。與未創(chuàng)立組的控件相比,它的事件里多了Index參數(shù),組里所有的對象都使用同一個(gè)事件。先在General里聲明窗體級(jí)全局變量: Dim Num1, Num2 As Single Dim StrNum1, StrNum2 As String Dim FirstNum As Boolean '判斷是否是數(shù)字開頭

      因?yàn)門ext1里是存放字符串的,所以要把輸入的數(shù)據(jù)進(jìn)行運(yùn)算,必須把字符型變量轉(zhuǎn)變?yōu)閷?shí)型變量,分別用Num1、Num2和StrNum1、StrNum2進(jìn)行存放。在Form_Load事件里給變量初賦值:

      Num1 = 0 Num2 = 0 StrNum1 = ”“ StrNum2 = ”“ FirstNum = True

      因?yàn)?7個(gè)按鈕使用的是同一事件,所以我們用一個(gè)Select Case語句區(qū)分各個(gè)按鈕,雙擊任意按鈕輸入代碼:

      Private Sub Command1_Click(Index As Integer)

      Select Case Index

      Case 0 To 9

      If FirstNum Then

      StrNum1 = Str(Index)’實(shí)型轉(zhuǎn)字符型 FirstNum = False’初賦值為假

      Else’非初賦值

      StrNum1 = StrNum1 + Str(Index)

      End If

      Text1.Text = StrNum1’顯示

      <還有其他語句,等待插入>

      End Select

      End Sub

      運(yùn)行程序的話已經(jīng)可以輸入數(shù)據(jù),下面我們來處理小數(shù)點(diǎn)。在General里聲明新的變量:

      Dim PointFlag As Boolean '判斷是否已有小數(shù)點(diǎn)

      我們知道小數(shù)點(diǎn)只能輸入一次,一個(gè)數(shù)據(jù)中不能有多個(gè)小數(shù)點(diǎn)存在,所以需要一個(gè)布爾變量做判斷。

      在Form_Load里進(jìn)行初賦值:

      PointFlag = False

      在Command的單擊事件里接著上面輸入新的代碼:

      Case 10

      If Not PointFlag Then’如果沒有小數(shù)點(diǎn)

      If FirstNum Then’如果是第一個(gè)字符

      StrNum1 = ”0.“ FirstNum = False Else

      StrNum1 = StrNum1 + ”.“

      End If

      Else’已有小數(shù)點(diǎn)

      Exit Sub’則退出單擊事件

      End If

      PointFlag = True Text1.Text = StrNum1

      下面會(huì)復(fù)雜一些,我們先跳過等號(hào),而來處理四則運(yùn)算:

      先在General里聲明新變量:

      Dim Runsign As Integer '儲(chǔ)存運(yùn)算符號(hào)

      Dim SignFlag As Boolean '判斷是否已有運(yùn)算符號(hào)

      然后在Form_Load中進(jìn)行初賦值:

      Runsign = 0 SignFlag = False

      在接下的Command1_Click中繼續(xù)輸入代碼:

      Case 12 To 15

      FirstNum = True’使下一次可以輸入新數(shù)據(jù) PointFlag = False '還原標(biāo)記值

      If SignFlag Then’前面已有運(yùn)算符未運(yùn)算

      Call Run Else

      SignFlag = True StrNum2 = StrNum1’把字符串1復(fù)制給字符串2 StrNum1 = ”“’字符串1清空

      End If

      Runsign = IndexNum2

      Case 3’乘

      equal = Num1 * Num2

      Case 4’除

      equal = Num1 / Num2

      End Select

      StrNum2 = Str(equal)StrNum1 = StrNum2 Text1.Text = StrNum2

      End Sub

      下面是其余的代碼:(在Command1_Click事件里,接著寫)

      Case 11

      If Not SignFlag Then

      Text1.Text = StrNum1 equal = Val(StrNum1)FirstNum = True PointFlag = False Else

      Call Run SignFlag = False

      End If

      Case Else’清除按鈕

      Call ClearData

      里面又用到了一個(gè)ClearData過程,實(shí)際上就是Form_Load里的變量初賦值,代碼如下:

      Sub ClearData()

      Num1 = 0 Num2 = 0 StrNum1 = ”“ StrNum2 = ”“ FirstNum = True PointFlag = False Runsign = 0 SignFlag = False Text1.Text = ”0.“

      End Sub

      這樣完整的程序就完成了,本章介紹了VB的第一個(gè)控件――按鈕,并且舉例,希望你繼續(xù)看下一章――菜單。

      下面給出完整的程序代碼:

      Dim Num1, Num2 As Single

      Dim StrNum1, StrNum2 As String

      Dim FirstNum As Boolean '判斷是否是數(shù)字開頭

      Dim PointFlag As Boolean '判斷是否已有小數(shù)點(diǎn)

      Dim Runsign As Integer '儲(chǔ)存運(yùn)算符號(hào)

      Dim SignFlag As Boolean '判斷是否已有運(yùn)算符號(hào)

      Sub ClearData()

      Num1 = 0

      Num2 = 0

      StrNum1 = ”“

      StrNum2 = ”“

      FirstNum = True

      PointFlag = False

      Runsign = 0 SignFlag = False

      Text1.Text = ”0.“

      End Sub

      Sub Run()

      Num1 = Val(StrNum2)

      Num2 = Val(StrNum1)

      Select Case Runsign

      Case 1

      equal = Num1 + Num2

      Case 2

      equal = Num1Command1.Width)/ 2

      '重疊三個(gè)圖片框

      Picture2.Left = Picture1.Left

      Picture2.Top = Picture1.Top

      Picture3.Left = Picture1.Left

      Picture3.Top = Picture1.Top

      End Sub

      下面我來講一講程序是怎樣運(yùn)行的,我們將用到Text的Change事件,每當(dāng)字符串改變一次就對它進(jìn)行一次檢查,算出已經(jīng)說的字?jǐn)?shù),當(dāng)字?jǐn)?shù)超過10時(shí),下面的紅綠燈會(huì)變成黃色,并且在這時(shí)隨機(jī)抽取一個(gè)數(shù),它在一個(gè)范圍內(nèi)出現(xiàn)的可能是10%,如果在這個(gè)范圍內(nèi)就可以免交罰金,如果不在范圍則繼續(xù),當(dāng)文字超過20的時(shí)候,紅綠燈會(huì)變成紅色,再一次抽取隨機(jī)數(shù)字,步驟同上,如果30個(gè)字已滿,再進(jìn)行一次檢查,如果你真的那么不幸就該罰款了。

      程序的步驟清楚了,我們在來看看程序的要點(diǎn)。由于中文是雙字節(jié)字符,也就是說一個(gè)漢字占兩個(gè)ASC碼的位置,而VB顯然是為英語國家設(shè)計(jì)的用Len函數(shù)無法返回漢字字節(jié),也就是說一個(gè)漢字和和一個(gè)ASC字符在Len函數(shù)中得到的值是一樣的,這就需要特殊處理。用Asc()函數(shù),在括號(hào)內(nèi)放入一個(gè)ASC字符或字符串,它會(huì)把第一個(gè)ASC碼轉(zhuǎn)化為0-255的數(shù)值,而把一個(gè)漢字放入,它的值必然不在0-255,這也就可以作為判定漢字的基礎(chǔ)。我們可以把英文算作半個(gè)漢字。

      下面我們來看看代碼:

      在General 里聲明窗體級(jí)變量:

      Dim Level As Integer

      Private Sub Command1_Click()

      Unload Me End Sub

      Private Sub Text1_Change()

      Dim StrLength As Integer’字符串長度

      Dim RandomNum As Single’隨機(jī)數(shù)

      Dim Str1 As String

      Dim a As String

      Dim i, Temp

      StrLength = 0’每次開始時(shí)把字符串長度還原為0

      a = Text1.Text

      For i = 1 To Len(a)’Len(a)代表字符串的長度

      Temp = Asc(Mid$(a, i, 1))’挨個(gè)取字符

      If Temp > 255 Or Temp < 0 Then’不是ASC碼

      StrLength = StrLength + 2 Else

      StrLength = StrLength + 1

      End If

      Next i

      StrLength = StrLength / 2

      Select Case StrLength

      Case 0 To 9

      Picture1.Visible = True

      Picture2.Visible = False Picture3.Visible = False

      Label2.Caption = ”慢慢說。你還有“ & Str(30StrLength)& ”個(gè)字可以說“

      End If

      Case 20 To 29

      If Level = 2 Then RandomNum = Rnd * 10

      If RandomNum <= 10 And RandomNum > 9 Then

      Text1.Enabled = False

      Label2.Caption = ”很抱歉這是個(gè)誤會(huì)??“

      Command1.Visible = True

      Command1.Caption = ”您可以離開了“

      End If

      Level = 3 Else

      Picture1.Visible = False

      Picture2.Visible = False

      Picture3.Visible = True

      Str1 = ”我已經(jīng)不耐煩了!“

      Label2.Caption = Str1 & ”你還有“ & Str(30-StrLength)& ”個(gè)字可以說“

      End If

      Case Else

      Text1.Enabled = False

      Label2.Caption = ”你已經(jīng)沒有機(jī)會(huì)了!“

      Command1.Visible = True

      Command1.Caption = ”交錢吧,肇事犯!“

      End Select

      End Sub

      中間有幾個(gè)函數(shù)需要解釋一下:

      Mid可以從字符串中取出一部分,返回字符型,格式:

      Mid(字符串,從第幾個(gè)字符開始,取字符的長度)

      Asc可以把字符轉(zhuǎn)換為ASCII碼,格式:

      Asc(字符串)

      Rnd,取得大于0但小于1 的數(shù)值,可以沒有參數(shù)。

      怎么樣,十分簡單吧,我們將在下一次繼續(xù)討論VB的輸入機(jī)制,再見!

      VB教程:第六章(2)-輸入(2)

      在繼續(xù)上面的內(nèi)容時(shí),我想再回顧和強(qiáng)調(diào)幾個(gè)在字符串操作中經(jīng)常函數(shù):

      先是幾個(gè)已經(jīng)接觸過的,Mid(),Asc(),Len(),它們的語法分別是:

      Mid(字符型,起始字符,長度)

      返回子字符串,如果從字符串的第一個(gè)字符取起,起始字符為1,依此類推。

      Asc(字符型)

      返回?cái)?shù)值,如果參數(shù)不是一個(gè)字符,而是字符串(多個(gè)字符),將返回參數(shù)的第一個(gè)字符ASCII值。

      Len(字符型)

      返回字符串的長度。下面我再為你解釋幾個(gè)新的函數(shù):

      Left(字符串,長度)

      將返回字符型,從字符串的第一個(gè)字符向左取字符串,與之相對應(yīng)的是Right(),它將從字符串的最后一個(gè)字符向右取字符串。

      Chr(數(shù)值型)

      該數(shù)值范圍從0-255,返回字符型,如Chr(65)可返回字符“A”,這樣可以輸入一些用鍵盤無法輸入的字符。

      Str(數(shù)值型)

      該函數(shù)把數(shù)值型轉(zhuǎn)換為字符型,也許你覺得數(shù)值“123”和字符串“123”沒什么區(qū)別,但在內(nèi)存中一個(gè)ASCII字符是占一個(gè)字節(jié),也就是說字符串“123”占3個(gè)字節(jié),而當(dāng)數(shù)值“123”是整型時(shí),它占兩個(gè)字符,當(dāng)它是長整型時(shí),占4個(gè)字節(jié)。與之向?qū)?yīng)的是Val(數(shù)值型),它把數(shù)值型轉(zhuǎn)換為字符型。

      上面的函數(shù)都是以后要經(jīng)常用到的,請將它們熟悉。

      上次講到文本框的用處,還有意思嗎?你是否能把上次的程序稍稍變動(dòng)一下,來計(jì)算出輸入的單詞數(shù),提示一下,單詞與單詞之間是用空格分隔開的。

      我們繼續(xù)下面的內(nèi)容。

      上次說到,輸入不僅僅是向文本框輸入字符,凡是從外界向程序傳遞數(shù)據(jù)都可以叫做輸入,我們一一說明白。

      無線鈕,記得我們曾在第一章中完成過我們的第一個(gè)程序――“Hello World!”它就是一種輸入的方法,在設(shè)計(jì)VB程序時(shí)可以通過一組這樣的無線鈕,它們之間互相排斥,也就是說,只能有一個(gè)按鈕被選中。它因?yàn)楹芟鬅o線電收音機(jī)上的按鈕因而得名無線鈕。如果要在一個(gè)窗體內(nèi)放置多組無線鈕必須用Frame控件把它們區(qū)分開來。下面我們在來完成一個(gè)例子,順便熟悉一下另外兩個(gè)處理字符串的函數(shù)――LTrim()和Rtrim(),它們分別用來刪除字符串左邊的空格和右邊的空格,讓我們看看它們是如何工作的。

      程序窗體如圖6-8,由于窗體比較簡單,無需修改更多的屬性,一共有三個(gè)文本框(Text1到3),分別用來顯示輸入字符,顯示把空格換成星號(hào)的字符,和經(jīng)過處理的字符,還有三個(gè)無線鈕(Option1到3),要修改的只有Caption屬性,分別是“刪除左邊的空格”、“刪除右邊的空格”和“刪除兩邊的空格”。因?yàn)榭崭裨谖覀冊谖谋究蛑袩o法看到空格,所以我們通過一個(gè)稱作AddStar的函數(shù)把原有字符串中的空格轉(zhuǎn)換為星號(hào),使我們能夠看到函數(shù)的效果。下面在程序中添加代碼,首先在General中聲明窗體級(jí)變量:

      Dim LTrimmedword$, RTrimmedword$ '刪除左邊空格和右邊空格后的字符串

      Dim LRTrimmedword$ '刪除兩邊空格后的字符串

      然后,我們通過一個(gè)叫做addstar的函數(shù)為字符串加上星號(hào),以前曾說過函數(shù)與過程的分別,函數(shù)會(huì)返回一個(gè)函數(shù)值,所以addstar也就相當(dāng)于一個(gè)變量,其實(shí)這很好理解,就象中學(xué)代數(shù)中的函數(shù),函數(shù)就相當(dāng)于變量Y,而函數(shù)中的參數(shù)則相當(dāng)于自變量X,當(dāng)然可能有很多自變量X1、X2??請?jiān)?,我并不想在這里上數(shù)學(xué)課,因?yàn)槲覅拹耗峭嬉鈨?,特別是上了大學(xué)之后,好在大二以后就再也不會(huì)有數(shù)學(xué)課了,哈哈??

      Function addstar(tempword As String)As String

      Dim charindex% Dim pasteword$ '加星號(hào)后的字符串 For charindex = 1 To Len(tempword)

      If Mid(tempword, charindex, 1)= ” “ Then '如果字符為空格

      pasteword = pasteword + ”*“

      Else: pasteword = pasteword + Mid(tempword, charindex, 1)End If Next addstar = pasteword '返回函數(shù)值

      End Function

      下面的代碼很簡單,并且我為它做了注釋,就不再一一解釋了,我只想簡要的提幾句,Ltrim和Rtrim只有一個(gè)參數(shù)(字符型),另外下面用到了焦點(diǎn)事件,我們曾在第三章中介紹過,當(dāng)Text1得到焦點(diǎn)(GotFocus)時(shí),清空所有的文本框,當(dāng)它失去焦點(diǎn)(LostFocus)時(shí),對字符進(jìn)行addstar并且在Text2中顯示。

      Private Sub Text1_GotFocus()'但焦點(diǎn)于Text1

      '清除所有文本框中的字符 Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“

      End Sub

      Private Sub Text1_LostFocus()

      Dim Origionword As String Origionword = Text1.Text Text2.Text = addstar(Origionword)LTrimmedword = addstar(LTrim(Origionword))RTrimmedword = addstar(RTrim(Origionword))LRTrimmedword = LTrim(RTrim(Origionword))

      End Sub

      Private Sub Option1_Click()

      Text3.Text = LTrimmedword '顯示刪除左空格后的字符串

      End Sub

      Private Sub Option2_Click()

      Text3.Text = RTrimmedword '顯示刪除右空格后的字符串

      End Sub

      Private Sub Option3_Click()

      Text3.Text = LRTrimmedword '顯示刪除兩邊空格后的字符串

      End Sub

      最后結(jié)果如圖6-9。

      與無線鈕相對的是檢查框,在同一范圍內(nèi)一組無線鈕只能有一個(gè)被選中,而檢查框則可以有多個(gè)選擇,就象在添表時(shí),性別那項(xiàng)只能有一個(gè)選擇,而在描述你以前的職業(yè)時(shí)可以有學(xué)生、程序員、家庭教師或者什么,總之有很多選擇,下面我們舉一個(gè)簡單的例子加以說明。

      假設(shè)編寫了一個(gè)共享軟件,在讓用戶注冊的時(shí)候你想知道你的用戶使用的計(jì)算機(jī)情況,你就需要一個(gè)調(diào)查表,為了使這個(gè)調(diào)查表不止枯燥,可以在這個(gè)程序中加入一些圖形。新建一個(gè)項(xiàng)目文件,窗體布局如圖6-10。

      程序很簡單,一共有兩個(gè)框架(Frame1和Frame2),它們的Caption分別為“選擇你的計(jì)算機(jī)擁有的配置”和“這是你的計(jì)算機(jī)系統(tǒng)”,在Frame1有四個(gè)檢查框(Check1到Check4),Caption分別為“網(wǎng)絡(luò)系統(tǒng)”、“鼠標(biāo)”、“密碼保護(hù)”和“電子郵件”,另把Check4的Enabled屬性改為False,使其無效;在Frame2中放置四個(gè)圖片框(Picture1到Picture4)與四個(gè)檢查框向?qū)?yīng),請把所有圖片框的BorderStyle屬性設(shè)為0(無邊框),它們的Picture屬性請根據(jù)上圖,在存放圖標(biāo)的目錄中找到相對的圖標(biāo)。下面是程序代碼:

      Private Sub Check1_Click()

      If Check1.Value Then

      Check4.Enabled =-1 Picture1.Visible =-1

      Else: Check4.Enabled = 0 Picture1.Visible = 0 Check4.Value = 0 Picture4.Visible = 0

      End If

      End Sub

      Private Sub Check2_Click()

      If Check2.Value Then

      Picture2.Visible =-1

      Else: Picture2.Visible = 0

      End If

      End Sub

      Private Sub Check3_Click()

      If Check3.Value Then

      Picture3.Visible =-1

      Else: Picture3.Visible = 0

      End If

      End Sub

      Private Sub Check4_Click()

      If Check4.Value Then

      Picture4.Visible =-1

      Else: Picture4.Visible = 0

      End If

      End Sub

      這個(gè)程序比我們見過的任何程序都簡單,就不再做說明。

      (第六章 未完)

      VB教程:第六章(3)-輸入(3)

      首先,我想先對第六章的拖拖拉拉表示歉意,一是因?yàn)樗鼘?shí)在太長了,二也是因?yàn)槲易约禾珣辛?,今天寫幾個(gè)字,明天添兩筆,以致于寫了三次才將它真正完成,還請大家原諒。

      好,廢話少說,讓我們趕快切入正題。上次我們討論了無線鈕和檢查框的使用方法,相信你已經(jīng)熟悉,因?yàn)樗鼈儗?shí)在太簡單了,現(xiàn)在讓我們繼續(xù)“輸入”的最后幾個(gè)部分。

      滾動(dòng)條(ScrollBar)在視窗中也是一個(gè)不可缺少的部分,由于面積所限,我們不得把屏幕上的內(nèi)容滾來滾去,以顯示大量的內(nèi)容,這就是我們經(jīng)常要用到的滾動(dòng)條。但滾動(dòng)條除去滾動(dòng)窗口,還有一個(gè)很重要的作用――輸入,想想你經(jīng)常用到的一些家用電器上調(diào)節(jié)聲音或別的什么東西的滑塊,你把它滑向大的一方音量就會(huì)增大,而你把它滑向小的一方音量就會(huì)減小,或者一個(gè)控制左右兩個(gè)音箱的均衡器,當(dāng)滑塊在正中央的時(shí)候,兩個(gè)音箱的音量是相同的,當(dāng)你把滑塊偏向一方時(shí),音箱的音量有了大小之分,在Windows操作中,我們也經(jīng)常要用到類似的效果。

      在VB中提供了兩個(gè)常規(guī)的滾動(dòng)條控件――Vscroll和Hscroll,分別代表垂直的和水平的滾動(dòng)條,它們只不過是方向不同而已,而它們的屬性,以及會(huì)發(fā)生的事件都是相同的。,滾動(dòng)條有幾個(gè)特殊的屬性:

      Value屬性,當(dāng)滑塊挪動(dòng)后停在某一位置時(shí),就改變了滾動(dòng)條的Value屬性。

      Max和Min屬性,用來設(shè)置滾動(dòng)條的最大值和最小值,譬如把Max設(shè)為100,把Min設(shè)為0時(shí),滾動(dòng)條的Value就在0到100之間移動(dòng),當(dāng)Max和Min倒置時(shí),滾動(dòng)條的方向也會(huì)相反,也就是說,當(dāng)Max

      SmallChange和LargeChange屬性,當(dāng)鼠標(biāo)在滾動(dòng)條兩頭的箭頭上單擊時(shí),就會(huì)把滾動(dòng)條向相應(yīng)的方向挪動(dòng)一點(diǎn),這時(shí)用到的就是SmallChange屬性,當(dāng)你把它設(shè)為1時(shí),每點(diǎn)一下,滾動(dòng)條的Value就改變1;當(dāng)鼠標(biāo)在滾動(dòng)條上點(diǎn)擊時(shí),用到的就是LargeChange,當(dāng)設(shè)為10時(shí),每點(diǎn)擊一下滾動(dòng)條,Value就改變10。

      下面我們看一個(gè)實(shí)例。

      大家都知道,物體之所以會(huì)有顏色是因?yàn)槲矬w表面的材料吸收了太陽光中的部分色光,而還有部分色光沒被吸收而被反射回來,它就成了我們看到的顏色,黑色就是物體吸收了所有的太陽光的所有色光,沒有反射顏色,所以在我們看來是黑的,而當(dāng)物體反射了所有的色光,我們看到的就是白色。在計(jì)算機(jī)中,顏色的表示就是象我們剛才描述的樣子,它把顏色分為紅(R)、綠(G)和藍(lán)(B)。眾所周知,計(jì)算機(jī)的機(jī)器語言是使用二進(jìn)制表示的,為了方便查閱我們看到的往往是十六進(jìn)制代碼,一個(gè)字節(jié)包括兩位十六進(jìn)制數(shù)字,從0-255(十六進(jìn)制表示0-FF),而一個(gè)字節(jié)是由八位二進(jìn)制數(shù)值表示(2^8,2的8次方),計(jì)算機(jī)中用分別用一個(gè)字節(jié),也就是八位表示一種顏色,和在一起也就是三個(gè)字節(jié)(24位)表示所有的顏色,這就是我們平時(shí)常說的24位真彩,它一共可以組成256×256×256(2^24)種顏色,對于我們的肉眼,是根本分辨不出來相鄰兩個(gè)不同的顏色的,比如用FFFFFF表示白色,就好象我們剛才說的物體反射了所有的色光,相反的可以用000000表示黑色,它吸收了所有的色光,還可以用FF0000表示紅色,在HTML語言中就是這樣表示顏色的。

      小知識(shí):現(xiàn)在你可以根據(jù)你的顯卡的顯存來計(jì)算一下顯卡在24位真彩下可以以多大的分辨率顯示,計(jì)算是這樣的,用顯存的字節(jié)數(shù)÷3(24位色)=顯示器寬的象素?cái)?shù)×顯示器高的象素?cái)?shù),寬的象素?cái)?shù):高的象素?cái)?shù)=4:3,比如4兆顯存,就應(yīng)該是4×1024×1024÷3=1365×1024。

      在下面的小程序中,我們通過三個(gè)滾動(dòng)條分別代表R、G、B,滾動(dòng)滾動(dòng)條,將在右邊的圖片框中顯示相應(yīng)的顏色,并且在下面的文本框中顯示顏色的十六進(jìn)制數(shù)值。

      現(xiàn)在,新建一個(gè)項(xiàng)目文件,在Form1中如圖6-12布局控件,各控件屬性如下表:

      HsrollBar Name Hscroll1

      Index 0、1、2

      (共同屬性)

      Max 255

      Min 0

      LargeChange 10

      SmallChange 1

      Label Name Label1

      Index 0、1、2

      Index 0 Caption “紅:”

      Index 1 Caption “綠:”

      Index 2 Caption “藍(lán):”

      Label Name Label2

      Caption “顏色值”

      TextBox Name Text1

      Text “”

      PictureBox Name Picuture1

      為了把十進(jìn)制數(shù)值換成十六進(jìn)制數(shù)值,要使用一個(gè)叫做Hex()的函數(shù),它把十進(jìn)制數(shù)值轉(zhuǎn)化為十六進(jìn)制的字符,但對于只有一位的十六進(jìn)制字符,這個(gè)函數(shù)并不在高位補(bǔ)零,為了視覺上的正確,我設(shè)計(jì)了一個(gè)小函數(shù)幫助它給一位的十六進(jìn)制字符補(bǔ)零.程序代碼很簡單,見下:

      Dim RedStr, GreenStr, BlueStr As String’RGB的字符

      Dim RedNum, GreenNum, BlueNum As Integer’RGB的數(shù)值

      Function GetColorValue()As String

      ‘獲得輸入值 RedNum = HScroll1(0).Value GreenNum = HScroll1(1).Value BlueNum = HScroll1(2).Value

      RedStr = Hex(RedNum)If Len(RedStr)< 2 Then RedStr = ”0“ + RedStr’補(bǔ)零

      GreenStr = Hex(GreenNum)If Len(GreenStr)< 2 Then GreenStr = ”0“ + GreenStr

      BlueStr = Hex(BlueNum)If Len(BlueStr)< 2 Then BlueStr = ”0" + BlueStr

      GetColorValue = RedStr + GreenStr + BlueStr’合并

      End Function

      Private Sub Form_Load()

      ‘初始化程序

      Text1.Text = GetColorValue Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum)'RGB函數(shù)返回顏色值

      End Sub

      Private Sub HScroll1_Change(Index As Integer)

      ‘當(dāng)滾動(dòng)條被改變時(shí)

      Text1.Text = GetColorValue Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum)

      End Sub

      運(yùn)行如圖6-13。

      列表框(ListBox)和復(fù)合列表框(ComboBox)也是我們經(jīng)常見到的視窗元素,我們從它所列示的條目中選出所需的,兩種列表框只是在外觀上略有不同,但從本質(zhì)和操作方法來說它們是很相象的,它們也有一些特殊的屬性:

      List屬性,你可以利于該屬性象列表框或復(fù)合列表框中添加條目,但也可以在程序設(shè)計(jì)中通過AddItem方法添加。

      第二篇:vb綜合實(shí)驗(yàn)

      綜 合 性 實(shí) 驗(yàn)

      實(shí) 驗(yàn) 名 稱:關(guān)閉標(biāo)題包含指定字符的所有窗口 專 業(yè) 班 級(jí): 學(xué) 生 姓 名:

      學(xué) 號(hào):

      指 導(dǎo) 教 師:

      需求分析:

      關(guān)閉標(biāo)題包含指定字符的所有窗口,使我們能更方便的關(guān)閉很多窗口,避免了一個(gè)一個(gè)關(guān)閉的麻煩 運(yùn)行環(huán)境:

      WINDOWS XP系統(tǒng);VB6.0; 3開發(fā)工具和編程語言

      Visual Basic6.0語言; 4 系統(tǒng)設(shè)置:

      下例程序運(yùn)行后,單擊按鈕關(guān)閉標(biāo)題包含“記事本”的所有窗口

      '在窗體上放置 3 個(gè)控件,所有控件無需設(shè)置任何屬性,全部采用默認(rèn)設(shè)置: ' Command1,Label1,Text1

      Private Declare Function FindWindowEx Lib “user32” Alias “FindWindowExA”(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String)As Long Private Declare Function PostMessage Lib “user32” Alias “PostMessageA”(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)As Long Private Declare Function GetWindowText Lib “user32” Alias “GetWindowTextA”(ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long)As Long Private Sub Form_Load()'設(shè)置控件初始狀態(tài),實(shí)際可以在窗體設(shè)計(jì)階段完成 Dim S As Single

      Me.Caption = “關(guān)閉指定窗口”: Text1.Text = “記事本” Label1.AutoSize = True: Label1.Caption = “窗口標(biāo)題包含的字符:” Command1.Caption = “關(guān)閉指定窗口”

      S = Label1.Height Label1.Move S, S Text1.Move S + Label1.Width, S * 0.5, S * 8, S * 2 Command1.Move S, S * 3, S * 8, S * 2 End Sub

      Private Sub Command1_Click()Dim hWnds As Long, nCap As String, nFind As String Dim S As Long, S1 As Long, nLong()As Long, nCount As Long

      S = 255: nFind = Text1.Text Do hWnds = FindWindowEx(0, hWnds, vbNullString, vbNullString)If hWnds = 0 Then Exit Do nCap = String(S + 1, “ ”)GetWindowText hWnds, nCap, S S1 = InStr(nCap, Chr(0))If S1 > 0 Then nCap = Left(nCap, S1-1)If InStr(nCap, nFind)> 0 Then ' PostMessage hWnds, &H10, 0, 0 '不在這里發(fā)送關(guān)閉消息,是為了防止漏查 nCount = nCount + 1 ReDim Preserve nLong(1 To nCount)nLong(nCount)= hWnds End If Loop

      For S = 1 To nCount PostMessage nLong(S), &H10, 0, 0 '發(fā)送關(guān)閉窗口消息 DoEvents Next End Sub 5參考文獻(xiàn):

      龔培增,楊志強(qiáng)Visual Basic程序設(shè)計(jì)教程(

      第三篇:VB綜合實(shí)訓(xùn)

      VB換膚(GUI界面)

      第一種方法:后綴為.she文件的皮膚

      SkinSharp換膚庫不是COM組件,無需進(jìn)行系統(tǒng)注冊,僅以標(biāo)準(zhǔn)dll方式存在。

      1.打開vb6開發(fā)環(huán)境,新建一個(gè)工程文件,并存檔

      2.將一個(gè)名為“膚色”的文件夾和一個(gè)名為SkinH_VB6.dll的文件拷貝到工程所在的目錄

      3.外部函數(shù)接口api函數(shù)原型,把這原形放在通用聲明段

      Private Declare Function SkinH_AttachEx Lib “SkinH_VB6.dll”(ByVal lpSkinFile As String, ByVal lpPasswd As String)As Long

      4.若需要什么樣的皮膚(即.she文件)就在相應(yīng)的事件(比喻在Form_Load())中輸入下面的內(nèi)容:

      SkinH_AttachEx App.Path & “/皮膚/vista.she”, “ ”

      app.path:系統(tǒng)字串常量,返回工程所在的路徑。

      皮膚:是跟工程在同一目錄下的一個(gè)文件夾

      vista.she:皮膚文件,可以把網(wǎng)上下載的.she文件放在同目錄下用時(shí),只接按上四步驟即可。

      第二種方法:ActiveSkin 4.3軟件的應(yīng)用??梢宰约焊钠つw

      1.安裝ActiveSkin 4.3。同其它軟件安裝一樣。

      2.漢化該軟件。直接運(yùn)行setup.exe(漢化的安裝文件)。點(diǎn)下一步直至完成

      3.新建一個(gè)VB工程文件,在工具箱灰白色地方右鍵單擊,選擇[部件],在部件對話框中勾選ActiveSkin 4.3后單擊[應(yīng)用][確定]

      4.在出現(xiàn)的兩個(gè)控件中選擇拖入到窗體上。右鍵單擊,選擇[編輯皮膚]即可到ActiveSkin 4.3中編輯皮膚

      5.Label控件必須使用該部件給的ab控件來替換。原本的A是不會(huì)顯示

      6.選擇相應(yīng)的事件(如Form_Load())。在該事件中輸入:

      Skin1.ApplySkin Me.hWnd

      7.如果要移植你的程序到別的機(jī)器上運(yùn)行,請編譯打包。因?yàn)樵撈つw需要系統(tǒng)其它文件來支持。所以你可以選擇VB-PowerWrap進(jìn)行VB程序的封裝

      VB與ACCESS2003數(shù)據(jù)庫連接相關(guān)步驟:

      第一步:建立連接

      1.引用相關(guān)組件:Microsoft ActiveX Data Objects 2.0 Library。Microsoft ADO Data Control 6.0 2.在通用聲明段申明:Dim mConn As ADODB.Connection 3.在對應(yīng)的事件(如Form_Click())中:set mConn=New ADODB.Connection或Dim mConn As New ADODB.Connection 4.設(shè)置其連接字串(與磁盤上的MDB文件建立連接):

      mConn.ConnectionString=“Provider=Microsoft.jet.oledb.4.0;Data Source=” & App.Path & “RSData.mdb” 5.打開連接:mConn.Open 6.測試連接是否成功:if mConn.State=adStateOpen then msgbox “數(shù)據(jù)庫已經(jīng)連接成功!” else msgbox “數(shù)據(jù)庫連接不成功!” 以上連接方法是在事件里完成,也可以把連接做一個(gè)過程,需要連接時(shí)直接帶參調(diào)用也可。如在模塊中這樣定義

      Public conn As New ADODB.Connection Public Function DBConnection(FileName As String)As Boolean

      Set conn = New ADODB.Connection conn.ConnectionString = “provider=microsoft.jet.oledb.4.0;” & “data source=” & FileName

      conn.Open

      If conn.State = adStateOpen Then

      DBConnection = True

      Else

      DBConnection = False

      End If End Function 然后回事件中調(diào)該函數(shù)。其相應(yīng)代碼如下:

      Private Sub Command2_Click()

      CommonDialog1.ShowOpen

      Text1.Text = CommonDialog1.FileName

      If DBConnection(Text1.Text)Then

      MsgBox “連接成功!”

      Else

      MsgBox “連接失?。 ?/p>

      End If End Sub

      第二步:從數(shù)據(jù)庫中取出記錄,綁定到相對應(yīng)的控件(Microsoft DataGrid Control 6.0(SP6)(OLEDB))中

      1.在通用聲明段定義記錄對象:

      Dim rs As New ADODB.Recordset 2.在相應(yīng)的事件(如Form_Click())中定義:

      Set rs = New ADODB.Recordset Dim sql As String

      sql = “select * from 部門表” rs.CursorLocation = adUseClient rs.Open sql, mConn, 1, 3

      3.在窗體上從部件中找到Microsoft DataGrid Control 6.0(SP6)(OLEDB)并加載到工具箱上,然后產(chǎn)生一個(gè)實(shí)體對象,其名稱為DataGrid1 Set DataGrid1.DataSource = mRst.DataSource

      注意:游標(biāo)與鎖

      0=adopenForwardonly:僅向前游標(biāo) — 除僅允許在記錄中向前滾動(dòng)之外,其行為類似動(dòng)態(tài)游標(biāo)。這樣,當(dāng)需要在 Recordset 中單程移動(dòng)時(shí)就可提高性能。

      1=adopenkeyset:鍵集游標(biāo) — 其行為類似動(dòng)態(tài)游標(biāo),不同的只是禁止查看其他用戶添加的記錄,并禁止訪問其他用戶刪除的記錄,其他用戶所作的數(shù)據(jù)更改將依然可見。它始終支持書簽,因此允許 Recordset 中各種類型的移動(dòng)。

      2=adopenDynamic:動(dòng)態(tài)游標(biāo) — 用于查看其他用戶所作的添加、更改和刪除,并用于不依賴書簽的 Recordset 中各種類型的移動(dòng)。如果提供者支持,可使用書簽。3=adopenstatic:靜態(tài)游標(biāo) — 提供記錄集合的靜態(tài)副本以查找數(shù)據(jù)或生成報(bào)告。它始終支持書簽,因此允許 Recordset 中各種類型的移動(dòng)。其他用戶所作的添加、更改或刪除將不可見。這是打開客戶端(ADOR)Recordset 對象時(shí)唯一允許使用的游標(biāo)類型。

      mRst.CursorLocation = adUseClient:使用由本地游標(biāo)庫提供的客戶端游標(biāo)

      mRst.CursorLocation = adUseServer 默認(rèn)值。使用數(shù)據(jù)提供者或驅(qū)動(dòng)程序提供的游標(biāo)。

      1=adLockReadOnly 默認(rèn)值,只讀。無法更改數(shù)據(jù)。

      2=adLockPessimistic 保守式記錄鎖定(逐條)。提供者執(zhí)行必要的操作確保成功編輯記錄,通常采用編輯時(shí)立即鎖定數(shù)據(jù)源的記錄的方式。

      3=adLockOptimistic 開放式記錄鎖定(逐條)。提供者使用開放式鎖定,只在調(diào)用 Update 方法時(shí)鎖定記錄。

      4=adLockBatchOptimistic 開放式批更新。用于與立即更新模式相反的批更新模式。

      第三步:向數(shù)據(jù)庫中寫數(shù)據(jù)(找一個(gè)相應(yīng)的事件,如Command1_Click())

      Dim bmid As String,bmmc As String,sql As String Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset bmid = Text1.Text:bmmc = Text2.Text conn.ConnectionString = “provider=microsoft.jet.oledb.4.0;data source=” & App.Path & “rsdata.mdb” conn.Open

      On Error GoTo cancel: sql = “insert into 部門表(部門ID,部門名稱)values('” + bmid + “','” + bmmc + “')” rs.Open sql, conn

      cancel:

      If conn.Errors.Count = 0 Then

      Else

      MsgBox “寫數(shù)據(jù)有問題,主鍵重復(fù)”

      End If 除了用SQL語句增加庫記錄以外,也可以用下面的方法來增加庫記錄

      rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic rs.Open “部門表”, conn, , , adCmdTable rs.AddNew rs.Fields(0)= bmid rs.Fields(1)= bmmc rs.Update 第四步:刪除數(shù)據(jù)庫中的一條記錄(找一個(gè)相應(yīng)的事件,如Command2_Click())

      Private Sub command2_click()Dim sql As String Dim conn As New ADODB.Connection Set rst = New ADODB.Recordset

      Dim bmid As String bmid = Trim(DataGrid1.Columns(0))conn.ConnectionString = “provider=microsoft.jet.oledb.4.0;data source=” & App.Path & “rsdata.mdb” conn.Open

      sql = “delete from 部門表 where 部門ID='” + bmid + “'” rst.Open sql, conn, 1, 3

      sql = “select * from 部門表”

      rst.CursorLocation = adUseClient

      rst.Open sql, conn, 1, 3 if not rst.eof()then

      rst.movenext end if

      Set DataGrid1.DataSource = rst.DataSource set rst=nothing set conn=nothing End sub 第五步:更改數(shù)據(jù)庫中的信息(找一個(gè)相應(yīng)的事件,如Command1_Click())Private Sub Command1_Click()Dim sql As String Dim conn As New ADODB.Connection Set rst = New ADODB.Recordset Dim s As String

      s = “實(shí)驗(yàn)中心”

      conn.ConnectionString = “provider=microsoft.jet.oledb.4.0;data source=” & App.Path & “rsdata.mdb” conn.Open

      sql = “update 部門表 set 部門名稱='” + s + “' where 部門ID='001'” rst.Open sql, conn End Sub

      第一步:建立連接

      1.引用相關(guān)組件:Microsoft ActiveX Data Objects 2.0 Library。Microsoft ADO Data Control 6.0 Dim mConn As ADODB.Connection Private Sub Form_Click()set mConn=New ADODB.Connection或Dim mConn As New ADODB.Connection mConn.ConnectionString=“Provider=Microsoft.jet.oledb.4.0;Data Source=” & App.Path & “Police Information.mdb” mConn.Open if mConn.State=adStateOpen then msgbox “數(shù)據(jù)庫已經(jīng)連接成功!” else msgbox “數(shù)據(jù)庫連接不成功!” End Sub 以上連接方法是在事件里完成,也可以把連接做一個(gè)過程,需要連接時(shí)直接帶參調(diào)用也可。如在模塊中這樣定義

      Public conn As New ADODB.Connection Public Function DBConnection(FileName As String)As Boolean

      Set conn = New ADODB.Connection

      conn.ConnectionString = “provider=microsoft.jet.oledb.4.0;” & “data source=” & FileName

      conn.Open

      If conn.State = adStateOpen Then

      DBConnection = True

      Else

      DBConnection = False

      End If End Function 然后回事件中調(diào)該函數(shù)。其相應(yīng)代碼如下:

      Private Sub Command2_Click()

      CommonDialog1.ShowOpen

      Text1.Text = CommonDialog1.FileName

      If DBConnection(Text1.Text)Then

      MsgBox “連接成功!”

      Else

      MsgBox “連接失敗!”

      End If End Sub

      第四篇:VB綜合實(shí)驗(yàn)7_08_09

      VB程序設(shè)計(jì)基礎(chǔ)綜合性實(shí)驗(yàn)

      (七)-數(shù)組

      (班級(jí):學(xué)號(hào):姓名:)

      該綜合實(shí)驗(yàn)是在學(xué)生完成前面的實(shí)驗(yàn),初步掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法。在此基礎(chǔ)上,通過本次綜合實(shí)驗(yàn)掌握數(shù)組的聲明和數(shù)組元素的引用,掌握固定數(shù)組和動(dòng)態(tài)數(shù)組的使用方法。

      1.實(shí)驗(yàn)?zāi)康耐ㄟ^本次綜合實(shí)驗(yàn)掌握數(shù)組的聲明和數(shù)組元素的引用,掌握固定數(shù)組和動(dòng)態(tài)數(shù)組的使用方法,學(xué)會(huì)利用數(shù)組解決一些較為復(fù)雜的問題。

      2.實(shí)驗(yàn)內(nèi)容

      1)創(chuàng)建一個(gè)應(yīng)用程序,要求:用隨機(jī)數(shù)產(chǎn)生10個(gè)整數(shù)(其取值范圍為1~100),存放在數(shù)組x中,查找x數(shù)組中的最大元素及最小元素,并將最大元素及最小元素分別與數(shù)組的第1個(gè)和最后一個(gè)元素交換,分別輸出x數(shù)組交換前后各元素的值。

      2)讀入10個(gè)整數(shù)到a[10],然后輸入一個(gè)整數(shù)m,(設(shè)數(shù)組a中各元素均不相同且m一定在a中),將與m相等的元素放置到數(shù)組的最后位置,其它元素的相對位置保持不變,輸出數(shù)組。

      3.實(shí)驗(yàn)要求:

      1).掌握數(shù)組的聲明和數(shù)組元素的引用;

      2).掌握固定數(shù)組和動(dòng)態(tài)數(shù)組的使用方法;

      4.實(shí)驗(yàn)報(bào)告的要求

      1)實(shí)驗(yàn)?zāi)康母鶕?jù)教材和和課堂學(xué)習(xí)的知識(shí)要點(diǎn),列出本次實(shí)驗(yàn)要達(dá)到的目的。

      2)實(shí)驗(yàn)內(nèi)容

      描述實(shí)驗(yàn)的具體內(nèi)容,包括實(shí)驗(yàn)題目要求、實(shí)驗(yàn)過程和步驟。

      3)設(shè)計(jì)和分析

      程序設(shè)計(jì)說明,包括運(yùn)行環(huán)境、界面設(shè)計(jì)、算法描述、流程圖等。

      4)代碼設(shè)計(jì)

      經(jīng)調(diào)試正確的源程序。

      5)結(jié)果討論

      (1)具體分析程序的運(yùn)行情況,包括對不同測試數(shù)據(jù)的運(yùn)行結(jié)果,最后對運(yùn)行結(jié)果進(jìn)行分析。

      (2)通過此次實(shí)驗(yàn),你有什么體會(huì)、有哪些收獲。

      5.遞交實(shí)驗(yàn)的相關(guān)文件

      第五篇:綜合學(xué)習(xí)資料

      綜合學(xué)習(xí)探究

      1.在“獻(xiàn)給母親的歌”的語文綜合性學(xué)習(xí)活動(dòng)中,林曉梅同學(xué)深情地贊美了自己的母親。

      請你參照畫線的文字,展開聯(lián)想想像,仿寫一個(gè)句子,同唱一首獻(xiàn)給母親的歌。母親得知我生病,忽匆匆趕到我的病床前。我微微睜開雙眼,發(fā)現(xiàn)母親正慈祥地看著我,那是一種怎樣的眼神啊!那是晨曦對嬌花的沐浴,那是春風(fēng)對碧水的輕撫,那是①冬天陽光

      對白雪的親吻②明月對清泉的細(xì)語。

      2、某學(xué)校為幫助貧困山區(qū)的失學(xué)兒童重返課堂,要在全校開展一次獻(xiàn)愛心捐款、捐物、捐書活動(dòng)。請你為這次活動(dòng)擬一條校園標(biāo)語(至少用一種修辭手法)。

      (1)獻(xiàn)上一片愛心,托起一片希望;(2)或捐出一本圖書,送去一片陽光;(3)捐出一

      件衣物,送去一份溫暖。

      3、學(xué)校舉辦的“成長與讀書”活動(dòng)進(jìn)行到“讀古人詩文,明做人道理”的環(huán)節(jié)時(shí),主持

      人安排了《曹劌論戰(zhàn)》和《過零丁洋》的朗誦,請你為連接這兩個(gè)朗誦寫幾句串場詞。

      剛才我們欣賞了某某同學(xué)朗誦的《曹判論戰(zhàn)》,如果說,曹劌在國家危難之際挺身而出,讓我們看到了古人“天下興亡,匹夫有責(zé)”的愛國情懷;那么,文天祥氣壯山河的詩句又會(huì)讓

      我們看到古代仁人志士舍生取義的高尚美德。下面就讓我們來欣賞下一位同學(xué)朗誦的《過零

      丁洋》。

      4.長江中學(xué)學(xué)生會(huì)準(zhǔn)備開展以“魅力語文”為主題的活動(dòng),假如你是該校的一名學(xué)生,一定會(huì)積極地參與到活動(dòng)中去:相信你能完成以下任務(wù)。

      (1)如果你來策劃,你準(zhǔn)備設(shè)計(jì)哪些活動(dòng)項(xiàng)目?

      項(xiàng)目一:編演課本劇

      項(xiàng)目二:對聯(lián)知識(shí)講座

      項(xiàng)目三:詩歌朗誦會(huì)

      (2)請你從自己設(shè)計(jì)的幾個(gè)項(xiàng)目中選一項(xiàng),寫出開展這項(xiàng)活動(dòng)的一個(gè)主要環(huán)節(jié),并陳述設(shè)計(jì)該

      環(huán)節(jié)的理由。

      項(xiàng)目名稱:對聯(lián)知識(shí)講座

      主要環(huán)節(jié):讓主講者與學(xué)生互動(dòng)對對聯(lián)

      理由:可以增強(qiáng)活動(dòng)的互動(dòng)性、趣味性

      5.考試前夕,在老師的指導(dǎo)下,你所在的班級(jí)經(jīng)過一段時(shí)間的籌備,將舉行“迎考試、苦拚

      搏、創(chuàng)佳績”的主題班會(huì)。你被老師指定為班會(huì)的主持人。按照預(yù)定程序,在頒發(fā)了“學(xué)習(xí)

      進(jìn)步顯著獎(jiǎng)”之后,要讓獲獎(jiǎng)?wù)呲w偉同學(xué)介紹成績提高的經(jīng)驗(yàn)。請你展開聯(lián)想或想象寫串聯(lián)

      我們?yōu)橼w偉等幾名同學(xué)頒發(fā)了“學(xué)習(xí)進(jìn)步顯著獎(jiǎng)”,對我們?nèi)松兄匾绊懙闹锌季鸵搅?/p>

      (迎中考),讓我們用積極進(jìn)取的心態(tài)、刻苦拼搏的精神認(rèn)真過好每一天(苦拼搏),用優(yōu)異的成績給自己、給關(guān)心我們的人一個(gè)驚喜(創(chuàng)佳績)。下面我們用掌聲有請趙偉同學(xué)介紹他成績提高的經(jīng)驗(yàn)。

      下載vb學(xué)習(xí)綜合資料word格式文檔
      下載vb學(xué)習(xí)綜合資料.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        九年級(jí)綜合學(xué)習(xí)資料

        1、歲月如歌 仿佛還是昨天,我們興高采烈地路過初中大門,可一眨眼,三年的學(xué)習(xí)時(shí)光已悄然逝去,今天,朝夕相處的同學(xué),老師,依依不舍地相聚在離別的路口,讓我們再次回眸那些一起歡笑,共同......

        VB學(xué)習(xí)心得體會(huì)

        VB學(xué)習(xí)心得體會(huì) VB學(xué)習(xí)>心得體會(huì) VB是一門程序設(shè)計(jì)語言,也需要一定的英語基礎(chǔ)。VB既能充實(shí)我們的生活,武裝我們的頭腦,鍛煉我們的意志,又能在以后需要的時(shí)候成為幫助我們成功的......

        VB學(xué)習(xí)心得體會(huì)

        篇一:vb學(xué)習(xí)的心得體會(huì) vb學(xué)習(xí)的心得體會(huì) ————?jiǎng)熗?這學(xué)期選修了vb這門學(xué)科,想從學(xué)習(xí)中對計(jì)算機(jī)有更深刻的認(rèn)知,也對我大學(xué)中的2級(jí)考試奠定基礎(chǔ)。那么談?wù)勥@學(xué)期的學(xué)習(xí)......

        VB學(xué)習(xí)札記

        VB學(xué)習(xí)札記 在大二上學(xué)期學(xué)習(xí)過VB.NET,但由于將近1年時(shí)間沒有接觸,本學(xué)期剛開學(xué)時(shí)vb水平已經(jīng)退化到?jīng)]學(xué)過的水平了。所以,必須要利用前3周來復(fù)習(xí)已經(jīng)學(xué)過的知識(shí),一邊做練習(xí)一邊......

        VB指導(dǎo)學(xué)習(xí)

        2005-7-24 VB指導(dǎo)學(xué)習(xí) 1、if語句的另一種寫法: if num=10 then print num 當(dāng)then后面(同一行)有執(zhí)行語句時(shí),if語句不能加end if 如有end if,則then后(同一行)不能有語句 2、兩條語......

        VB學(xué)習(xí)心得體會(huì)

        VB學(xué)習(xí)心得體會(huì) 這學(xué)期選修了VB這門學(xué)科,想從學(xué)習(xí)中對計(jì)算機(jī)有更深刻的認(rèn)知,也對我大學(xué)中的2級(jí)考試奠定基礎(chǔ)。那么談?wù)勥@學(xué)期的學(xué)習(xí)中對vb的認(rèn)知和心體會(huì)。 通過學(xué)習(xí)vb我基本......

        VB綜合實(shí)驗(yàn)8_08_095篇

        VB程序設(shè)計(jì)基礎(chǔ)綜合性實(shí)驗(yàn)(八)-數(shù)組的應(yīng)用 (班級(jí):學(xué)號(hào):姓名:) 該綜合實(shí)驗(yàn)是在學(xué)生完成前面的實(shí)驗(yàn),初步掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)方法。在此基礎(chǔ)上,通過本次綜合實(shí)驗(yàn)......

        小學(xué)生語文綜合學(xué)習(xí)資料

        小學(xué)生語文綜合學(xué)習(xí)資料 【成語透視】 一敗如水 膽小如鼠 引狼入室 風(fēng)馳電掣 刀山火海 一貧如洗 料事如神 視死如歸 對答如流 揮金如土 如履薄冰 如日中天 勢如破竹穩(wěn)如泰山......