.NET Framework を使って MS Access を操作するための PowerShell 関数は、System.Data.OleDb 名前空間を使用して、OLE DB 接続を介して MS Access データベースにアクセスします。以下は、MS Access データベースに対してクエリを実行する基本的な関数の例です。
PowerShell 関数の例:MS Access データベースからデータを取得
function Get-AccessData {
param (
[string]$databasePath, # MS Access データベースのパス
[string]$query # 実行するSQLクエリ
)
# OleDbConnection用の接続文字列を作成
$connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$databasePath;"
# データベースに接続
$connection = New-Object System.Data.OleDb.OleDbConnection($connectionString)
try {
$connection.Open()
# クエリを実行
$command = $connection.CreateCommand()
$command.CommandText = $query
# データの読み取り
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter($command)
$dataSet = New-Object System.Data.DataSet
$adapter.Fill($dataSet)
# データを返す
return $dataSet.Tables[0]
}
catch {
Write-Error "Error: $_"
}
finally {
# 接続を閉じる
if ($connection.State -eq 'Open') {
$connection.Close()
}
}
}
$databasePath = "C:\\path\\to\\your\\database.accdb"
$query = "SELECT * FROM TableName" # 例: テーブルから全データを取得
$result = Get-AccessData -databasePath $databasePath -query $query
$result | Format-Table
この関数は、MS Access データベースからデータを取得するためのもので、データベースのパスと実行したい SQL クエリをパラメータとして受け取ります。
Microsoft.ACE.OLEDB.12.0 プロバイダを使用して MS Access データベースに接続しています。必要に応じて、.mdb ファイルの場合は Microsoft.Jet.OLEDB.4.0 を使用してください。
try-catch-finally ブロックで接続を管理し、エラーが発生した場合はメッセージを表示し、接続が開いている場合は必ず閉じるようにしています。
この関数は、MS Access データベースからクエリを実行し、取得したデータを PowerShell のオブジェクトとして扱うことができます。クエリの内容を変更することで、SELECT、INSERT、UPDATE、DELETE などの操作が可能です。