2013-05-03 45 views
0
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\itweb\Documents\Visual Studio 2010\WebSites\notitiae\databases\notitiae.accdb" 
    Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString) 

    Dim queryString As String = "SELECT [tblCounties].* FROM [tblCounties]" 
    Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand 
    dbCommand.CommandText = queryString 
    dbCommand.Connection = dbConnection 

    Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter 
    dataAdapter.SelectCommand = dbCommand 
    Dim DSCounties As System.Data.DataSet = New System.Data.DataSet 
    dataAdapter.Fill(DSCounties) 

好的。所以我使用上面的代碼連接到訪問2007年數據庫。現在我必須添加一個鏈接表,指向具有用戶級別保護的數據庫。研究已經向我展示瞭如何向連接字符串添加用戶名和密碼。 Dim connectionString As String =「Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\ Users \ itweb \ Documents \ Visual Studio 2010 \ WebSites \ notitiae \ databases \ notitiae.accdb; user name = user; password = PWD;」訪問數據庫,用戶級別的保護和vb.net

我還了解到我需要添加對工作組文件「V:\ DATABASE \ WORKDIR \ diodb.mdw」的引用。我的問題是,在線引用工作組文件的所有信息都使用ADODB連接,而不是使用我的OleDb連接,而使用jet 4而不使用ACE 12.添加工作組文件的語法是什麼?我試圖添加一個ADODB對象到我的Visual Studio項目,但VS不會添加ActiveX Data Objects 2.5的引用。這就是我使用OleDB的原因。

回答

0
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=C:\Users\itweb\Documents\Visual Studio 2012\Projects\Notitiae_project\Notitiae_project\App_Data\notitiae.accdb;" & "Jet OLEDB:System Database=V:\DATABASE\WORKDIR\diodb.mdw;" & "User ID=ITWeb;" & "Password=Mike1;" 
    Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString) 
    Dim queryString As String = "SELECT [tblCounties].* FROM [tblCounties]" 
    Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand 
    dbCommand.CommandText = queryString 
    dbCommand.Connection = dbConnection 

    Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter 
    dataAdapter.SelectCommand = dbCommand 
    Dim DSCounties As System.Data.DataSet = New System.Data.DataSet 
    dataAdapter.Fill(DSCounties) 
0

以下Excel VBA代碼有效,證明ACE.OLEDB仍然可以打開具有用戶級安全性的.mdb文件。請注意,.mdw文件的屬性仍使用Jet OLEDB:前綴。

Sub ulsTest() 
Dim con As ADODB.Connection, rst As ADODB.Recordset 
Set con = New ADODB.Connection 
con.Open _ 
     "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
     "Data Source=C:\Users\Public\ulsTest\ulsTest.mdb;" & _ 
     "Jet OLEDB:System Database=C:\Users\Public\ulsTest\Security.mdw;" & _ 
     "User ID=Gord;" & _ 
     "Password=obfuscated;" 
Set rst = New ADODB.Recordset 
rst.Open "SELECT * FROM ulsTable", con 
Debug.Print rst(0).Value 
rst.Close 
Set rst = Nothing 
con.Close 
Set con = Nothing 
End Sub 
+0

甜!我在你的例子中添加了連接字符串到我的連接對象,它允許我以用戶級安全性訪問鏈接到數據庫的表。謝謝 – RCDAWebmaster 2013-05-03 15:14:30