【正文】
3.切換到“記錄源” 標(biāo)簽,指定SQL 語句而不是表格:將“命令類型”設(shè)置為 adCmdUnknown,并在“命令文本”框中輸人下列SQL語句:select * from 基本情況 order by 學(xué)號 四、VB數(shù)據(jù)庫體系結(jié)構(gòu)VB提供了基于Microsoft Jet數(shù)據(jù)庫引擎的數(shù)據(jù)訪問能力,Jet引擎負(fù)責(zé)處理存儲、檢索、更新數(shù)據(jù)的結(jié)構(gòu),并提供了功能強大的面向?qū)ο蟮腄AO編程接口。 大多數(shù)情況下,用于自動建立DataList控件的數(shù)據(jù)通常沒有排序。 2.將DataList控件的實例放在窗體上。 使用ADO數(shù)據(jù)控件及ODBC ADO數(shù)據(jù)控件使用自己的高級約束數(shù)據(jù)控件,即DataList和DataCombo控件。將它們的DataSource=Adodc1,DataField分別設(shè)置為學(xué)號、姓名、專業(yè)、出生年月。 步驟9:在“表或存儲過程名稱”下拉的清單中出現(xiàn)數(shù)據(jù)庫中的所有表名。實際上,這就指定了要使用的數(shù)據(jù)庫(類似于設(shè)計Data控件的DatabaseName屬性)。在出現(xiàn)的“ODBC Microsoft Access 安裝”窗口中,執(zhí)行如下操作步驟: 6.在第一個框中,指定數(shù)據(jù)源名mystudent,在“描述”框中,輸入簡短說明:student數(shù)據(jù)源(說明可以空缺)。 4.選擇Microsoft Access Driver,并單擊“下一步”按鈕。 3.單擊“下一步”按鈕顯示“創(chuàng)建新數(shù)據(jù)源”窗口,指定訪問數(shù)據(jù)庫所用的驅(qū)動程序。在這個窗口中可以選擇數(shù)據(jù)源類型,選項包括: 文件數(shù)據(jù)源 所有用戶均可以訪問的數(shù)據(jù)庫文件。不管實際提供表格的數(shù)據(jù)庫為何種形式,它用相同的語句訪問表格及其記錄。 步驟3:右鍵單擊控件,并從彈出菜單中選擇“ADODC屬性”命令(或單擊Adodc1的ConnectionString屬性旁的“…”按鈕),打開ADO數(shù)據(jù)控件的屬性頁。 顯示作圖數(shù)據(jù)VB中使用ODBC 使用ADO數(shù)據(jù)控件,設(shè)計一個簡單窗體。MsChart控件也是一個Active X控件,需要通過“工程→部件”菜單命令,將MsChart控件添加到工具箱中。然后,將產(chǎn)生的記錄集連接到ADO數(shù)據(jù)控件上。 使用ADO數(shù)據(jù)控件即DataSource屬性使用SQL語句:select 學(xué)生成績表.*, from 學(xué)生成績表,基本情況 where =?!盎謴?fù)原表內(nèi)容”按鈕的指令代碼為:Private Sub Command3_Click() = 基本情況End Sub以上介紹的是在Data控件上使用SQL,如果要在ADO數(shù)據(jù)控件上使用SQL語句,最好通過代碼配合ADO數(shù)據(jù)控件完成數(shù)據(jù)庫的連接,這可給程序帶來更大的靈活性。若希望按用戶要求的標(biāo)題顯示統(tǒng)計摘要值,可用As短語命名一個別名。網(wǎng)格控件的DataSource=Data1。Select短語中字段的排列決定了所產(chǎn)生的記錄集內(nèi)每一列數(shù)據(jù)的排列順序。RecordSource屬性空缺,各文本框的DataSource=Data1,DataField屬性分別設(shè)置為學(xué)號、姓名、課程、成績,而照片字段綁定圖形框。 mzy amp。此時,表示記錄過濾后無數(shù)據(jù),重新打開原來的基本情況表。 amp。 amp。Data控件的RecordSource屬性不—定是數(shù)據(jù)表名,可以是數(shù)據(jù)表中的某些行或多個數(shù)據(jù)表中的數(shù)據(jù)組合。Private Sub Data1_Validate(Action As Integer, Save As Integer) If = And (Action = 6 Or ) Then MsgBox 數(shù)據(jù)不完整,必須要有學(xué)號! End If If Action = 1 And Action = 4 Then = 新增 = 修改 = True = True = True = False End IfEnd Sub關(guān)于照片的輸入,較簡單的方法是通過剪貼板將照片圖片復(fù)制到Picture1控件。需要注意的是:對于一條新記錄或編輯過的記錄必須要保證數(shù)據(jù)的完整性,這可通過Data1_Validate事件過濾無效記錄。 amp。該語句表示在程序運行時發(fā)生錯誤,忽略錯誤行,繼續(xù)執(zhí)行下一語句。 編程建立增、刪、改、查功能 Command1_Click事件的功能根據(jù)按鈕提示文字調(diào)用AddNew方法或Update方法,并且控制具他4個按鈕的可用性。 (2)給各字段賦值。因此,你必須移動記錄指針?biāo)⑿陆壎丶?,—般采用移至下一記錄的處理方法?2)調(diào)用Delete方法。 注意:如果使用AddNew方法添加新的記錄,但是沒有使用Update方法而移動到其他記錄,或者關(guān)閉記錄集,那么所做的輸入將全部丟失,而且沒有任何警告。增加記錄的步驟為:(1)調(diào)用AddNew方法。若在記錄集中多次使用同樣的Seek方法(參數(shù)相同),那么找到的總是同一條記錄。如果Find方法找到相匹配的記錄,則記錄定位到該記錄,Recordset的NoMatch屬性為False。這里,“專業(yè)”為數(shù)據(jù)庫Student記錄集中的字段名,在該字段中存放專業(yè)名稱信息。 (4)FindPrevious方法:從當(dāng)前記錄開始查找滿足條件的上一條記錄。程序代碼如下:Private Sub Command2_Click() If Then End SubPrivate Sub Command3_Click() If Then End Sub7.Find方法使用Find方法可在指定的Dynaset或Snapshot類型的Recordset對象中查找與指定條件相符的一條記錄,并使之成為當(dāng)前記錄。 。 (2)MoveLast方法:移至最后一條記錄。5.RecordCount屬性 RecordCount屬性對Recordset對象中的記錄計數(shù),該屬性為只讀屬性。3.Bookmark屬性 Bookmark屬性的值采用字符串類型,用于設(shè)置或返回當(dāng)前指針的標(biāo)簽。下面列出記錄集常用的屬性和方法。 3. UpdateRecord方法當(dāng)對綁定控件內(nèi)的數(shù)據(jù)修改后,數(shù)據(jù)控件需要移動記錄集的指針才能保存修改。在多用戶環(huán)境下,當(dāng)其他用戶同時訪問同一數(shù)據(jù)庫和表時,Refresh方法將使各用戶對數(shù)據(jù)庫的操作有效。MsFlexGrid控件不是Visual Basic工具箱內(nèi)的默認(rèn)控件,需要在開發(fā)環(huán)境中選擇“工程|部件”菜單命令,并在隨即出現(xiàn)的對話框中選擇“MicroSoft FlexGrid Control ”選項,將其添加到工具箱中。如果改變了某個字段的值,只要移動記錄,這時所作的改變存入數(shù)據(jù)庫中。5個文本框分別顯示基本情況表內(nèi)的字段:學(xué)號、姓名、性別、專業(yè)和出生年月的內(nèi)容,圖形框顯示每個學(xué)生的照片。 (2)將數(shù)據(jù)控件Data1的Connect屬性指定為Access類型,RecordSource屬性設(shè)置為“基本情況”表?;厩闆r表包含了6個字段,故需要用6個綁定控件與之對應(yīng)。當(dāng)數(shù)據(jù)控件的BofAction屬性值設(shè)置為2時,當(dāng)記錄指針移過記錄集結(jié)束位,數(shù)據(jù)控件會自動向記錄集加入新的空記錄。綁定控件、。 EofAction和BofAction屬性屬性取值操作BofAction0控件重定位到第—個記錄1移過記錄集開始位,定位到一個無效記錄,觸發(fā)數(shù)據(jù)控件對第一個記錄的無效事件ValidateEofAction0控件重定位到最后—個記錄1移過記錄集結(jié)束位,定位到一個無效記錄,觸發(fā)數(shù)據(jù) 控件對最后一個記錄的無效事件Validate 2向記錄集加入新的空記錄,可以對新記錄進(jìn)行編輯,移動記錄指針,新記錄寫入數(shù)據(jù)庫在Visual Basic中,數(shù)據(jù)控件本身不能直接顯示記錄集中的數(shù)據(jù),必須通過能與它綁定的控件來實現(xiàn)。 例如,則RecordSource=”基本情況”。 例如,要連接一個Microsoft Access的數(shù)據(jù)庫C:\,則設(shè)置DatabaseName=”C:\,Access數(shù)據(jù)庫的所有表都包含在一個MDB文件中。要利用數(shù)據(jù)控件返回數(shù)據(jù)庫中記錄的集合,應(yīng)先在窗體上畫出控件,再通過它的三個基本屬性Connect、DatabaseName和RecordSource設(shè)置要訪問的數(shù)據(jù)資源。用鼠標(biāo)右鍵單擊需要修改的字段名,在彈出的快捷菜單中選擇“刪除”選項,就可從DataGrid控件中刪除該字段,也可選擇“屬性”選項修改字段的顯示寬度或字段標(biāo)題。 顯示在DataGrid網(wǎng)格內(nèi)的記錄集,可以通過DataGrid控件的AllowAddNew、AllowDelete和AllowUpdate屬性設(shè)置控制增,刪、改操作。 在窗體上放置ADO數(shù)據(jù)控件。這些新增綁定控件必須使用ADO數(shù)據(jù)控件進(jìn)行綁定。此時,已完成了ADO數(shù)據(jù)控件的連接工作。然后單擊“下—步”按鈕或打開“連接”選項卡,在對話框內(nèi)指定數(shù)據(jù)庫文件?!笆褂肙DBC數(shù)據(jù)資源名稱”可以通過下拉式列表框,選擇某個創(chuàng)建好的數(shù)據(jù)源名稱(DSN),作為數(shù)據(jù)來源對遠(yuǎn)程數(shù)據(jù)庫進(jìn)行控制。 步驟1:在窗體上放置ADO數(shù)據(jù)控件,控件名采用默認(rèn)名“Adodcl”。 ConnectionString屬性參數(shù)參數(shù)描述Provide指定數(shù)據(jù)源的名稱FileName指定數(shù)據(jù)源所對應(yīng)的文件名RemoteProvide在遠(yuǎn)程數(shù)據(jù)服務(wù)器打開一個客戶端時所用的數(shù)據(jù)源名稱RemoteServer在遠(yuǎn)程數(shù)據(jù)服務(wù)器打開一個主機端時所用的數(shù)據(jù)源名稱 (3)ConnectionTimeout屬性用于數(shù)據(jù)連接的超時設(shè)置,若在指定時間內(nèi)連接不成功顯示超時信息。1.ADO數(shù)據(jù)控件的基本屬性 (1)ConnectionString屬性 ADO控件沒有DatabaseName屬性,它使用ConnectionString屬性與數(shù)據(jù)庫建立連接。Connection對象Error對象Error集合Command對象Parameter對象Parameter集合Recordset對象Field對象Field集合 ADO對象模型 ADO對象描述對象名描 述Connection連接數(shù)據(jù)來源Command從數(shù)據(jù)源獲取所需數(shù)據(jù)的命令信息Recordset所獲得的一組記錄組成的記錄集Error在訪問數(shù)據(jù)時,由數(shù)據(jù)源所返回的錯誤信息Parameter與命令對象有關(guān)的參數(shù)Field包含了記錄集中某個字段的信息 要想在程序中使用ADO對象,必須先為當(dāng)前工程引用ADO的對象庫。而使用drop table命令則會將整個數(shù)據(jù)庫表格的所有信息全部刪除。Drop table命令的使用格式為:drop table tablename;例如:drop table employee。 例如:delete from employeewhere lastname = May。例如:update employeeset age = age+1where first_name= ‘Mary’and