• ベストアンサー

Access MDB の フィールド プロパティー取得

テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を取得したいのですが、どのようにすれば取得できるのでしょうか? フィールド名は取得できるのですが、他のが取れませんでした。 Access2000のモジュール、若しくはVB6で回答して頂けるとうれしいです。 よろしくお願いします。

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

  • ベストアンサー
noname#4564
noname#4564
回答No.1

  > テーブル(Access2000)のフィールドサイズ、フィールドタイプ等、フィールドの設計情報を > 取得したいのですが、どのようにすれば取得できるのでしょうか? > > フィールド名は取得できるのですが、他のが取れませんでした。 DAOのTableDefオブジェクトの以下の各プロパティを取得すればOKです。  ・ Name  ・ Type  ・ Size  ・ Attributes  ・ Description # ADOXを使う方法は調べていませんので、あしからず。 注意点としては、 (1) Descriptionプロパティ(Access のテーブルデザインで表示される「説明」部分に該当)は   拡張(オプション)プロパティであり、設定されていない場合もある。   設定されていない場合、プロパティにアクセスするとエラーになるので、エラー処理が必要。 (2) Typeプロパティは定数値を返すので、適切な語句に「翻訳」する必要がある。   (下記を参照) Public Function GetFieldTypeName(ByVal lngType As Long, ByVal lngAttr As Long) As String 'FieldオブジェクトのTypeプロパティを日本語表示に変換。 Select Case lngType Case dbLong GetFieldTypeName = "長整数型" If lngAttr = dbAutoIncrField Then GetFieldTypeName = "オートナンバー型" Case dbInteger GetFieldTypeName = "整数型" Case dbDate GetFieldTypeName = "日付/時刻型" Case dbText GetFieldTypeName = "テキスト型" Case dbCurrency GetFieldTypeName = "通貨型" Case dbBoolean GetFieldTypeName = "Yes/No型" Case dbSingle GetFieldTypeName = "単精度浮動小数点型" Case dbDouble GetFieldTypeName = "倍精度浮動小数点型" Case dbByte GetFieldTypeName = "バイト型" Case dbMemo GetFieldTypeName = "メモ型" If lngAttr = dbHyperlinkField Then GetFieldTypeName = "ハイパーリンク型" Case dbLongBinary GetFieldTypeName = "OLEオブジェクト型" Case dbBinary GetFieldTypeName = "バイナリ型" Case dbGUID GetFieldTypeName = "レプリケーションID型" End Select End Function  

wakaranai_kun
質問者

お礼

早速ご回答ありがとうございます。何とかなりました。

関連するQ&A

  • SQLでフィールド番号を指定する方法(VB2008

    お世話になっております。 VB2008を用いてアクセスのテーブルからデータを読み込もうとしているのですが(oledb接続)、 ・特定のフィールドからのみ値を取得したい ・そのフィールド指定は変動する これを満たす方法を、VB6では 格納変数=テーブル名.Fields(フィールド番号) によって取得出来ていたのですが、vb.netの場合どのような方法があるのかわかりません。 何かアドバイスを頂けると幸いです。

  • アクセスのフォームに乗っけられるフィールドは216

    アクセスのフォームに乗っけられるフィールドは216個? アクセス2010で、テーブルのフィールドは250個近くあります。 そのテーブルを元に、単表フォームを作ろうとウィザードを立ち上げたのですが どうしても216個目で「フォームを作成できません」になります。 フィールド名がおかしいのかな?と、216個目のフィールド名を適当な文字に変えてみましたが やはりエラーになります。 ヘルプ等にこのような記載はあるのでしょうか? 探せませんでした。

  • ACCESS-VBAでフィールド名の取得

    はじめまして。みかと申します。 フィールド数、フィールド名の可変長のテーブルを作成し、それにINSERT/UPDATEをかけたいと思っているのですが、可変長なものでフィールド名も変化し、フィールド数も変化します。 INSET/UPDATEする際には、フィールド名が必要ですよね? ですので、フォールド名を取得しないといけないのですが、調べてみたのですが、 よく分かりません。 どのように取得したらよいのでしょうか? どうぞ、よろしくお願いします。 環境はXP-PRo,ACCESS2003です。

  • ACCESSデータベースにVB6(DAO)でフィールドを追加したい

    既存のACCESSデータベースのテーブルにVB6のDAOでフィールドを追加したいのですが、テーブル名.Fields.Append とかいうメソッドがあるようですが、使用方法がわからずフィールドを追加が出来ません。 具体的には、フィールド名"電話番号"で、文字型で固定文字数13を追加したいのです。 どうぞよろしくお願いします。

  • Access2000のテーブルのフィールドについて

    Accessのテーブル設計で困っています。 担当者マスターテーブルに担当者CD(主キー)と担当者名のフィールドが入っています。取引先マスターテーブルには取引先CD、取引先名、担当者を2名いれたいのですが、どのようにしたらいいかわかりません。ひとつの取引先に2名の担当者がいる場合どのように管理をしたらいいでしょうか。1つの取引先に対し、1名の担当者だったら、担当者CDをいれクエリで出すことが出来るのですが、2名となるとどうなのでしょう? どなたかご教示ください!よろしくお願いいたします。

  • Accessでフィールドを追加したい

    Accessであるシステムを作成しているのですが、いくつか不明な点があるのでアドバイスをお願いします。 「社員情報」をいうテーブルがあり、初期の状態で「社員番号」「氏名」「入社年月日」「年齢」とフィールドがあります。 このテーブルを基にフォーム「社員情報入力」も作ってあります。 ここで新たに、社員情報テーブルに「生年月日」「連絡先」など、フィールドを追加したいのですが・・・以下のような条件があるので、どうしていいのかわからず困っています。 【条件】 ・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、そこからフィールドを追加させる。(直接テーブルはいじらせないため) ・追加したフィールドを社員情報入力フォームに反映(表示)させたい ・追加したフィールドをレポートにも反映(表示)させたい このような条件でフィールドの追加は無理なのでしょうか? アドバイスや参考になるページを教えてください。 よろしくお願いします。

  • Microsoft Accessのテーブルのテキスト型のフィールドサイズについて

    Microsoft Accessのテーブルを作成する際の、 テキスト型のフィールドサイズですが、全角で考えればいいのか、半角で考えればいいのかが、はっきり分かりません。 Ver.2002では、例えば5バイトの設定で、全角5文字が入力できてしまいます。どのように設計されているか、確かな情報が分からないので、ご存知の方、教えてください。 バージョンによっても、異なるのでしょうか。その辺りも教えてください。 よろしくお願いします。

  • アクセス フィールド 500個

    アクセスでは、1テーブルでフィールド個数が255までと、制限があるようですが、1レコードに500個のフィールドが必要となりました。2個のテーブルを開いて、500個のフィールドに対して、レコードを単票形式で入力できる様にするには、どうしたらよろしいか?よろしくお願いいたします。

  • Access2003のテーブルが、Access2007でフィールド名の順番が変わってしまいます

    Access2003のテーブルが、Access2007でフィールド名の順番が変わってしまいます。 PCが変わり、Access2003のデータをそのまま、新しいPCにコピーしました。 新しいPCではAccess2007が入っていました。 Accessで、テーブルをデータシートビューで開いたところ Access2003の時のフィールドの表示順が崩れてしまいました。 例えて言うと Access2003では   ListNo 文献ID 登録状況 備考 Access2007では   ListNo 登録状況 文献ID 備考 の順で表示されています。 これはデータシートビューで表示の順番が変わってしまうのですが デザインビューでは、順番は変わっていないのです。 Access2007でも、Access2003のテーブルでのフィールド名の順番のまま 表示させるにはどうしたらいいでしょうか? Access2007はほとんど使ったことがないため、無知です。 いろいろ調べてはみてるのですが、調べ方も下手なのだと思いますが、これという情報にたどり着けません。 時間がないため、こちらに質問しました。 助けていただければと思います。よろしくお願いいたします。

  • Accessでフィールドの結合

    Accessについて質問です。 例えばテーブルに都道府県、市区町村番地、マンション名のフィールドを作ります。 で、それらを入力すると3つとも結合されて同テーブル上にある別のフィールドに表示させたいと思っています。 ExcelではCONCATENATE関数を使えば結合して表示できるのですが、Accessでそのようにするにはどのようにすればよろしいでしょうか? また、市区町村番地とマンション名の間にスペースをつけたいと思っているのですが、スペースを入れる方法などはありますでしょうか?