【文章內(nèi)容簡介】
,以毫秒為單位。 2) Enable 屬性 :為 true 時(shí) (缺省值 ),激活定時(shí)器開始計(jì)時(shí) 。為 false 時(shí)處于休眠狀態(tài) . 數(shù)據(jù)庫連接方式選擇 Visual 連接數(shù)據(jù)庫的主要方式以下幾種方式:一是: 用 data 控件進(jìn)行數(shù)據(jù)庫鏈接 ,二是 利用 adodc( ADO Data Control)進(jìn)行數(shù)據(jù)庫鏈接 。三是 : 利用 DataEnvironment 進(jìn)行數(shù)據(jù)庫鏈接 .四是 利用 ADO(ActiveX Data Objects)進(jìn)行編程 :現(xiàn)在我們來大致對這幾種技術(shù)應(yīng)用介紹: 一、 用 data 控件進(jìn)行數(shù)據(jù)庫鏈接 . 第一步:給窗體添加一個 Data 控件。 第二步:用 Access 建立一個名為 Pad 的數(shù)據(jù)庫,在庫中建立一個表 Myset,給表添加四個字段: backcolor(數(shù)據(jù)), forecolor(文本), fontname(文本) ,fontsize(文本)。注意:請將庫文件存入程序所在目錄。 如果你的機(jī)器沒安裝有 Access,可通過 VB 建庫。 二、 利用 adodc( ADO Data Control)進(jìn)行數(shù)據(jù)庫鏈 接: 使用 adodata 控件訪問數(shù)據(jù)庫可以完全不用編寫代碼 ,只需要通過簡單的設(shè)置和操作其屬性就可以實(shí)現(xiàn)與數(shù)據(jù)庫的連接 ,通過綁定數(shù)據(jù)感知控件 ,就能提供一個訪問數(shù)據(jù)庫的界面 ,用來實(shí)現(xiàn)對數(shù)據(jù)庫的瀏覽 ,貼加 ,刪除 ,修改等操作 . 三、 利用 DAO 對數(shù)據(jù)庫進(jìn)行操縱 : 在 visual basic 中提供了兩種與 jet數(shù)據(jù)引擎接口的方法 :data控件與數(shù)據(jù)訪問對象 (DAO)DAO 是 database object 的英文縮寫 ,要訪問數(shù)據(jù)庫一方面數(shù)據(jù)庫要提供訪問接口 ,另一方面要在編程環(huán)境中有對數(shù)據(jù)庫的支持 . DAO 模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫 系統(tǒng)結(jié)構(gòu)的對象類的集合 .他們提供了管理關(guān)系型數(shù)據(jù)庫系統(tǒng)所需要的全部操作屬性和方法 ,這其中包括建立數(shù)據(jù)庫 ,定義表 ,字段和建立表間關(guān)系 ,定位和查詢數(shù)據(jù)庫等 . 關(guān)系數(shù)據(jù)庫 介紹 : 關(guān)系數(shù)據(jù)庫是目前各類數(shù)據(jù)庫中最重要、最流行的數(shù)據(jù)庫,他應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫數(shù)據(jù),是目前使用最廣泛的數(shù)據(jù)庫系統(tǒng)。 20 世紀(jì) 70 年代以后開發(fā)的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品幾乎都是基于關(guān)系的。在數(shù)據(jù)庫發(fā)展的歷史上,最重要的成就就是關(guān)系模型。 關(guān)系數(shù)據(jù)庫系統(tǒng)與非關(guān)系數(shù)據(jù)庫系統(tǒng)的區(qū)別是:關(guān)系系統(tǒng)只有 “ 表 “ 這一種數(shù)據(jù)結(jié)構(gòu);而非關(guān)系數(shù)據(jù)庫系統(tǒng)還有其他數(shù)據(jù) 結(jié)構(gòu),對這些數(shù)據(jù)結(jié)構(gòu)有其他的操作。 結(jié)構(gòu)化查詢語言 SQL( Structured Query Language)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制四個方面,是一個通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。目前已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言 Microsoft Access 介紹 : 使用 Microsoft Access,可以在單一的數(shù)據(jù)庫文件中管理所有的信息。在這個文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨(dú)立的存儲空間中,這些空間稱作表;可以使用聯(lián)機(jī)窗體來查看、添加及更新表中的數(shù)據(jù) ;使用查詢來查找并檢索所要的數(shù)據(jù);也可以使用報(bào)表以特定的版面布置來分析及打印數(shù)據(jù)。 如果要保存數(shù)據(jù),請為每一種類型的信息創(chuàng)建一個表。如果要從查詢、窗體或報(bào)表中的多個表中將數(shù)據(jù)合并在一起,就要定義各個表之間的關(guān)系。 如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來自多個表中的數(shù)據(jù),就要創(chuàng)建查詢。查詢的同時(shí)也可以更新或刪除多條記錄,并對數(shù)據(jù)執(zhí)行內(nèi)嵌或自定義的計(jì)算。 如果要簡單地直接在某個表中查看、輸入及更改數(shù)據(jù),請創(chuàng)建一個窗體。在打開一個窗體時(shí), Microsoft Access 將從一個或多個表中檢 索數(shù)據(jù),并使用用戶在 “ 窗體向?qū)?” 選擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。 如果要分析數(shù)據(jù)或?qū)?shù)據(jù)以特定的方式打印出來,請創(chuàng)建一個報(bào)表。例如,可以打印一份將數(shù)據(jù)分組并計(jì)算數(shù)據(jù)總和的報(bào)表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標(biāo)簽的報(bào)表。 第一章 系統(tǒng)的分析 第一章 系統(tǒng)的分析 2. 1 系統(tǒng)開發(fā)的目標(biāo)和思想 本系統(tǒng)開發(fā)目標(biāo)是服務(wù)于 人們查詢公交車路線信息 ,方便工作人員 日常出行 . 同時(shí)力求做到界面人性化 ,功能齊全 ,數(shù)據(jù)存儲安全 . 2. 2 系統(tǒng)的可行性分析 技術(shù)上 :本系統(tǒng)采用 visual basic 與微軟的 access 作為數(shù)據(jù)庫 ,技術(shù)上開發(fā)難度一般 . 經(jīng)濟(jì)上 :本系統(tǒng)服務(wù)于 人們出行公交車查詢 ,提高了工作人員辦事效率 ,節(jié)省了開支 .所以具有經(jīng)濟(jì)上的可行性 . 社會上 :本系統(tǒng)同時(shí)也方便了廣大社會 .所以具有社會可行性 . 第二章 系統(tǒng)的設(shè)計(jì) 3. 1 系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì) 3. 2 系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì) 主界面 按車次查詢 按起點(diǎn)終點(diǎn)查詢 信息表 : 3. 2 界面設(shè)計(jì)與代碼設(shè)計(jì) 1 關(guān)于界面設(shè)計(jì) : 代碼設(shè)計(jì) : Option Explicit Dim bt As Boolean Private Sub Check1_Click() If = 0 Then = True Else = False End If End Sub Private Sub Form_Load() bt = True End Sub Private Sub Label1_Click() End Sub Private Sub Timer1_Timer() bt = False If = 0 Then = True Else = False End If Load Form1 = False End Sub Private Sub Timer2_Timer() = True = False End Sub 2:主界面設(shè)計(jì) : 代碼設(shè)計(jì) : Dim bcbm As Boolean Dim bcb1 As Boolean Dim bcbs As Boolean Dim bcbe As Boolean Dim tm As Integer Dim intpart As Integer Public IsBeginS As Boolean Public Sub showallstation() 39。 以下代碼是用來把在數(shù)據(jù)庫的所有不同的車站顯示在起始站中 39。 其思路是如果在啟動界面中,用戶選擇了更新數(shù)據(jù)庫,則掃描整個數(shù) 據(jù)庫,并把不同的車站加到起始站中 39。 并把這些車站名存放在一文本框中,以用于下次讀取 39。 如果用戶沒有選擇更新數(shù)據(jù)庫,則直接從文件中讀取車站存放在起始站中 39。 這樣做的好處是可以大大提高效率,如果每次啟動都要重新檢索數(shù)據(jù)庫,則要花費(fèi)大量的時(shí)間 If IsBeginS = False Then 39。用戶選擇了更新數(shù)據(jù)庫 Dim strm As String Dim mrc3 As Set mrc3 = New Set mrc3 = Do While Not For i = 1 To NC strm = Text2(i).Text If strm = Then Exit For End If For j = 0 To If (j) = Trim(strm) Then Exit For End If Next If j Then Trim(strm) End If Next Loop If Mid(, Len() 1, 1) \ Then Open + \ For Output As 1 Else Open + For Output As 1 End If Print 1, CStr() For k = 0 To 1 Print 1, , (k) Next Close 1 Set mrc3 = Nothing Else 39。用戶沒有選擇了更新數(shù)據(jù)庫 Dim strbs As String Dim intnb As Integer If Mid(, Len() 1, 1) \ Then Open + \ For Input As 1 Else Open + For Input As 1 End If Input 1, strbs intnb = CInt(Val(strbs)) For k = 0 To intnb 1 Input 1, strbs strbs Next Close 1 End If End Sub Public Sub showtitle(numt As Integer) 39。用于顯示列表中的標(biāo)題 For j = 0 To 2 If numt = 2 And j = 1 Then Exit Sub End If MSF1(j).Clear Dim i As Integer With MSF1(j) .Rows = 2 .Cols = NC + 3 .TextMatrix(0, 1) = 車次 For k = 1 To NC + 1 .TextMatrix(0, k + 1) = 站 amp。 CStr(k) .ColWidth(k) = 1000 Next .TextMatrix(0, NC + 2) = 備注 .ColWidth(0) = 200 .ColWidth(NC + 1) = 1000 .FixedRows = 1 For i = 1 To NC .ColAlignment(i) = 0 Next i .FillStyle = flexFillSingle .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols 1 .CellAlignment = 4 .Row = 1 End With Next End Sub Public Sub showdata(num As Integer) 39。用于顯示按車站名進(jìn)行的查詢 showtitle (num) Dim j As Integer Dim i As Integer Dim mrc0 As Set mrc0 = New Set mrc0 = ExecuteSQL(txtsql) If = False Then With MSF1(num) .Rows = 2 .Row = 1 Do While Not .Rows = .Rows + 1 For i = 1 To If (i 1) Null Then .TextMatrix(.Row, i 1) = (i 1) End If Next i .Row = .Row + 1 Loop End With End If Set mrc0 = Nothing End Sub Public Sub showSEdata(s As String, e As String, numb As Integer) 39。用于顯示按起始站和終點(diǎn)站進(jìn)行的查詢 39。其思路是掃描整個數(shù)據(jù)庫,如果在一條記錄中有起點(diǎn)站和終點(diǎn)站則把該記錄加到列表中 39。該過程用到了遞歸主要是由于起始站和終點(diǎn)站可以互換 digein = digein + 1 39。 用于記錄遞歸次數(shù) If digein = 3 Then 39。第三次遞歸的時(shí)候,退出 a = MsgBox(沒有直達(dá)的車次 !您是否需要轉(zhuǎn)車 ?, vbInformation + vbOKCancel, 詢問 ) If a = vbOK Then = True = True MSF1(0).Visible = False End If Exit Sub End If showtitle (numb) Dim j As Integer Dim i As Integer D