Accessって煩わしいよね・・・って拒否感示す人いますよね?
だったら、Excelで操作画面作っちゃえ!!の発想です。
特定セルに条件をいれて、エクセル上にボタンを作成し、クリックでAccessの処理を実行します。
途中で落ちたりするとプロセスがのこっちゃう処理を考えなきゃいけんです・・
あと、エラー処理も・・・
'-----------------------------------------------------------------------------------------
Sub 集計を開始する_Click()
'参照設定:[Microsoft Access 9.0 ObjectLibrary]
'セルにはそれぞれ、名称を設定しています。
Range("処理状況").Value = "処理を実行中です。"
Dim AccessTG As String '操作するAccessファイル
AccessTG = Range("対象フォルダ").Value & "\" & Range("アクセスデータ").Value
Dim TG_CSV As String 'Sub中で使う変数
TG_CSV = Range("対象ファイル").Value
Dim rc As Integer
rc = MsgBox("集計処理を行いますか?", vbYesNo + vbQuestion, "確認")
If rc = vbYes Then
'-------------------------------------------------------------
' ↓処理↓
'-------------------------------------------------------------
Dim objACCESS As Object
Set objACCESS = CreateObject("Access.Application")
objACCESS.OpenCurrentDatabase AccessTG
With objACCESS
.Visible = False 'Accessを非表示
.UserControl = False 'Accessのユーザ操作なし
'処理の変化に併せてセル内容を変更も可能
Range("処理状況").Value = "データ取得中"
"call csv_import (CSVファイル,テーブル名)は .Runで次のようになる。
.Run "csv_import", TG_CSV, "TBL_UIM_data"
Range("処理状況").Value = "各種処理クエリ実行中"
'クエリーを実行する場合は次の通り
.DoCmd.OpenQuery "クエリー名"
'.hogehogeでAccess VBA同様の構文が書くことができる。
.Visible = True
.UserControl = True
.Quit '起こしたら終了
End With
Set objACCESS = Nothing
MsgBox "集計処理が完了しました"
'-------------------------------------------------------------
' ↑処理↑
'-------------------------------------------------------------
Range("処理状況").Value = "集計処理を実行しました。"
Exit Sub
Else
MsgBox "処理を中断します"
Range("処理状況").Value = "集計処理を中断しました。"
Exit Sub
End If
End Sub
'-----------------------------------------------------------------------------------------
だったら、Excelで操作画面作っちゃえ!!の発想です。
特定セルに条件をいれて、エクセル上にボタンを作成し、クリックでAccessの処理を実行します。
途中で落ちたりするとプロセスがのこっちゃう処理を考えなきゃいけんです・・
あと、エラー処理も・・・
'-----------------------------------------------------------------------------------------
Sub 集計を開始する_Click()
'参照設定:[Microsoft Access 9.0 ObjectLibrary]
'セルにはそれぞれ、名称を設定しています。
Range("処理状況").Value = "処理を実行中です。"
Dim AccessTG As String '操作するAccessファイル
AccessTG = Range("対象フォルダ").Value & "\" & Range("アクセスデータ").Value
Dim TG_CSV As String 'Sub中で使う変数
TG_CSV = Range("対象ファイル").Value
Dim rc As Integer
rc = MsgBox("集計処理を行いますか?", vbYesNo + vbQuestion, "確認")
If rc = vbYes Then
'-------------------------------------------------------------
' ↓処理↓
'-------------------------------------------------------------
Dim objACCESS As Object
Set objACCESS = CreateObject("Access.Application")
objACCESS.OpenCurrentDatabase AccessTG
With objACCESS
.Visible = False 'Accessを非表示
.UserControl = False 'Accessのユーザ操作なし
'処理の変化に併せてセル内容を変更も可能
Range("処理状況").Value = "データ取得中"
"call csv_import (CSVファイル,テーブル名)は .Runで次のようになる。
.Run "csv_import", TG_CSV, "TBL_UIM_data"
Range("処理状況").Value = "各種処理クエリ実行中"
'クエリーを実行する場合は次の通り
.DoCmd.OpenQuery "クエリー名"
'.hogehogeでAccess VBA同様の構文が書くことができる。
.Visible = True
.UserControl = True
.Quit '起こしたら終了
End With
Set objACCESS = Nothing
MsgBox "集計処理が完了しました"
'-------------------------------------------------------------
' ↑処理↑
'-------------------------------------------------------------
Range("処理状況").Value = "集計処理を実行しました。"
Exit Sub
Else
MsgBox "処理を中断します"
Range("処理状況").Value = "集計処理を中断しました。"
Exit Sub
End If
End Sub
'-----------------------------------------------------------------------------------------