Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2013)
VBAでテーブルの作成とフィールドの書式設定をしたい
投稿日時: 19/06/27 11:15:32
投稿者: yamasho

お世話になります。
 
VBAでテーブルの作成とフィールドーの書式設定をしたいです。
下記のコードで出来たのですが、
いったんテーブルを作成して、
ひとつめのフィールドの書式設定、
ふたつめのフィールドの書式設定、
という流れになっていて、
もっとスマートに出来ないかと思いました。
 
それともこんなもんなんでしょうか?
 
ご助言お願いいたします。
 
---------------------------------------------------------------------------------
'テーブルの作成
     
    Set db = CurrentDb
    Set Table_Name = db.CreateTableDef("T_テスト")
     
    With Table_Name
        .Fields.Append .CreateField("会員番号", dbLong)
        .Fields.Append .CreateField("氏名", dbText)
        .Fields.Append .CreateField("変更日", dbDate)
    End With
     
    db.TableDefs.Append Table_Name
     
     
'書式の設定
     
    Set db = CurrentDb
    Set Table_Name = db.TableDefs("T_テスト")
     
    Set Field_Name = Table_Name.Fields("会員番号")
    Set Property_Name = Field_Name.CreateProperty("Format", dbText, "#,##0")
    Field_Name.Properties.Append Property_Name
     
    Set Field_Name = Table_Name.Fields("変更日")
    Set Property_Name = Field_Name.CreateProperty("Format", dbText, "yyyy/mm/dd")
    Field_Name.Properties.Append Property_Name
 
 

回答
投稿日時: 19/06/27 11:43:01
投稿者: sk

引用:
もっとスマートに出来ないかと思いました。

ここでいう「スマートさ」がどのような意味合いであるか次第。

回答
投稿日時: 19/06/27 16:54:51
投稿者: Suzu

短いコードと言うなら
 
・プロパティー設定 直前に新たに db を参照しなおしているが不要。
    (念のため Refresh を入れれば充分と思います)
・フィールド参照を テーブル参照の様にWith を使い、Append と CreateProperty を一行に。
 
・フィールドをテーブルに追加後 でないと、プロパティの作成はできないので
   With Table_Name の中で Propertty の作成 は不可だったと思います。
 
Set db = CurrentDb
Set Table_Name = db.CreateTableDef("T_テスト")
 
With Table_Name
    .Fields.Append .CreateField("会員番号", dbLong)
    .Fields.Append .CreateField("氏名", dbText)
    .Fields.Append .CreateField("変更日", dbDate)
End With
 
db.TableDefs.Append Table_Name
db.TabkeDefs.Refresh
 
With Table_Name.Fields("会員番号")
    .Properties.Append .CreateProperty("Format", dbText, "#,##0")
End With
 
With Table_Name.Fields("変更日")
    .Properties.Append .CreateProperty("Format", dbText, "yyyy/mm/dd")
End With

投稿日時: 19/06/28 11:09:07
投稿者: yamasho

お世話になります。
 
sk様
 
言葉足らずで失礼しました。
よけいな行がないか?
という意味でした。
 
Suzu様
 
教えていただいた方法でできました。
見た目のスッキリしました。
 
おふた方、ありがとうございました。
 

投稿日時: 19/06/28 11:09:30
投稿者: yamasho

解決済みにするのを忘れました。