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)

Ok。したがって、上記のコードを使用して access 2007 DB に接続しています。ここで、ユーザー レベルの保護を持つ DB を指すリンク テーブルを追加する必要があります。調査により、接続文字列にユーザー名とパスワードを追加する方法が示されました。Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0; データ ソース=C:\Users\itweb\Documents\Visual Studio 2010\WebSites\notitiae\databases\notitiae.accdb; ユーザー名=user; パスワード=pwd ;"

また、ワークグループ ファイル「V:\DATABASE\WORKDIR\diodb.mdw」への参照を追加する必要があることもわかりました。私の問題は、オンラインでワークグループ ファイルを参照するすべての情報が、OleDb 接続ではなく ADODB 接続を使用し、ACE 12 ではなく Jet 4 を使用していることです。ワークグループ ファイルを追加するための構文は何ですか? Visual Studio プロジェクトに ADODB オブジェクトを追加しようとしましたが、VS は ActiveX Data Objects 2.5 の参照を追加しませんでした。そのため、OleDB を使用しています。

4

2 に答える 2

0

次の Excel VBA コードは機能し、ユーザー レベルのセキュリティでファイルをACE.OLEDB開くことができることを証明しています。ファイルの属性は引き続きプレフィックスを使用.mdbすることに注意してください。.mdwJet 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
于 2013-05-03T14:35:06.503 に答える
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)
于 2013-05-06T12:39:16.103 に答える