TOOL_テキストファイル情報収集_初回準備
Option Compare Database
Option Explicit
' 初回起動準備用
' このモジュールはTOOL作成時、フォーム・テーブル・クエリを作成します。
' 作成後はアクセスことはありません。
' 初回起動時準備
' ツールの設計上必要なパーツを作成します。
' 引数:なし
Public Sub 初回起動時準備()
フォーム作成
テーブル作成
クエリ作成
クエリ作成_削除
End Sub
' フォーム作成
' 引数:なし
' 戻り値:なし
Private Function フォーム作成()
Dim mForm As Form
Dim AdjustSize As Long
AdjustSize = 567 ' 567twip = 1cm
' 1.フォームの動的生成
Set mForm = CreateForm
' 2.フォームの設定
' フォームの種類
mForm.DefaultView = 0
' フォームの縦横のサイズ
'単位:twip
mForm.Section(0).Height = 12 * AdjustSize
mForm.Width = 8 * AdjustSize
'標題
mForm.Caption = "ファイル情報取得フォーム"
'レコードセレクタ
mForm.RecordSelectors = False
' 表示設定
mForm.Visible = True
mForm.OnLoad = "=FormFormat()"
' 3.パーツ付与
Call パーツ設定(mForm, AdjustSize)
' 4.フォームのサイズを戻す
DoCmd.Restore
' 5.フォームを開く
DoCmd.OpenForm mForm.Name, acDesign
' 6.フォームのウィンドウ位置とサイズを修正
DoCmd.MoveSize 0, 0, 9 * AdjustSize, 12 * AdjustSize
' 7.フォームを保存
DoCmd.Save , "ファイル情報取得フォーム"
' 8.フォームを閉じる
DoCmd.Close , , acSaveNo
End Function
' パーツ作成
' フォーム上に存在するすべてのパーツを作成・配置します
' 引数:あり
' iForm : Form :配置するフォーム
' iAS ; Long :配置位置の座標を設定する際に使用する単位変換値
' 戻り値:なし
Private Function パーツ設定(ByVal iForm As Form, ByVal iAS As Long)
Dim LabelTitleObj As Control
Dim LabelEssentialObj As Control
Dim LabelFolderPathObj As Control
Dim TextFolderPathObj As Control
Dim OptionGroupFilePatternObj As Control
Dim LabelFilePatternObj As Control
Dim RadioFilePatternTxtObj As Control
Dim LabelFilePatternTxtObj As Control
Dim RadioFilePatternCsvObj As Control
Dim LabelFilePatternCsvObj As Control
Dim LabelOptionObj As Control
Dim LabelOptionCountObj As Control
Dim ChkboxHasHeaderLineObj As Control
Dim LabelHasHeaderLineObj As Control
Dim ChkboxHasUselessLineObj As Control
Dim LabelHasUselessLineObj As Control
Dim BtnListResetObj As Control
Dim ChkboxIsListResetObj As Control
Dim LabelIsListResetObj As Control
Dim BtnGetFileInfosObj As Control
' 1.タイトルラベルの設定
Set LabelTitleObj = CreateControl(iForm.Name, acLabel, , , , 0.25 * iAS, 0.5 * iAS)
LabelTitleObj.Name = "フォームタイトル"
LabelTitleObj.Width = 6 * iAS
LabelTitleObj.Height = 1 * iAS
LabelTitleObj.Caption = "指定フォルダ内のテキストファイル情報を取得・リスト化します"
LabelTitleObj.FontSize = 10
' 2.初期化実行ボタン
Set BtnListResetObj = CreateControl(iForm.Name, acCommandButton, , , , 2.5 * iAS, 1.7 * iAS)
BtnListResetObj.Name = "初期化実行"
BtnListResetObj.Width = 3 * iAS
' BtnListResetObj.Height = 0.5 * iAS
BtnListResetObj.Caption = "初期化実行"
BtnListResetObj.FontSize = 10
BtnListResetObj.OnClick = "=ResetTableRecord()"
' 3.必須項目のタイトルラベルの設定
Set LabelEssentialObj = CreateControl(iForm.Name, acLabel, , , , 0.25 * iAS, 3 * iAS)
LabelEssentialObj.Name = "必須入力タイトル"
LabelEssentialObj.Width = 6 * iAS
LabelEssentialObj.Height = 0.5 * iAS
LabelEssentialObj.Caption = "【必須入力設定】"
LabelEssentialObj.FontSize = 10
LabelEssentialObj.FontBold = True
LabelEssentialObj.ForeColor = RGB(0, 0, 255)
' 4.フォルダパス項目のラベル
Set LabelFolderPathObj = CreateControl(iForm.Name, acLabel, , "フォルダパス項目", , 0.25 * iAS, 3.8 * iAS)
LabelFolderPathObj.Name = "フォルダパスラベル"
LabelFolderPathObj.Width = 6 * iAS
LabelFolderPathObj.Height = 0.5 * iAS
LabelFolderPathObj.Caption = "・フォルダパス"
LabelFolderPathObj.FontSize = 10
' 5.フォルダパス項目
Set TextFolderPathObj = CreateControl(iForm.Name, acTextBox, , , , 0.5 * iAS, 4.3 * iAS, , 0.5 * iAS)
TextFolderPathObj.Name = "フォルダパス項目"
TextFolderPathObj.Width = 6 * iAS
TextFolderPathObj.Height = 0.5 * iAS
TextFolderPathObj.FontSize = 10
' 6.検索ファイル
Set OptionGroupFilePatternObj = CreateControl(iForm.Name, acOptionGroup, , , , 0.25 * iAS, 5 * iAS)
OptionGroupFilePatternObj.Name = "検索ファイル"
OptionGroupFilePatternObj.Width = 7 * iAS
OptionGroupFilePatternObj.Height = 2 * iAS
OptionGroupFilePatternObj.BorderStyle = 0
OptionGroupFilePatternObj.SpecialEffect = 0
' 7.検索ファイルのラベル
Set LabelFilePatternObj = CreateControl(iForm.Name, acLabel, , , , 0.25 * iAS, 5 * iAS)
LabelFilePatternObj.Name = "検索ファイルラベル"
LabelFilePatternObj.Width = 6 * iAS
LabelFilePatternObj.Height = 0.5 * iAS
LabelFilePatternObj.Caption = "・検索ファイル"
' 8.検索ファイル(TXT)
Set RadioFilePatternTxtObj = CreateControl(iForm.Name, acOptionButton, , OptionGroupFilePatternObj.Name, , 0.5 * iAS, 5.5 * iAS)
RadioFilePatternTxtObj.Name = "検索ファイル_TXT"
RadioFilePatternTxtObj.OptionValue = 1
' 9.検索ファイル(TXT)のラベル
Set LabelFilePatternTxtObj = CreateControl(iForm.Name, acLabel, , , , 1.2 * iAS, 5.5 * iAS)
LabelFilePatternTxtObj.Name = "検索ファイル_TXTラベル"
LabelFilePatternTxtObj.Width = 4 * iAS
LabelFilePatternTxtObj.Height = 0.5 * iAS
LabelFilePatternTxtObj.Caption = "*.txt"
' 10.検索ファイル(CSV)
Set RadioFilePatternCsvObj = CreateControl(iForm.Name, acOptionButton, , OptionGroupFilePatternObj.Name, , 0.5 * iAS, 6 * iAS)
RadioFilePatternCsvObj.Name = "検索ファイル_CSV"
RadioFilePatternCsvObj.OptionValue = 2
' 11.検索ファイル(CSV)のラベル
Set LabelFilePatternCsvObj = CreateControl(iForm.Name, acLabel, , , , 1.2 * iAS, 6 * iAS)
LabelFilePatternCsvObj.Name = "検索ファイル_CSVラベル"
LabelFilePatternCsvObj.Width = 4 * iAS
LabelFilePatternCsvObj.Height = 0.5 * iAS
LabelFilePatternCsvObj.Caption = "*.csv"
' 12.オプション項目のタイトルラベルの設定
Set LabelOptionObj = CreateControl(iForm.Name, acLabel, , , , 0.25 * iAS, 7 * iAS)
LabelOptionObj.Name = "オプションタイトル"
LabelOptionObj.Width = 6 * iAS
LabelOptionObj.Height = 0.7 * iAS
LabelOptionObj.Caption = "【オプション設定】"
LabelOptionObj.FontSize = 10
LabelOptionObj.FontBold = True
LabelOptionObj.ForeColor = RGB(0, 0, 255)
' 13.行数カウントオプションのラベル
Set LabelOptionCountObj = CreateControl(iForm.Name, acLabel, , , , 0.25 * iAS, 7.7 * iAS)
LabelOptionCountObj.Name = "行数カウントオプション"
LabelOptionCountObj.Width = 6 * iAS
LabelOptionCountObj.Height = 0.5 * iAS
LabelOptionCountObj.Caption = "・行数カウントオプション"
LabelOptionCountObj.FontSize = 10
' 14.ヘッダー行の有無
Set ChkboxHasHeaderLineObj = CreateControl(iForm.Name, acCheckBox, , , , 0.5 * iAS, 8.2 * iAS)
ChkboxHasHeaderLineObj.Name = "チェック_ヘッダー行有無"
' 15.ヘッダー行の有無のラベル
Set LabelHasHeaderLineObj = CreateControl(iForm.Name, acLabel, , , , 1.2 * iAS, 8.2 * iAS)
LabelHasHeaderLineObj.Name = "チェック_ヘッダー行有無ラベル"
LabelHasHeaderLineObj.Width = 6 * iAS
LabelHasHeaderLineObj.Height = 0.5 * iAS
LabelHasHeaderLineObj.Caption = "ヘッダー行あり"
LabelHasHeaderLineObj.FontSize = 10
' 16.実行ボタンの設定
Set BtnGetFileInfosObj = CreateControl(iForm.Name, acCommandButton, , , "実行ボタン", 2.5 * iAS, 9.5 * iAS, 2 * iAS)
BtnGetFileInfosObj.Caption = "実行"
BtnGetFileInfosObj.OnClick = "=GetFileInfos()"
BtnGetFileInfosObj.FontSize = 10
BtnGetFileInfosObj.Width = 3 * iAS
End Function
' テーブル作成
' 引数:なし
' 戻り値:なし
Private Function テーブル作成()
Dim ACC_CheckAFObj As ACC_CheckAccessFile
Dim dbObj As DAO.Database
Dim dbTblDef As DAO.TableDef
Dim tableName As String
' 1.DB・チェッククラスの初期化
Set ACC_CheckAFObj = New ACC_CheckAccessFile
Set dbObj = CurrentDb
' 2.作成するテーブル名の設定
tableName = "FileInfosList"
' 3.テーブルが既に存在する場合削除
If ACC_CheckAFObj.HasSelectedTable(dbObj, tableName) <> False Then
dbObj.TableDefs.Delete tableName
End If
' 4.新規テーブルの定義を作成
Set dbTblDef = dbObj.CreateTableDef(tableName)
' 5.定義したテーブルに項目を追加する
dbTblDef.Fields.Append dbTblDef.CreateField("FolderPath", dbText)
dbTblDef.Fields.Append dbTblDef.CreateField("FileName", dbText)
dbTblDef.Fields.Append dbTblDef.CreateField("FileSize", dbLong)
dbTblDef.Fields.Append dbTblDef.CreateField("RecordCout", dbLong)
dbTblDef.Fields.Append dbTblDef.CreateField("CreateDate", dbDate)
dbTblDef.Fields.Append dbTblDef.CreateField("LastUpdateDate", dbDate)
dbTblDef.Fields.Append dbTblDef.CreateField("CheckDate", dbDate)
' 6.新規テーブルの作成
dbObj.TableDefs.Append dbTblDef
' 7.項目の表示形式の設定
dbTblDef.Fields("CreateDate").Properties.Append dbTblDef.Fields("CreateDate").CreateProperty("Format", dbText, "yyyy/MM/dd hh:nn:ss")
dbTblDef.Fields("LastUpdateDate").Properties.Append dbTblDef.Fields("LastUpdateDate").CreateProperty("Format", dbText, "yyyy/MM/dd hh:nn:ss")
dbTblDef.Fields("CheckDate").Properties.Append dbTblDef.Fields("CheckDate").CreateProperty("Format", dbText, "yyyy/MM/dd hh:nn:ss")
End Function
' クエリ作成
' 引数:なし
' 戻り値:なし
Private Function クエリ作成()
Dim ACC_CheckAFObj As ACC_CheckAccessFile
Dim dbObj As DAO.Database
Dim dbQueryDef As DAO.QueryDef
Dim tableName As String
Dim queryName As String
Dim strSQL As String
' 1.DB・チェッククラスの初期化
Set ACC_CheckAFObj = New ACC_CheckAccessFile
Set dbObj = CurrentDb
' 2.作成するクエリ名の設定
queryName = "ファイル情報リスト_JP"
' 3.作成クエリの処理先テーブル名を設定
tableName = "FileInfosList"
' 4.クエリが既に存在する場合削除
If ACC_CheckAFObj.HasSelectedQuery(dbObj, queryName) <> False Then
dbObj.QueryDefs.Delete queryName
End If
' 5.SQL文の作成
strSQL = "SELECT " & _
"FolderPath AS フォルダ, " & _
"FileName AS ファイル名, " & _
"FileSize AS ファイルサイズ, " & _
"RecordCout AS 行数, " & _
"CreateDate AS 作成日, " & _
"LastUpdateDate AS 更新日, " & _
"CheckDate AS 確認日 " & _
"FROM " & tableName & ";"
' 6.新規クエリの定義作成
Set dbQueryDef = dbObj.CreateQueryDef(queryName, strSQL)
' 7.不要オブジェクトの解放
Set dbQueryDef = Nothing
Set dbObj = Nothing
End Function
Private Function クエリ作成_削除()
Dim ACC_CheckAFObj As ACC_CheckAccessFile
Dim dbObj As DAO.Database
Dim dbQueryDef As DAO.QueryDef
Dim tableName As String
Dim queryName As String
Dim strSQL As String
' 1.DB・チェッククラスの初期化
Set ACC_CheckAFObj = New ACC_CheckAccessFile
Set dbObj = CurrentDb
' 2.作成するクエリ名の設定
queryName = "ファイル情報リスト_初期化"
' 3.作成クエリの処理先テーブル名を設定
tableName = "FileInfosList"
' 4.クエリが既に存在する場合削除
If ACC_CheckAFObj.HasSelectedQuery(dbObj, queryName) <> False Then
dbObj.QueryDefs.Delete queryName
End If
' 5.SQL文の作成
strSQL = "Delete * From " & tableName
' 6.新規クエリの定義作成
Set dbQueryDef = dbObj.CreateQueryDef(queryName, strSQL)
' 7.不要オブジェクトの解放
Set dbQueryDef = Nothing
Set dbObj = Nothing
End Function
2013/05/14 修正
2013/05/15 全面改訂
最終更新:2013年05月16日 01:38