亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

VB中用ADO對象動態建立新的數據庫和表

系統 1906 0

  前面講到的方法有一定的局限性,它不能讓用戶產生自己所需的數據庫文件,即使能產生數據表也只能在原有表的基礎上生成。我們現在的目的就是讓用戶利用ADO對象在程序運行過程中創建數據庫和表,就好象他利用Access來建立數據庫和表一樣。為此,我們應該引用對象庫"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"
?
?  我們不妨用一個實例來說明具體的操作過程和方法。我們的實例要達到目的是:在程序運行過程中建立一個數據庫,數據庫的名稱由用戶輸入。然后在數據庫中建立一個名為"MyTable"的數據表,數據表中有三個字段,它們分別是:"編號"(整數型)、 "姓名"(字符型,寬度為8)、"住址" (字符型,寬度為50),接著在數據表中添加一條記錄,最后在DataGrid控件中把記錄的內容顯示出來,并且讓用戶在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 '定義該變量是為了后面的書寫方便
?
?  為了更靈活地創建數據庫,我們可以在窗體中加入一個通用對話框、一個DataGrid控件,三個命令按鈕,它們的標題分別是:創建數據庫和表、查看、更新。通用對話框的作用是給用戶輸入數據庫文件名和決定數據庫的存放位置。 "創建數據庫和表"命令按鈕對應的代碼是 北美托福答案
?
?  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 '創建數據庫
?
?  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 '建立數據表
?
?  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驅動程序的版本是4.0,這是目前最新的版本,利用它你可以用VB中的ADO對象訪問Access2000及其以下版本所建立的數據庫。你不能把這里的"4.0"改為"3.51",否則程序不能正常運行;在VB6中,3.51版本的Microsoft Jet OLEDB驅動程序對應的是Access97數據庫。換而言之,用這種方法建立的數據庫和表跟用Access2000所建立的數據庫和表是同一類型的,你只能直接用Access2000來打開,雖然你可以用VB6來訪問這種數據庫和其中的數據表,但你不能用Access97或VB6中的"可視化數據管理器"來直接打開 雅思答案
?
?  在程序運行時只要用戶單擊該命令按鈕就可以創建自己所需的數據庫。"查看"命令按鈕對應的代碼是:
?
?  Private Sub Command3_Click()
?
?  Set DataGrid1.DataSource = rs
?
?  End Sub
?
?  "更新"命令按鈕對應的代碼是:
?
?  Private Sub Command4_Click()
?
?  rs.UpdateBatch
?
?  End Sub
?
?  我們這個實例只是用來說明問題,在實際應用當中你可以把它進一步改進,例如:你在窗體中再增加一些文本框和組合框,供用戶輸入或選擇數據表的名稱、字段的名稱、字段的寬度和小數位數。這樣,用戶就可以自主地決定數據庫的所有內容了,程序的靈活性也就大大提高了 托福答案
?
?  5: 結束語
?
?  如果你使用的是最新的數據訪問接口技術ADO(Microsoft強烈建議大家使用這種最新技術),你又想在程序運行過程中創建數據庫文件和數據表,此時,你應該在Visual Basic 6.0中引用對象庫"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security",然后使用ADOX對象的Create、Append等方法就可以實現。 這種方法使用的Microsoft Jet OLEDB驅動程序的版本是4.0,因此,使用這種方法建立的數據庫文件和數據表可以直接使用Access2000打開。筆者在VB數據庫軟件開發過程中已多次使用這種方法,該方法在提高程序的靈活性和滿足用戶的特殊需要方面有很大的作用。
?

VB中用ADO對象動態建立新的數據庫和表


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美亚洲精品小说一区二三区 | 成人午夜影院在线观看 | 草逼com| 欧美视频在线观在线看 | 一级特黄aaa免费 | 午夜在线播放免费高清观看 | 亚洲国产一区二区在线 | 美国成人a免费毛片 | 天天射天天射天天射 | 精品国产免费福利片 | 999毛片免费 | 五月天色婷婷在线 | 亚洲午夜视频 | 日本一线一区二区三区免费视频 | 国产精品午夜久久久久久99热 | 天天拍拍夜夜出水 | 一级片免费网站 | 99久久香蕉国产线看观香 | 天天操天天摸天天舔 | 婷五月天| 国产最新在线视频 | 欧美日韩1区 | 久久国产精品-久久精品 | 在线观看亚洲成人 | 夜夜做日日做夜夜爽 | 亚洲精品国产美女在线观看 | 精品乱码一区二区三区四区 | 欧美国产精品 | 精品国产97在线观看 | 久久综合九色综合精品 | 激情时刻 | 久久久久欧美精品三级 | 一级欧美视频 | 亚洲成年人在线 | 久久亚洲国产视频 | 亚洲国产成人综合精品2020 | 精品免费一区二区三区 | 成人午夜精品久久久久久久小说 | 成人午夜精品久久久久久久小说 | 色妞www精品视频 | 久久精品国产欧美日韩99热 |