スポンサーリンク

2009-03-18

ExcelとDAOで販売管理ソフトを作る 自社情報 Step3

Workbook_OpenイベントでMDBファイルが見つからない場合、新規にデータベースファイルを作成し、自社情報テーブルを作成します。

1) CreateDatabase でデータベースを作成します。
2) CreateField でフィールドを作成します。

作成するフィールドは下記にしました。
・ 自社名 テキスト型 30文字
・ 郵便番号 テキスト型 20文字
・ 住所1 テキスト型 50文字
・ 住所2 テキスト型 50文字
・ TEL テキスト型 30文字
・ FAX テキスト型 30文字
・ 振込先 テキスト型 50文字


■ThisWorkbookイベント
Option Explicit
'ブックが開いた時のイベント
Private Sub Workbook_Open()

'このExcelファイルがあるフォルダー
sExcelPath = ActiveWorkbook.Path
'末にパスが付いているかどうか
If Right(sExcelPath, 1) <> "\" Then
'パスを付ける
sExcelPath = sExcelPath + "\"
End If

'データファイルの存在確認
If ExFileExist(sExcelPath + "hanbai2009.mdb", vbNormal) = "" Then
'MsgBox "ここに、MDBファイルの新規作成処理を記入します。"
MyMakeDataBase
End If

End Sub


■データベース作成プロシージャ
Private Sub MyMakeDataBase()
Dim db As Database
Dim bRet As Boolean

' データベース作成
Set db = DBEngine.Workspaces(0).CreateDatabase(sExcelPath + "hanbai2009.mdb", dbLangJapanese)

bRet = MyMakeJisyajyouhou(db)

Set db = Nothing
End Sub


■フィールド作成プロシージャ
Private Function MyMakeJisyajyouhou(tdb As Database) As Boolean
Dim tbdef As TableDef
Dim fld As Field

On Error GoTo ErrExit
'テーブル作成
Set tbdef = tdb.CreateTableDef("T_自社情報")

'フィールド作成
Set fld = tbdef.CreateField("自社名", dbText, 30)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("郵便番号", dbText, 20)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("住所1", dbText, 50)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("住所2", dbText, 50)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("TEL", dbText, 30)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("FAX", dbText, 30)
tbdef.Fields.Append fld
Set fld = tbdef.CreateField("振込先", dbText, 50)
tbdef.Fields.Append fld

tdb.TableDefs.Append tbdef

'終了処理
Set fld = Nothing
Set tbdef = Nothing

MyMakeJisyajyouhou = True
Exit Function
ErrExit:
MyMakeJisyajyouhou = False
MsgBox "自社情報テーブル作成中にエラーが発生しました。処理を中止します。" & vbNewLine & Err.Description
End Function