日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VB6.0 對ACCESS的控制總結(jié)——無需控件版(建庫,刪庫,建表,刪表,增加行,刪除行)

 hdzgx 2019-12-07
'前言:<span style="font-family: Arial, Helvetica, sans-serif;">  VB6.0對數(shù)據(jù)庫的操作方法很多,對于初學(xué)者來說也比較亂.用控件操作數(shù)據(jù)庫是很簡潔的,但相對的局限性也變大了.總結(jié)了相對簡介而使用的幾個功能希望大家喜歡.</span>
</pre><pre name="code" class="vb">
</pre><pre name="code" class="vb">
</pre><pre name="code" class="vb">
  1. '引用"Microsoft ActiveX Data Objects 6.0 Library",
  2. '這個東西的簡稱就是ADO,它是VB6數(shù)據(jù)庫最核心的
  3. '對象群,也是VB數(shù)據(jù)庫開發(fā)人員經(jīng)常所引用的對象
  4. '庫,在VB6中你可以看到它的各種版本,從2.0版到
  5. '2.6版都有.
  6. '
  7. '我們還要引用對象庫"Microsoft ADO Ext 6.0. For DDL Security",簡稱為ADOX,
  8. '其庫文件名為是:Msadox.dll。ADOX是對 ADO 對象和編程模型的擴展,它將 ADO
  9. '擴展為包括創(chuàng)建、修改和刪除模式對象,如表格和過程。它還包括安全對象,用于
  10. '維護用戶和組,以及授予和撤消對象的權(quán)限
  11. '
  12. '對象 說明
  13. ' Catalog 包含描述數(shù)據(jù)源模式目錄的集合?
  14. ' Column 表示表?索引或關(guān)鍵字的列?
  15. ' Group 表示在安全數(shù)據(jù)庫內(nèi)有訪問權(quán)限的組賬號?
  16. ' Index 表示數(shù)據(jù)庫表中的索引?
  17. ' Key 表示數(shù)據(jù)庫表中的主關(guān)鍵字?外部關(guān)鍵字或唯一關(guān)鍵字?
  18. ' Procedure 表示存儲的過程?
  19. ' Table 表示數(shù)據(jù)庫表,包括列、索引和關(guān)鍵字。
  20. ' User 表示在安全數(shù)據(jù)庫內(nèi)具有訪問權(quán)限的用戶賬號?
  21. ' View 表示記錄或虛擬表的過濾集?
  22. 'ADODB是動態(tài)數(shù)據(jù)鏈接對象
  23. 'Recordset是ADODB的一個子類
  24. '一般情況下我們定義:
  25. 'Dim Rst As New ADODB.Recordset
  26. Private Sub Create_Database_Click(Index As Integer)
  27. '建庫 這里建立的mdb文件,用VB自帶的ACCESS是無法打開的.需要下載Access2000打開mdb文件,觀察數(shù)據(jù)庫的刪建情況.
  28. Dim cat As ADOX.Catalog
  29. Set cat = New ADOX.Catalog
  30. '當前目錄下建立名為 newdata的Access數(shù)據(jù)庫
  31. 'cat.Create ("Provider=Microsoft.jet.oledb.4.0;DATA SOURCE=" + App.Path & "\newdata.mdb" + ";")
  32. cat.Create ("provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;")
  33. End Sub
  34. Private Sub Delete_Database_Click()
  35. '刪庫
  36. '在模塊中引用Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long 'API 刪除函數(shù)
  37. 'DeleteFile "C:\Users\wangqi\Desktop\數(shù)據(jù)庫\newdata.mdb" '絕對路徑
  38. DeleteFile "" & App.Path & "/newdata.mdb" '如果你用絕對路徑寫程序,當你的程序用在其他電腦上的時候,路徑就變了。所以寫程序盡量寫相對路徑,方便移植。
  39. End Sub
  40. Private Sub Create_Table_Click()
  41. '建表
  42. Dim cn As New ADODB.Connection '用ADODB需要引用Microsoft ActiveX Data Objects 6.0 Library.之前我們已經(jīng)引用過了。
  43. cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:數(shù)據(jù)庫的名字
  44. real_time = Now
  45. cn.Open
  46. cn.Execute "create table [" & real_time & "] ([dat] DATE,[x_temperature] integer,[y_temperature] integer,[x_weight] integer,[y_weight] integer);" '這里就可以用now函數(shù)做表的名子
  47. 'cb.Execute "create index index_dat on [" & Now() & "] (dat)" '這個寫法也ok
  48. cn.Execute "create index index_dat on [" & real_time & "] (dat)"
  49. cn.Execute "create index index_x_temperature on [" & real_time & "] (x_temperature)"
  50. cn.Execute "create index index_y_temperature on [" & real_time & "] (y_temperature)"
  51. cn.Execute "create index index_x_weight on [" & real_time & "] (x_weight)"
  52. cn.Execute "create index index_y_weight on [" & real_time & "] (y_weight)"
  53. ' 索引名 on 表名 (字段名)
  54. cn.Close
  55. Text1.Text = real_time
  56. End Sub
  57. Private Sub Delete_Table_Click()
  58. '刪表
  59. Dim cn As New ADODB.Connection
  60. cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false"
  61. cn.Open
  62. cn.Execute "drop table [" & real_time & "];" '[要刪除的表名]
  63. cn.Close
  64. Text1.Text = "表已刪除"
  65. End Sub
  66. Private Sub Create_Row_Click()
  67. '建行
  68. Dim Rst As New ADODB.Recordset 'Rst為記錄集對象實例
  69. Dim str As String
  70. Dim cn As New ADODB.Connection
  71. cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:數(shù)據(jù)庫的名字
  72. cn.Open
  73. str = "select *from [" & real_time & "] "
  74. '記錄集的打開方法:Recordset.Open Source, ActiveConnection, CursorType, LockType, Options
  75. ' source可選項,指明了所打開的記錄源信息.可以使合法的命令,對象變量名,SQL語句,表明,存儲過程調(diào)用,活保存記錄集的文件名.
  76. ' ActiveConnection可選項,合法的已打開的Cnnection對象的變量名,或者是包含ConnectionString參數(shù)的字符串
  77. ' CursorType可選項,確定打開記錄集對象使用的指針類型
  78. ' LockType可選項,確定打開記錄集對象使用的鎖定類型
  79. 'CursorType(游標類型)有四種:
  80. ' AdOpenForwardOnly = 0 只能用MoveNext讀取,并且打開的同事建立的數(shù)據(jù)庫的備份,不能即時體現(xiàn)數(shù)據(jù)庫記錄狀態(tài),比如記錄的編輯和增減.
  81. ' AdOpenKeyset = 1 可上下滾動的游標,給打開的記錄創(chuàng)建了一個關(guān)鍵字列表,類似記錄集的描述,訪問的時候才去去的數(shù)據(jù)值,就是說
  82. ' 可以即時看到修改信息,但是不能即時的到數(shù)據(jù)是否刪除的信息,因為這個關(guān)鍵字列表是事先初始化好的.
  83. ' AdOpenDynamic = 2 完全可以滾動,可得到數(shù)據(jù)的最新狀態(tài),執(zhí)行效率也會有所降低(常用).
  84. ' AdOpenStatic = 3 完全可以滾動,但是和adOpenKeyset類似,它先將數(shù)據(jù)庫備份文件之后進行操作.可以斷開數(shù)據(jù)庫連接后繼續(xù)使用
  85. '
  86. '記錄集鎖的類型有四種:
  87. ' AdLockReadOnly = 1 只讀鎖,不能修改記錄
  88. ' AdLockPessimistic = 2 悲觀鎖,操作者打開之后立即上鎖,知道修改完成或者放棄修改位置,此時其他人無法編輯.
  89. ' AdLockOptimisitic = 3 樂觀鎖,當記錄將要被更新的時候才開始上鎖,但是不能保證在提交修改之前是否有人改動過.
  90. ' AdLockBatchOptimistic = 4 批量樂觀鎖,SOL server中要使用它,必須打開一個可上下滾動的游標,如AdOpenKeyset,AdOpenStatic.
  91. '
  92. Rst.Open str, cn, 3, 3 '
  93. 'Rst.AddNew ([FieldList],[values]) FieldList為一個字段名,或是一個字段數(shù)組
  94. Rst.AddNew
  95. '建行Form7.Adodc1.Recordset.AddNew ' Adodc1.Refresh
  96. Rst.Close
  97. cn.Close
  98. End Sub
  99. Private Sub Delet_Row_Click()
  100. 'Recordset.Delete AffectRecords
  101. '其中的,AffectRecords參數(shù)是確定Delete方法作用的方式的,它的取值如下:
  102. ' adAffectCurrent 只刪除當前的記錄
  103. ' adAffectGroup 刪除符合Filter屬性設(shè)置的那些記錄.為了一次能刪除一組數(shù)據(jù),應(yīng)設(shè)置Filter屬性
  104. 'MoveFirst,MoveLast,MoveNext,MovePrevious方法,移動到指定Recordset對象中的第一個、最后一個、下一個或上一個記錄并使該記錄成為當前記錄.
  105. Dim Rst As New ADODB.Recordset 'Rst為記錄集對象實例
  106. Dim str As String
  107. Dim cn As New ADODB.Connection
  108. cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:數(shù)據(jù)庫的名字
  109. cn.Open
  110. str = "select *from [" & real_time & "] "
  111. Rst.Open str, cn, 3, 3 '
  112. Rst.MoveLast '將指針指向最后一行記錄進行刪除.如果沒有這一指令,刪除的將是第一行
  113. Rst.Delete
  114. Rst.Update
  115. Rst.Close
  116. cn.Close
  117. End Sub

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多