|
|||||
<このサンプルの概要> System.Data.OleDbを使用しアクセスMDBのパスワードを変更するサンプル(VB.NET) です。 アクセスMDBのパスワードを変更するSQLは"ALTER DATABASE PASSWORD [NewPsw] [OldPsw]"です。 このSQLを実行するには排他モードでDBオープンする必要があるため、コネクション文字列に "Mode=Share Exclusive;"を指定する必要があります。 ところで、、、 このサンプルではプロバイダとしてMicrosoft.Jet.OLEDB.4.0を使用していますが、 これはx86(32ビット)でのみ有効でx64(64ビット)では使用出来ません。 x64(64ビット)のパソコンでMicrosoft.Jet.OLEDB.4.0を使用するためには、 x86(32ビット)モードでコンパイルする必要があります。 x86(32ビット)モードでコンパイルするためには、[プロジェクト]の[プロパティ]で [コンパイル]の[詳細コンパイルオプション]の[ターゲットCPU]を[x86]にします。 データベース関係のその他のサンプル(VB6/VB.NET/C#.NET)はこちらです。 データベース関係のその他のサンプル(VB6/VB.NET/C#.NET) ★クラス(Class1.vb) Imports System.Data.OleDb Public Class Class1 ''' <summary> ''' ACCESS MDBファイルのパスワード変更 ''' </summary> ''' <param name="mdbp">MDBファイルPATH</param> ''' <param name="oldp">旧パスワード</param> ''' <param name="newp">新パスワード</param> ''' <remarks></remarks> Public Shared Sub AccessMdbPasswd( _ ByVal mdbp As String, ByVal oldp As String, ByVal newp As String) ' ACCESS MDB オープン Dim dbCon As OleDbConnection = New OleDbConnection() Dim cst As String = "" cst = cst & "Provider=Microsoft.Jet.OLEDB.4.0;" cst = cst & "Data Source=" & mdbp & ";" If oldp <> "" Then cst = cst & _ "Jet OLEDB:Database Password=" & oldp & ";" End If cst = cst & "Mode=Share Exclusive;" dbCon.ConnectionString = cst dbCon.Open() ' 旧パスワード用のSQL生成 If oldp = "" Then oldp = "NULL" Else oldp = "[" & oldp & "]" End If ' 新パスワード用のSQL生成 If newp = "" Then newp = "NULL" Else newp = "[" & newp & "]" End If ' ACCESS MDB パスワード変更 Dim sql As String = _ "ALTER DATABASE PASSWORD " & newp & " " & oldp Dim dbCmd As OleDbCommand = New OleDbCommand(sql, dbCon) dbCmd.ExecuteNonQuery() ' ACCESS MDB クローズ dbCon.Close() dbCon.Dispose() End Sub End Class ★フォームモジュール(Form1.vb) Public Class Form1 Private Sub Button1_Click( _ ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' パスワード(無し)→パスワード(abc)変更 Class1.AccessMdbPasswd("D:\Temp\db1.mdb", "", "abc") ' パスワード(abc)→パスワード(123)変更 Class1.AccessMdbPasswd("D:\Temp\db1.mdb", "abc", "123") ' パスワード(123)→パスワード(無し)変更 Class1.AccessMdbPasswd("D:\Temp\db1.mdb", "123", "") End Sub End Class |