日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

VB中用ADO對象動態(tài)建立新的數(shù)據(jù)庫和表

系統(tǒng) 1948 0

  前面講到的方法有一定的局限性,它不能讓用戶產(chǎn)生自己所需的數(shù)據(jù)庫文件,即使能產(chǎn)生數(shù)據(jù)表也只能在原有表的基礎(chǔ)上生成。我們現(xiàn)在的目的就是讓用戶利用ADO對象在程序運行過程中創(chuàng)建數(shù)據(jù)庫和表,就好象他利用Access來建立數(shù)據(jù)庫和表一樣。為此,我們應(yīng)該引用對象庫"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"
?
?  我們不妨用一個實例來說明具體的操作過程和方法。我們的實例要達到目的是:在程序運行過程中建立一個數(shù)據(jù)庫,數(shù)據(jù)庫的名稱由用戶輸入。然后在數(shù)據(jù)庫中建立一個名為"MyTable"的數(shù)據(jù)表,數(shù)據(jù)表中有三個字段,它們分別是:"編號"(整數(shù)型)、 "姓名"(字符型,寬度為8)、"住址" (字符型,寬度為50),接著在數(shù)據(jù)表中添加一條記錄,最后在DataGrid控件中把記錄的內(nèi)容顯示出來,并且讓用戶在DataGrid控件中任意修改、添加記錄。
?
?  首先在VB中新建一個窗體,然后在"工程"菜單中引用對象庫"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"。接著定義三個窗體級的對象變量和一個窗體級的字符串變量,它們的具體定義是:
?
?  Dim cat As New ADOX.Catalog '不用cat用另外一個名字也可以
?
?  Dim conn As New ADODB.Connection
?
?  Dim rs As New ADODB.Recordset
?
?  Dim pstr As String '定義該變量是為了后面的書寫方便
?
?  為了更靈活地創(chuàng)建數(shù)據(jù)庫,我們可以在窗體中加入一個通用對話框、一個DataGrid控件,三個命令按鈕,它們的標題分別是:創(chuàng)建數(shù)據(jù)庫和表、查看、更新。通用對話框的作用是給用戶輸入數(shù)據(jù)庫文件名和決定數(shù)據(jù)庫的存放位置。 "創(chuàng)建數(shù)據(jù)庫和表"命令按鈕對應(yīng)的代碼是 北美托福答案
?
?  Private Sub Command1_Click()
?
?  Dim fm As String 'fm變量用來獲取用戶輸入的文件名
?
?  CommonDialog1.Filter = "MDB文件(*.mdb)|*.mdb|AllFiles(*.*)|*.*|"
?
?  CommonDialog1.FilterIndex = 1
?
?  CommonDialog1.InitDir = "D:\Jthpaper"
?
?  CommonDialog1.Flags = 6
?
?  CommonDialog1.Action = 2
?
?  If CommonDialog1.FileName = "" Then
?
?  MsgBox "你必須輸入一個文件名,請重新保存一次!"
?
?  Exit Sub
?
?  Else
?
?  fm = CommonDialog1.FileName
?
?  End If
?
?  pstr = "Provider=Microsoft.Jet.OLEDB.4.0;" '不能把這里的4.0改為3.51
?
?  pstr = pstr & "Data Source=" & fm
?
?  cat.Create pstr '創(chuàng)建數(shù)據(jù)庫
?
?  Dim tbl As New Table
?
?  cat.ActiveConnection = pstr
?
?  tbl.Name = "MyTable" '表的名稱
?
?  tbl.Columns.Append "編號", adInteger '表的第一個字段
?
?  tbl.Columns.Append "姓名", adVarWChar, 8 '表的第二個字段
?
?  tbl.Columns.Append "住址", adVarWChar, 50 '表的第三個字段
?
?  cat.Tables.Append tbl '建立數(shù)據(jù)表
?
?  conn.Open pstr
?
?  rs.CursorLocation = adUseClient
?
?  rs.Open "MyTable", conn, adOpenKeyset, adLockPessimistic
?
?  rs.AddNew '往表中添加新記錄
?
?  rs.Fields(0).Value = 9801
?
?  rs.Fields(1).Value = "孫悟空"
?
?  rs.Fields(2).Value = "廣州市花果山"
?
?  rs.Update
?
?  End Sub
?
?  上面程序中有一個需要說明的地方,這就是語句:pstr = "Provider=Microsoft.Jet.OLEDB.4.0;",這個語句表示Microsoft Jet OLEDB驅(qū)動程序的版本是4.0,這是目前最新的版本,利用它你可以用VB中的ADO對象訪問Access2000及其以下版本所建立的數(shù)據(jù)庫。你不能把這里的"4.0"改為"3.51",否則程序不能正常運行;在VB6中,3.51版本的Microsoft Jet OLEDB驅(qū)動程序?qū)?yīng)的是Access97數(shù)據(jù)庫。換而言之,用這種方法建立的數(shù)據(jù)庫和表跟用Access2000所建立的數(shù)據(jù)庫和表是同一類型的,你只能直接用Access2000來打開,雖然你可以用VB6來訪問這種數(shù)據(jù)庫和其中的數(shù)據(jù)表,但你不能用Access97或VB6中的"可視化數(shù)據(jù)管理器"來直接打開 雅思答案
?
?  在程序運行時只要用戶單擊該命令按鈕就可以創(chuàng)建自己所需的數(shù)據(jù)庫。"查看"命令按鈕對應(yīng)的代碼是:
?
?  Private Sub Command3_Click()
?
?  Set DataGrid1.DataSource = rs
?
?  End Sub
?
?  "更新"命令按鈕對應(yīng)的代碼是:
?
?  Private Sub Command4_Click()
?
?  rs.UpdateBatch
?
?  End Sub
?
?  我們這個實例只是用來說明問題,在實際應(yīng)用當中你可以把它進一步改進,例如:你在窗體中再增加一些文本框和組合框,供用戶輸入或選擇數(shù)據(jù)表的名稱、字段的名稱、字段的寬度和小數(shù)位數(shù)。這樣,用戶就可以自主地決定數(shù)據(jù)庫的所有內(nèi)容了,程序的靈活性也就大大提高了 托福答案
?
?  5: 結(jié)束語
?
?  如果你使用的是最新的數(shù)據(jù)訪問接口技術(shù)ADO(Microsoft強烈建議大家使用這種最新技術(shù)),你又想在程序運行過程中創(chuàng)建數(shù)據(jù)庫文件和數(shù)據(jù)表,此時,你應(yīng)該在Visual Basic 6.0中引用對象庫"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security",然后使用ADOX對象的Create、Append等方法就可以實現(xiàn)。 這種方法使用的Microsoft Jet OLEDB驅(qū)動程序的版本是4.0,因此,使用這種方法建立的數(shù)據(jù)庫文件和數(shù)據(jù)表可以直接使用Access2000打開。筆者在VB數(shù)據(jù)庫軟件開發(fā)過程中已多次使用這種方法,該方法在提高程序的靈活性和滿足用戶的特殊需要方面有很大的作用。
?

VB中用ADO對象動態(tài)建立新的數(shù)據(jù)庫和表


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 遂昌县| 特克斯县| 德安县| 芒康县| 名山县| 织金县| 石楼县| 徐汇区| 张家口市| 屯昌县| 定陶县| 崇礼县| 建昌县| 台东县| 高州市| 哈密市| 禹城市| 岳普湖县| 广丰县| 滦南县| 苏州市| 邓州市| 安康市| 外汇| 乌拉特后旗| 枣阳市| 德江县| 岑巩县| 腾冲县| 平罗县| 伊宁市| 乌鲁木齐市| 太谷县| 微博| 育儿| 聂荣县| 象山县| 开鲁县| 渭南市| 屯昌县| 汾西县|