#336 エクスポートしたファイルを読み取り専用にする VBA

テーブルやクエリのエクスポートは一般的なTransferTextメソッドを使った方法ですが、そのあと、FileSystemObjectオブジェクトを使うことによって、エクスポートした先のファイル属性を変更します。

次のサンプルコードでは、まず"mtbl商品マスタ"テーブルを"c:\商品マスタ.txt"というテキストファイルにエクスポートします。続いてそのファイルオブジェクトを、FileSystemObjectオブジェクトのGetFileメソッドによって取得します。それをFileオブジェクトに代入し、そのAttributesプロパティの値を設定変更します。なお、Attributesプロパティの変更においては、現時点の属性に「読み取り専用(定数 readonly)」を加える形で設定します。ここでの「+」は足し算という意味合いではなく、属性をビット加算する意味合いとなります。

※このプログラムを実行するためには、「Microsoft Scripting Runtime」の項目に参照設定のチェックマークを付けておく必要があります。
※FileSystemObjectオブジェクトを使ったプログラミングにおいては、「CreateObjectメソッド」を使った方法もあります(Access Tips #96〜参照)。



Dim fso As New FileSystemObject
Dim ffile As File
Dim strFilePath As String

'エクスポート先ファイル名を設定
strFilePath = "c:\商品マスタ.txt"

'エクスポートを実行
DoCmd.TransferText acExportDelim, , "mtbl商品マスタ", strFilePath, True

'そのファイルに読み取り専用属性を追加
Set ffile = fso.GetFile(strFilePath)
ffile.Attributes = ffile.Attributes + readonly


読み取り専用になった状態
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved