• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access VBAによるテーブル作成時の書式)

Access VBAによるテーブル作成時の書式

このQ&Aのポイント
  • Access VBAにおいて、テーブルを作成する際の書式設定についての方法を教えてください。
  • テーブル作成時に数値型のフィールドの書式を3桁にする方法が知りたいです。
  • テーブルのデザインでは書式を『000』とすることで3桁になりますが、VBAでテーブルを作成する際はどのようにすれば良いですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

リンク先をもう一度確認してください >Set prp = fld.CreateProperty("Format", dbInteger, "000") Set prp = fld.CreateProperty("Format", dbtext, "000") ですよ。 追加して fld.Properties.Append prp の後に Application.RefreshDatabaseWindow を足してください (無くても問題は有りませんがデータベースウィンドウが即更新します)

naoto0216
質問者

お礼

ご回答ありがとうございます。 早速、dbtextに変更したところ3桁になりました。 勉強不足ですみません。この箇所はてっきり当該フィールドのデータ型を指定する所かと思い、dbintegerとした次第です。 ありがとうございました。 大変助かりました。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

こちらで解決するでしょう。 http://www.ruriplus.com/msaccess/Exp/exp0140.htm ただ、DAO と ADO の両方に参照設定がしてあると 期待しない方のライブラリを見に行ってしまうかもしれないので Dim db As Database → なにもしない Dim tdef As TableDef → DAO.Tabledef Dim fld As Field → DAO.Field Dim prp As Property → DAO.Property にしてください。 んで、"@@@@"の部分を、"000" で、 また、『書式』が『Format』なのは分かったけど他のは?は、 設定していないものは参照できませんので一旦手作業で設定します その後 Sub てすと() Dim db As Database Dim tdf As DAO.TableDef Dim fld As DAO.Field Dim prp As DAO.Property On Error Resume Next Set db = Application.CurrentDb Set tdf = db.TableDefs("てーぶる名") For Each fld In tdf.Fields Debug.Print "fieldName= " & fld.Name For Each prp In fld.Properties Debug.Print , "name=" & prp.Name _ , "type= " & prp.Type _ , "value= " & prp.Value Next Next End Sub なんてので調べてました。

naoto0216
質問者

お礼

ご回答ありがとうございます。 教えて頂いたサイトを参考にし、以下のようにしました。 しかし、テーブル自体は作成されますが、やはり書式が設定できません。 Dim db As Database Dim tdef As DAO.TableDef Dim fld As DAO.Field Dim prp As DAO.Property Set db = CurrentDb Set tdef = db.CreateTableDef("TBL") Set fld = tdef.CreateField("A番号", dbInteger) tdef.Fields.Append fld tdef.Fields.Refresh db.TableDefs.Append tdef db.TableDefs.Refresh Set fld = tdef.Fields("A番号") Set prp = fld.CreateProperty("Format", dbInteger, "000") fld.Properties.Append prp どこか間違っておりますでしょうか。

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.2

こちらなどが分かりやすいですね。 http://www.accessclub.jp/bbs3/0461/superbeg135048.html

naoto0216
質問者

お礼

ご回答ありがとうございます。 教えて頂いたサイトを参考にし、以下のようにしました。 しかし、テーブル自体は作成されますが、やはり書式が設定できません。 Dim oDb As DAO.Database Dim oTd As DAO.TableDef Dim oPrp As DAO.Property Dim flTNK As DAO.Field Set oDb = CurrentDb Set oTd = oDb.CreateTableDef("TBL") Set flTNK = oTd.CreateField("A番号", dbInteger) oTd.Fields.Append flTNK oDb.TableDefs.Append oTd Set oPrp = flTNK.CreateProperty("Format", dbInteger, "000") flTNK.Properties.Append oPrp どこか間違っておりますでしょうか。

  • KEN87778
  • ベストアンサー率66% (4/6)
回答No.1

以下ではだめですか? ctb.Fields.Append ctb.CreateField("A番号", dbInteger , 3)

naoto0216
質問者

お礼

早速のご回答ありがとうございます。 試してみましたが、3桁にはなりませんでした。 また、 ctb.Fields.Append ctb.CreateField("A番号", dbInteger , "000") もダメでした。

関連するQ&A