答:VisualBasic有三種版本,各自滿足不同的開(kāi)發(fā)需要。
1.VisualBasic學(xué)習(xí)版使編程人員輕松開(kāi)發(fā)Windows95和WindowsNT(R)的應(yīng)用程序。該版本包括所有的內(nèi)部控件連同Grid、Tab和Data_Bound控件。學(xué)習(xí)版提供的文檔有《程序員指南》、聯(lián)機(jī)幫助及VisualBasic《聯(lián)機(jī)手冊(cè)》。
2.專業(yè)版為專業(yè)編程人員提供了一整套進(jìn)行開(kāi)發(fā)的功能完備的工具。該版本包括學(xué)習(xí)版的全部功能連同ActiveX控件,還包括Internet控件和CrystalReportWriter。專業(yè)版提供的文檔有《程序員指南》、聯(lián)機(jī)幫助、《部件工具指南》。
3.企業(yè)版使得專業(yè)編程人員能夠開(kāi)發(fā)功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。該版本包括專業(yè)版的全部功能連同自動(dòng)化管理器、部件管理器、數(shù)據(jù)庫(kù)管理工具、MicrosoftVisualSourceSafe(TM)面向工程版的控制系統(tǒng)等等。企業(yè)版提供的文檔包括專業(yè)版的所有文檔,還有《客戶/服務(wù)器應(yīng)用程序開(kāi)發(fā)指南》和SourceSafeUser'sGuide。
問(wèn):安裝Visualbasic需要哪些硬件和軟件?
答:分別需要,
1.MicrosoftWindowsNT3.51或更新的版本,或MicrosoftWindows95;80486或更高的微處理器。
2.如果是全安裝,則至少需要50MB的硬盤(pán)空間。
3.一個(gè)CD-ROM驅(qū)動(dòng)器。
4.MicrosoftWindows支持的VGA或更高分辨率的屏幕。
5.16MBRAM。
6.鼠標(biāo)或其它定點(diǎn)設(shè)備。
問(wèn):如何得到關(guān)于CrystalReports的技術(shù)支持?
答:如果您在安裝CrystalReports時(shí)發(fā)生問(wèn)題,請(qǐng)與微軟公司聯(lián)系。
如果您需要得到其他方面的技術(shù)支持,請(qǐng)直接和Seagate公司聯(lián)系。
Seagate公司的網(wǎng)頁(yè)是http://www.crystalinc.com
或http://www.img.seagatesoftware.com。
Seagate公司的技術(shù)支持電話是:01-604-669-8379或01-800-877-2340。
問(wèn):在VisualBasic中可以和哪些數(shù)據(jù)庫(kù)通訊?
答:在VisualBasic中可以和三類數(shù)據(jù)庫(kù)通訊,它們分別是:
1.VisualBasic數(shù)據(jù)庫(kù)-也被稱為本地?cái)?shù)據(jù)庫(kù),這類數(shù)據(jù)庫(kù)文件使用與Microsoftaccess相同的格式。Jet引擎直接創(chuàng)建和操作這些數(shù)據(jù)庫(kù)并且提供了最大程度的靈活性和速度。
2.外部數(shù)據(jù)庫(kù)-它們是使用幾種流行格式的"索引順序訪問(wèn)方法(ISAM)"數(shù)據(jù)庫(kù),這些流行格式包括Btrieve、dBASEIII、dBASEIV、MicrosoftFoxPRoversions2.0和2.5以及Paradoxversions3.x和4.0。在VisualBasic中能夠創(chuàng)建和操作所有以上格式的數(shù)據(jù)庫(kù)。也可以訪問(wèn)文本文件數(shù)據(jù)庫(kù)和MicrosoftExcel或Lotus1-2-3電子表格。
3.ODBC數(shù)據(jù)庫(kù)-包括符合ODBC標(biāo)準(zhǔn)的客戶/服務(wù)器數(shù)據(jù)庫(kù),如MicrosoftSQLServer。要在VisualBasic中創(chuàng)建真正的客戶/服務(wù)器應(yīng)用程序,可以使用ODBCDirect直接把命令傳遞給服務(wù)器處理。
問(wèn):在VisualBasic中,如何與串行口通訊?
答:VisualBasic提供了一個(gè)MSCOMM控件,它負(fù)責(zé)從串行口接受和發(fā)送數(shù)據(jù)。您可以在VisualBasic開(kāi)發(fā)環(huán)境下選擇"工程",在工程菜單下選擇"部件",從部件中選擇"MicrosoftCommControl",將MSCOMM控件加入到您的工具箱中。然后通過(guò)設(shè)置MSCOMM控件的屬性來(lái)修改串行口通訊參數(shù)如通訊口、波特率等。
問(wèn):如何在VB中調(diào)用Win32函數(shù)?
答:在VisualBasic的WINAPI子目錄下,您可以找到WIN32API.TXT,它包含Win32所有的函數(shù)說(shuō)明、類型說(shuō)明和全局常量值。您可以使用VisualBasic的外掛程序VBAPIViewer來(lái)選擇您所需的Win32函數(shù),然后通過(guò)簡(jiǎn)單的復(fù)制、粘貼技術(shù)將該函數(shù)的說(shuō)明放入的VisualBasic工程中,這樣您就可以象調(diào)用VisualBasic一般函數(shù)那樣調(diào)用它了。
問(wèn):VisualBasic5.0不能正常啟動(dòng)了,怎么辦?
答:這可能是兩方面原因造成的:
1.外掛程序出錯(cuò)。您可以用記事本打開(kāi)系統(tǒng)目錄下的VBAddin.ini文件,將每一項(xiàng)的值都改為0,即不啟動(dòng)外掛程序。
2.保存的有關(guān)Office命令欄的數(shù)據(jù)出錯(cuò)。在這種情況下您可以從注冊(cè)表刪除"HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/VisualBasic/5.0"這一項(xiàng)。修改了以上內(nèi)容后,您只需重新啟動(dòng)VisualBasic即可。
問(wèn):在VisualBasic中,某些控件被破壞了怎么辦?
答:您可以從VB安裝盤(pán)中找到響應(yīng)文件,將它拷貝到系統(tǒng)目錄下。然后用regsvr32手工注冊(cè)那些控件。方法為:regsvr32xxxx.ocx
問(wèn):在多用戶環(huán)境下,MicrosoftJet如何防止其他用戶修改您的數(shù)據(jù)?
答:MicrosoftJet提供了三種不同級(jí)別上鎖定數(shù)據(jù)的方法。它可以防止多個(gè)用戶同時(shí)修改數(shù)據(jù)。
1.獨(dú)占模式阻止其他所有用戶訪問(wèn)數(shù)據(jù)庫(kù),這是限制最大的模式。
2.記錄集鎖定鎖定Recordset對(duì)象的基本表,用讀表鎖定、寫(xiě)表鎖定或兩者都用。
3.頁(yè)面鎖定鎖定包含正在編輯的數(shù)據(jù)的頁(yè)面,其長(zhǎng)度為2048個(gè)字節(jié)(2K)。這是限制最小的模式
問(wèn):保守式鎖定與開(kāi)放式鎖定有什么區(qū)別?
答:使用保守式鎖定時(shí),一旦調(diào)用Edit方法,引擎就會(huì)鎖定包含當(dāng)前編輯記錄的頁(yè)面,直到顯式地提交或取消這個(gè)記錄的變更后,它才釋放這個(gè)鎖定。但它的缺點(diǎn)鎖定記錄的時(shí)間很長(zhǎng),而且不僅鎖定了用戶正在編輯的記錄,而且還會(huì)鎖定駐留在該鎖定頁(yè)面內(nèi)的其它記錄。
使用開(kāi)放式鎖定時(shí),引擎僅在試圖用Update方法提交記錄變更時(shí)鎖定頁(yè)面。因?yàn)殒i定僅在應(yīng)用程序試圖提交變更時(shí)發(fā)生,所以能使鎖定的時(shí)間最短。但開(kāi)放式鎖定的缺點(diǎn)是:當(dāng)用戶開(kāi)始編輯記錄時(shí),不能確定更新是否會(huì)成功。如果另一個(gè)用戶改變了第一個(gè)用戶正在編輯的記錄,那么依賴于開(kāi)放式鎖定的更新將會(huì)失敗。
問(wèn):在VB5中,將一個(gè)應(yīng)用程序編譯成"NativeCode",在發(fā)布該應(yīng)用程序時(shí),還需要MSVBVM50.DLL嗎?
答:需要。所有用VB5生成的應(yīng)用程序都需要MSVBVM50.DLL,不管是"NativeCode"還是"P-Code"。因?yàn)樾枰狹SVBVM50.DLL實(shí)現(xiàn)Form、類模塊、語(yǔ)言等許多功能。"NativeCode"是指不需要運(yùn)行時(shí)解釋,直接就能在CPU上運(yùn)行的代碼,但并不意味著靜態(tài)連接,VB5生成的應(yīng)用程序需要到動(dòng)態(tài)連接庫(kù)(DLL)中調(diào)用庫(kù)函數(shù)。
問(wèn):VB中如何訪問(wèn)VisualFoxPro數(shù)據(jù)庫(kù)?
答:建議在VfoxPro數(shù)據(jù)庫(kù)表中設(shè)置PrimaryKey,通過(guò)最新版本的VfoxProODBC驅(qū)動(dòng)程序存取VisualFoxPro數(shù)據(jù)庫(kù),這樣可獲得較好的性能,以及避免Update時(shí)產(chǎn)生問(wèn)題。
問(wèn):VB5的PictureBox和Image控件支持哪幾種圖形文件格式?
答:PictureBox和Image控件用來(lái)顯示圖形。它可顯示下面幾種格式的圖形:位圖、圖標(biāo)、圖元文件、增強(qiáng)型圖元文件、JPEG或GIF文件。新支持的JPEG或GIF文件對(duì)Web頁(yè)很有用。
問(wèn):VB中提供了哪些方法用于訪問(wèn)注冊(cè)表(Registry)?
答:GetSetting函數(shù),從Windows注冊(cè)表中的應(yīng)用程序項(xiàng)目返回注冊(cè)表項(xiàng)設(shè)置值。SaveSetting語(yǔ)句,在Windows注冊(cè)表中保存或建立應(yīng)用程序項(xiàng)目。
DeleteSetting語(yǔ)句,在Windows注冊(cè)表中,從應(yīng)用程序項(xiàng)目里刪除區(qū)域或注冊(cè)表項(xiàng)設(shè)置。
GetAllSettings函數(shù),從Windows注冊(cè)表中返回應(yīng)用程序項(xiàng)目的所有注冊(cè)表項(xiàng)設(shè)置及其相應(yīng)值(開(kāi)始是由SaveSetting產(chǎn)生)。
問(wèn):在VB5應(yīng)用程序中,如何把某個(gè)事件記入日志?
答:LogEvent方法,在應(yīng)用程序的日志目標(biāo)中,把某個(gè)事件記入日志。在WindowsNT平臺(tái)上,該方法會(huì)把內(nèi)容寫(xiě)到NT的Event日志中。在Windows95平臺(tái)上,該方法會(huì)把內(nèi)容寫(xiě)到LogPath屬性指定的文件中。按照缺省規(guī)定,如果不指定文件,事件被寫(xiě)入vbevents文件。
問(wèn):如何檢測(cè)文件是否存在?如何刪除文件?
答:用Dir函數(shù)可檢測(cè)文件是否存在。如果已沒(méi)有合乎條件的文件,則Dir會(huì)返回一個(gè)零長(zhǎng)度字符串("")。
用Kill語(yǔ)句可刪除文件。
問(wèn):如何優(yōu)化VB應(yīng)用程序的顯示速度?
答:由于MicrosoftWindows的圖形特性,圖形和其它操作的顯示速度在很大程度上決定了應(yīng)用程序的感覺(jué)速度。窗體出現(xiàn)及畫(huà)圖的速度越快,應(yīng)用程序就會(huì)顯得越快。以下的幾種技術(shù)可用來(lái)提高應(yīng)用程序的顯示速度:
·將容器的ClipControls屬性設(shè)置為False。
·恰當(dāng)?shù)厥褂肁utoRedraw。
·使用Image控件替代PictureBox控件。
·設(shè)置屬性時(shí)隱藏控件以避免多次重畫(huà)。
·使用Line替代PSet。
通常,應(yīng)用程序的感覺(jué)速度和代碼的實(shí)際執(zhí)行速度并無(wú)多大關(guān)系。對(duì)用戶來(lái)說(shuō),啟動(dòng)快、繪畫(huà)快并提供不間斷的反饋信息的應(yīng)用程序顯得速度快;而在完成任務(wù)時(shí)似乎"懸掛"起來(lái)的應(yīng)用程序則顯得速度慢。許多技術(shù)都可以使應(yīng)用程序顯得速度快:
·隱藏窗體而不加載。
·預(yù)加載數(shù)據(jù)。
·在后臺(tái)使用定時(shí)器工作。
·使用進(jìn)度指示器。
·加快應(yīng)用程序的啟動(dòng)速度。
問(wèn):VB5在支持Internet/Intranet開(kāi)發(fā)方面有哪些新內(nèi)容?
答:創(chuàng)建ActiveX文檔
專業(yè)版和企業(yè)版就象設(shè)計(jì)VisualBasic窗體那樣既簡(jiǎn)單又直觀。ActiveX文檔將VisualBasic應(yīng)用程序推進(jìn)到Internet瀏覽器窗口中。
創(chuàng)建自己的ActiveX控件
專業(yè)版和企業(yè)版組合現(xiàn)有的控件,或由其它控件創(chuàng)建自己的控件。用VisualBasic創(chuàng)建的ActiveX控件有幾項(xiàng)Internet特征,包括數(shù)據(jù)的異步下載和超鏈接。
多線程的DLL
專業(yè)版和企業(yè)版標(biāo)記為無(wú)用戶界面執(zhí)行(即沒(méi)有用戶交互)的DLL部件可以有效地用于象Internet瀏覽器那樣的多線程應(yīng)用程序中。
Internet傳輸控件
專業(yè)版和企業(yè)版提供HTTP和FTP支持的新控件。
WinSock控件
專業(yè)版和企業(yè)版允許連接到遠(yuǎn)程計(jì)算機(jī)上,并與使用用戶數(shù)據(jù)記錄協(xié)議(UDP)或傳輸控制協(xié)議(TCP)的其它計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換。
超鏈接定位
專業(yè)版和企業(yè)版Hyperlink對(duì)象可以控制對(duì)ActiveX超連接功能的訪問(wèn)。使用Hyperlink對(duì)象的屬性和方法,控件可以請(qǐng)求識(shí)別超鏈接的容器,如:MicrosoftInternetExplorer,跳轉(zhuǎn)到給定的URL或通過(guò)歷史列表定位。
異步下載
專業(yè)版和企業(yè)版通過(guò)用VisualBasic創(chuàng)建的ActiveX控件和ActiveX文檔,異步下載文件、字節(jié)數(shù)組或圖像。
ActiveX文檔中的菜單協(xié)商
專業(yè)版和企業(yè)版當(dāng)顯示文檔時(shí),加入到ActiveX文檔中的菜單可以與InternetExplorer(或其它支持菜單協(xié)商的瀏覽器)的菜單天衣無(wú)縫地合并在一起。
ActiveX控件接口向?qū)?/p>
專業(yè)版和企業(yè)版一旦加入構(gòu)成的控件到UserControl設(shè)計(jì)器中以后,向?qū)Э梢詭椭鷮⑿碌腁ctiveX控件(即它的接口)的屬性、方法和事件映射成構(gòu)成的控件和UserControl對(duì)象所提供的功能。
Internet部件下載
專業(yè)版和企業(yè)版可以使用"安裝向?qū)?quot;特別為Web上部署的部件打包。JPEG和GIF支持
所有版本PictureBox和Image控件,以及Picture對(duì)象,現(xiàn)在都支持.gif和.jpg文件,這對(duì)Web頁(yè)很有用。
從開(kāi)發(fā)環(huán)境中訪問(wèn)Web
所有版本直接跳轉(zhuǎn)到關(guān)于VisualBasic和其它開(kāi)發(fā)產(chǎn)品的最新信息上。
問(wèn):如何把傳統(tǒng)的VB應(yīng)用程序引入到瀏覽器中執(zhí)行?
答:ActiveX文檔移植向?qū)菫榱税岩延写绑w改變成ActiveX文檔而設(shè)計(jì)的。ActiveX文檔是一種特定類型的ActiveX對(duì)象,這類對(duì)象在ActiveX文檔容器(如MicrosoftInternetExplorer)里面能被存放及激活。
問(wèn):DAO與RDO的比較
答:DAO一般通過(guò)MicrosoftJet引擎存取數(shù)據(jù)庫(kù)(下面將提到的ODBCDirect除外),適用于存取MicrosoftAccess等數(shù)據(jù)庫(kù);
RDO直接通過(guò)ODBC存取數(shù)據(jù)庫(kù)。適用于Client/Server環(huán)境,在存取大型數(shù)據(jù)庫(kù),如MicrosoftSQLServer時(shí)將獲得更好的性能。
使用遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)的方式基本上與使用MicrosoftJet數(shù)據(jù)庫(kù)引擎數(shù)據(jù)訪問(wèn)對(duì)象(DAO)的方法類似,RemoteData控件也與Data控件類似。使用RDO可以提交查詢、創(chuàng)建結(jié)果集或游標(biāo),以及用與數(shù)據(jù)庫(kù)無(wú)關(guān)的、面向?qū)ο蟮拇a處理查詢結(jié)果。
使用RemoteData控件,可以在創(chuàng)建的窗體中使用能夠被Data控件識(shí)別的所有綁定控件;還可以用很少或幾乎不用代碼處理結(jié)果集。
對(duì)現(xiàn)有的使用DAO及Data控件的應(yīng)用程序作些稍微的改動(dòng),即可將其轉(zhuǎn)換成使用RDO和RemoteData控件。它們之間有一些區(qū)別,然而,由于實(shí)現(xiàn)和設(shè)計(jì)了的RDO用于關(guān)系數(shù)據(jù)庫(kù),因此RDO并沒(méi)有它自己的查詢處理程序;它依靠數(shù)據(jù)源來(lái)處理所有的查詢,并創(chuàng)建結(jié)果集。數(shù)據(jù)對(duì)象本身是由ODBC驅(qū)動(dòng)程序所返回的結(jié)果集和游標(biāo)來(lái)建立的。
有時(shí)可能沒(méi)有必要將已有的DAO/Jet應(yīng)用程序轉(zhuǎn)換為RDO,因?yàn)镺DBCDirect將DAO通過(guò)RDO,而不是Jet。如果應(yīng)用程序沒(méi)有使用DAOISAM對(duì)象及其方法(例如表類型的Recordset對(duì)象和Seek方法)或其它的ISAM編程方法,那么,通過(guò)少許改動(dòng)便可將其轉(zhuǎn)換成ODBCDirect方式,所需的改動(dòng)甚至比轉(zhuǎn)換成RDO還少。
下表列出了RDO2.0對(duì)象及其等價(jià)的DAO/Jet對(duì)象:
RDO對(duì)象
等價(jià)的DAO/Jet對(duì)象
RdoEngine
DBEngine
RdoError
Error
rdoEnvironment
Workspace
rdoConnection
Database
rdoTable
TableDef
未實(shí)現(xiàn)
Index
rdoResultset
Recordset
未實(shí)現(xiàn)
表類型
鍵集類型
動(dòng)態(tài)集類型
靜態(tài)類型(r/w)
快照類型(r/o)
動(dòng)態(tài)類型
(無(wú))
僅向前類型
僅向前類型
(無(wú)游標(biāo)的)
(無(wú))
rdoColumn
Field
rdoQuery
QueryDef
rdoParameter
Parameter
未實(shí)現(xiàn)
Relation
未實(shí)現(xiàn)
Group
未實(shí)現(xiàn)
User
遠(yuǎn)程數(shù)據(jù)對(duì)象使用行和列的概念,而不是記錄和域的概念,后者通常為關(guān)系數(shù)據(jù)庫(kù)的術(shù)語(yǔ)。查詢以結(jié)果集的形式返回?cái)?shù)據(jù),結(jié)果集可以包括零個(gè)或多個(gè)數(shù)據(jù)行,每行又可包括一個(gè)或多個(gè)列。DAO需要使用游標(biāo)訪問(wèn)數(shù)據(jù),而RDO允許創(chuàng)建無(wú)游標(biāo)的結(jié)果集,所需的資源大大少于游標(biāo)。
有些DAO對(duì)象、方法和屬性被設(shè)計(jì)用來(lái)支持和實(shí)現(xiàn)Jet的ISAM結(jié)構(gòu)以及可安裝的ISAM數(shù)據(jù)庫(kù)。例如,可以使用Index對(duì)象和Seek方法來(lái)管理ISAM索引,并用索引進(jìn)行定位行。因?yàn)镽DO和關(guān)系數(shù)據(jù)庫(kù)以完全不同的方式管理索引,所以那些對(duì)象和方法都是不需要的。
通過(guò)DAO方法和屬性,DAO也支持?jǐn)?shù)據(jù)庫(kù)模式的創(chuàng)建、修改、參照完整性(RI)以及安全性。RDO不支持任何形式的RI、安全性或模式修改,因?yàn)榉?wù)器系統(tǒng)所提供的工具和實(shí)用程序完全能夠支持這些功能。
還可以運(yùn)行RDO生成表查詢,或執(zhí)行動(dòng)作查詢,用原始SQL語(yǔ)句操作創(chuàng)建、修改及刪除數(shù)據(jù)庫(kù)或表。也可以執(zhí)行復(fù)雜的存儲(chǔ)過(guò)程,從而管理數(shù)據(jù)庫(kù)模式或執(zhí)行維護(hù)操作,這對(duì)于DAO來(lái)說(shuō)是不可能的。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注