dao與Access資料庫
㈠ 如何在VB中用DAO方法創建、打開、修改資料庫
引用DAO類型庫
1、從「工程」菜單中選擇「引用」菜單項;
2、在可引用列表框中選擇「Microsoft DAO 3.51 Object Library」項。
3、最後「確定」即可
設置DAO數據類型變數
DAO數據類型變數共分成兩種:
1、Database變數
對應於Access資料庫,通常在模塊中被定義為Public全程變數:
Public AccessDBF As Database
'定義資料庫對象實例AccessDBF
2、RecordSet變數
對應於Access資料庫中的一個表,可定義為全程變數或局部變數,亦可作殲鋒為函數參數進行傳遞:
Dim thePrintTable As RecordSet
'定義一個表對象實例thePrintTable
打開DAO數據類型
1、打開Access的方法
通常可設置一個專門的Public函數用來打開一個Access資料庫,並且該函數在啟動窗體的Private Sub Form_load ( )過程中被調用,函數定義格式如下:
Public Sub OpenDatabase ( )
Dim sConeect As String
SConnect = ";PWD = 8830428; UID = admin "
'設置打開時的用戶名、口令等參數
Set AccessDBF = Nothing
'確認關閉對象實例
Set AccessDBF = WorksPaces (0 ).OpenDatabase (App.Path&&"/ToXls.MDB",False,sConnect)
'打開當前路徑的ToXls.MDB資料庫
End Sub
2、打開RecordSet的方法
RecordSet遵循即用即開的原則,所以它通常在函數中打開
Set thePrintTable = AcessDBF.OpenRecordSet ( "Table_1",dbOpenSnapshot )
相關的數據操作
數據實際需要對Access表中的記錄、欄位、數據項進行操作。下列雙早判重循環把數據氏睜晌輸出到Excel對應的單元格中:
For j = 0 To 2
For I = 0 To 3
ThePrintTable.MoveNext
Excel.Sheet.Range ( Trim ( chr ( 71+j*10+I ) )+"G").Value = thePrintTable.Fields (0)
Next I
Next j
關閉資料庫
1、關閉Database
它通常在整個應用程序的最後進行操作,即通常出現在Private Sub Form_unload (Cannel As Interger )過程中。命令格式實例如下:
AccessDBF.Close
2、關閉RecordSet
它遵循用完即關的原則,所以通常出現在函數中。當完成了相關的數據操作後就關閉它,下次再用時再打開即可:
thePrintTable.Close
㈡ VB怎麼連接訪問Access資料庫
使用Visual Basic作為前端開發語言,與SQL Server介面有幾種常用的方法,即:
①數據訪問對象/Jet
②為ODBC API編程
③使用SQL Server的Visual Basic庫(VBSQL)為DB庫的API編程
④RDO 遠程數據對象(RemoteData Objects)
⑤ADO 數據對象(Active Data Objects)
1、數據訪問對象/Jet
VB支持Data Access Objects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—伺服器之間的對話方式,但它的確有許多優點。DAO/Jet是為了實現從VB訪問Access資料庫而開發的程序介面對象。使用DAOs訪問SQL Server的過程如下:應用程序准備好語句並送至Jet,Jet引擎(MASJT200.DLL)優化查詢,載入驅動程序管理器並與之通訊,驅動程序管理器(ODBC.DLL)通過調用驅動器(SQLSRVR.DLL)的函數,實現連接到數據源,翻譯並向SQL Server提交SQL語句且返回結果。下面是一個用DAOs訪問SQL Server的VB實例。
注釋:Form Declarations
Dim mydb As Database
Dim mydynaset As Dynaset オ
Private Sub Form_Load()
Set mydb = OpenDatabase("", False, False, "ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales")
Set mydynaset = mydb CreateDynaset("Select*from Customers") オ
End Sub ァ
上述例子是以非獨占、非只讀方式打開sales資料庫,並檢索Customers表中的所有欄位。OpenDatabase函數的最後一個參數是ODBC連接字元串參數,它指明了Microsoft Access連接到SQL Server所需要知道的一些內容。其中「DSN」為數據源名,「WSID」為工作站名,「DATABASE」為所要訪問的資料庫名。
2、利用ODBC API編程
ODBC(Open Database Connectivity)的思想是訪問異種資料庫的一種可移植的方式。與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器反過來通過驅動器(SQLSRVR.DLL)把它們送到伺服器中。
下面的代碼使用上面一些函數先登錄到一個伺服器資料庫,並為隨後的工作設置了語句句柄。
Global giHEnv As Long
Global giHDB As Long
Global giHStmt As Long
Dim myResult As integer
Dim myConnection As Srting
Dim myBuff As String*256
Dim myBufflen As Integer
If SQLAllocEnv(giHEnv)<>SQL_SUCCESS Then
MsgBox"Allocation couldn注釋:t happen!"
End If
If SQLAllocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then
MsgBox "SQL Server couldn注釋:t connect!"
End If
myConnection="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales"
myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)
myResult=SQLAllocStmt(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rsSQL="Select * from Customers Where City = "Hunan""
myResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))
3、使用VBSQL對DB庫API編程
DB庫是SQL Server的本地API,SQL Server的Visual Basic庫(VBSQL)為Visual Basic程序員提供API。從一定意義上說,VBSQL是連接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三個文件:
VBSQL.VBX: 包含庫函數,具有訪問重要的消息和處理錯誤的能力