プロが教える店舗&オフィスのセキュリティ対策術

SQLを使って、新たにテーブルにフィールドを追加したのですが(Yes/No型で)テーブルの表示が0とー1になってしまいます。これを□の形式にしたいのですが(書式をYes/No型に変換したい)どうすればよいでしょうか?
ちなみにSQLは
ALTER TABLE aaaa ADD bb BIT
で追加しました。これだとテーブル表示が-1 or 0です。
困ってます。よろしくお願いします。

A 回答 (1件)

テーブルのフィールドをチェックボックス型にするには、"DisplayControl/表示コントロール" プロパティを設定してやる必要があり、これをVBAで設定するには、DAO(私はADOについては詳しくありませんので、DAOでご容赦ください。

)を使って行います。
(DAOを使いますので、はじめにモジュールウィンドウを開いて、ツール→参照設定で、 Microsoft DAO 3.* Object Library がチェックされていないようでしたら、チェックしておいてください。)

以下に、コードを示します。
(せっかくDAOを使いますので、フィールドの追加も ALTER TABLE ではなく、DAOの Append fld で行うようにしています。)

‘各変数を宣言
Dim dbs As DAO.Database, tdf As DAO.TableDef, fld As DAO.Field, prp As DAO.Property
‘変数dbs を現在のデータベースに設定
Set dbs = CurrentDb
‘変数tdf を ”aaaa” テーブルに設定
Set tdf = dbs.TableDefs!aaaa
‘変数fld をブール型のフィールド “bb” とし、”aaaa” テーブルに追加
Set fld = tdf.CreateField("bb", dbBoolean)
tdf.Fields.Append fld
‘変数prp を整数型のプロパティ “DisplayControl” とし、”bb” フィールドに追加
Set prp = fld.CreateProperty("DisplayControl", dbInteger, acCheckBox)
Call fld.Properties.Append(prp)
‘各変数のメモリー領域を開放
Set prp = Nothing
Set fld = Nothing
Set tdf = Nothing
Set dbs = Nothing

ちなみに、DisplayControl プロパティは、明示的に Properties コレクションに追加してやらないとVBAから参照できません(HELPでは、Field オブジェクトのプロパティには載っていません。)ので、Set prp =fld.~ 以下の2行で、追加をしています。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!