【Access】AccessVBAでiniファイルを読み込む方法

スポンサーリンク

AccessのVBAからINIファイルを読み込む方法を紹介します。

実は、他の記事の中に紹介済みではあるのですが、探しにくいので・・

スポンサーリンク

1. モジュール作成

まずは、モジュールに下記のような関数を作成します。

API宣言

'Windows APIの宣言
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileStringA Lib "kernel32" (ByVal lpAppName$, ByVal lpKeyName$, ByVal lpDefault$, ByVal lpReturnString$, ByVal nSise%, ByVal lpFileName$) As Integer

' iniファイル
Public Const IniFileName = "hoge.ini"

関数1(INIファイル取得)

Rem ———————————————————————————-
Rem 関数名 : ReadINI
Rem 処理内容 : INIファイルの情報取得
Rem 引 数  : Section,Entry
Rem 戻り値  : 無し
Rem ———————————————————————————-
Public Function ReadINI(Section As String, Entry As String) As String
Dim n As String * 255
Dim rc As Long

rc = GetPrivateProfileString(Section, Entry, “”, n, 255, MyPath & IniFileName)
ReadINI = funLeftB(n, InStr(n, Chr(0)) – 1)

End Function

関数2(パス取得)

Rem -----------------------------------------------------------
Rem 関数名 : MyPath
Rem 処理内容 : パス情報の取得
Rem 引 数  : 無し
Rem 戻り値  : 無し
Rem -----------------------------------------------------------
Public Function MyPath()

MyPath = Application.CurrentProject.Path
If Right(MyPath, 1) <> "\" Then
MyPath = MyPath & "\"
End If

End Function

2. INIファイル作成

続いて、保存時にXXX.iniとファイル名を指定してaccessと一緒のフォルダに入れます。
メモ等で書いて保存します。hogeの箇所は環境によって修正してください。

INIファイルの設定例

[MYSQL]
SERVER_NAME=localhost
DB_NAME=hoge
DB_USER=root
DB_PASS=hoge
DRIVER_NAME=MySQL ODBC 5.1 DRIVER
[BACKUP]
BACKUP_PATH=C:\prj\access1\SYSTEM_BACKUP\

iniファイル便利です。最近小規模システムでは採用することが多いです。

3. INIファイルのメリット・デメリット

メリットは、DBの名前や環境をかえた時にvbaソースを修正しなくて良いこと
デメリットは、セキュリティ的に大丈夫なの?ということ

iniファイル採用の際は、お客様に確認して導入していますが
小規模だとその方がむしろ納品しやすくて喜ばれます。
というのは、やっぱりお客様環境とは微妙に環境が違うので
パスとかもろもろ、自由に指定できるほうが便利といえば便利なんですよね。
用途に応じて、バックアップパスだけiniファイルに入れるとかでも良いんじゃないかと思います。

また、帳票出力する際のPDF出力パスとか、画像パス等
VBA内の定数で定義するのもありだけど、定数よりiniファイルで指定した方がお客様も修正できるので便利です。

コメント

タイトルとURLをコピーしました