設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 14239|回復(fù): 56
打印 上一主題 下一主題

[Access本身] 使用ADP進(jìn)行mdb數(shù)據(jù)庫開發(fā)的實(shí)現(xiàn)方案

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2013-7-11 10:31:21 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
使用ADP進(jìn)行mdb數(shù)據(jù)庫開發(fā)的實(shí)現(xiàn)方案

優(yōu)點(diǎn):
1. 不依賴鏈接表
2. 純粹使用ADO
3. 可輕松將mdb數(shù)據(jù)庫應(yīng)用升遷到SQLServer數(shù)據(jù)庫應(yīng)用
4. 可使用記錄集作為報表的數(shù)據(jù)來源
5. 應(yīng)用程序中無數(shù)據(jù),數(shù)據(jù)安全容易得到保障
缺點(diǎn):
1. 編程量相對較大
2. 開發(fā)不直觀

實(shí)現(xiàn)原理:
1. ADO數(shù)據(jù)庫連接的提供者一定是 “Microsoft.Access.OLEDB.10.0”,這樣,記錄集才能綁定到窗體和報表
2. ADO數(shù)據(jù)庫連接的數(shù)據(jù)提供者是 “Microsoft.Jet.OLEDB.4.0” 或者 “Microsoft.ACE.OLEDB.12.0” 或者 “Microsoft.ACE.OLEDB.14.0”,即 mdb 數(shù)據(jù)庫的提供者
3. 新建 ADP 時,取消數(shù)據(jù)庫連接,即保證 ADP 處于斷開狀態(tài), ADP 中無連接字符串。

對ADO進(jìn)行了一次封裝,作為全局的連接對象,放在 modADO 模塊中
  1. Option Compare Database
  2. Option Explicit
  3. ' 作者:朱亦文(zhuyiwen)
  4. ' 時間:2013-07-11

  5. Public Const DBFileName = "Data.mdb"
  6. Public Const DBProvider = "Microsoft.Access.OLEDB.10.0"
  7. Public Const DBDataProvider = "Microsoft.Jet.OLEDB.4.0"
  8. Public Const DBPersistSecurityInfo = "False"
  9. Public Const DBCursorLocation = adUseServer

  10. Private m_Conn As ADODB.Connection
  11. Private m_DBErrorNum As Integer
  12. Private m_DBErrorMessage As String

  13. Public Property Get DBErrorNumber() As Integer
  14.     DBErrorNumber = m_DBErrorNum
  15. End Property

  16. Public Property Get DBErrorMessage() As String
  17.     DBErrorMessage = m_DBErrorMessage
  18. End Property

  19. Public Property Get DBConnectionString() As String
  20.     DBConnectionString = _
  21.         "Provider=" & DBProvider & ";" & _
  22.         "Persist Security Info=" & DBPersistSecurityInfo & ";" & _
  23.         "Data Source=" & CurrentProject.Path & "" & DBFileName & ";" & _
  24.         "Data Provider=" & DBDataProvider
  25. End Property

  26. Public Property Get DBConnection() As ADODB.Connection
  27. On Error GoTo err_GetDBConnection
  28.     If m_Conn Is Nothing Then
  29.         Set m_Conn = New ADODB.Connection
  30.         m_Conn.CursorLocation = DBCursorLocation
  31.     End If
  32.    
  33.     If m_Conn.State <> adStateOpen Then
  34.         m_Conn.Open DBConnectionString
  35.     End If
  36.    
  37.     Set DBConnection = m_Conn
  38.     Exit Property
  39.    
  40. err_GetDBConnection:
  41.     m_DBErrorNum = Err.Number
  42.     m_DBErrorMessage = Err.Description
  43.     Err.Clear
  44. End Property

  45. Public Function DBClearError() As Boolean
  46.     m_DBErrorNum = 0
  47.     m_DBErrorMessage = ""
  48.     DBClearError = True
  49. End Function

  50. Public Function DBCloseConnection() As Boolean
  51. On Error GoTo err_DBCloseConnection
  52.     If m_Conn Is Nothing Then
  53.         DBCloseConnection = True
  54.     End If
  55.    
  56.     If m_Conn.State <> adStateClosed Then
  57.         m_Conn.Close
  58.     End If
  59.    
  60.     Set m_Conn = Nothing
  61.     DBCloseConnection = True
  62.    
  63.     Exit Function
  64.    
  65. err_DBCloseConnection:
  66.     m_DBErrorNum = Err.Number
  67.     m_DBErrorMessage = Err.Description
  68.     Err.Clear
  69. End Function
復(fù)制代碼
這樣的好處,DBConnection 就相當(dāng)于CurrentProject.Connection,便于程序移植。




游客,如果您要查看本帖隱藏內(nèi)容請回復(fù)

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享分享 分享淘帖2 訂閱訂閱
2#
發(fā)表于 2013-7-11 10:34:18 | 只看該作者
頂 一個
回復(fù)

使用道具 舉報

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2013-7-11 10:35:43 | 只看該作者
先下手為強(qiáng)
4#
發(fā)表于 2013-7-11 10:37:32 | 只看該作者
學(xué)習(xí)!
回復(fù)

使用道具 舉報

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2013-7-11 10:38:25 | 只看該作者
老朱,能實(shí)現(xiàn)報表了?

點(diǎn)擊這里給我發(fā)消息

6#
 樓主| 發(fā)表于 2013-7-11 10:46:58 | 只看該作者
示例就是報表

點(diǎn)擊這里給我發(fā)消息

7#
發(fā)表于 2013-7-11 11:39:14 | 只看該作者
good!
回復(fù)

使用道具 舉報

8#
發(fā)表于 2013-7-11 13:02:11 | 只看該作者
先下手為強(qiáng)
9#
發(fā)表于 2013-7-11 21:12:52 | 只看該作者
非常厲害              
10#
發(fā)表于 2013-7-11 21:14:59 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 10:34 , Processed in 0.103468 second(s), 39 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表