• ベストアンサー

指定したテーブルのフィールドの数をカウント

指定したテーブルのフィールドの数をカウントするvbaコードはありますか? ADOXと言うのを使えばいいのでしょうか?

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

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

たとえば msgbox currentdb.Tabledefs("そのテーブル名").Fields.count とか。

cbwhnyanazn
質問者

お礼

回答頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

指定したテーブルというのがどのソフトであるかで違いますけど。Accessならsystemデーターベースで数えられます。SQLサーバーでもシステムストアドプロシージャで見れます。 当然ADOXでテーブルの項目をループさせ数えれば取得出来ます。

cbwhnyanazn
質問者

お礼

回答頂きありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ADOX 複数回フィールドを定義することは出来ませ

    アクセス2010ですが アクセスの仕様を見ると テーブル内のフィールド数の最大値は255なのですが ADOXでVBAでテーブルを作成してるのですが 実行時エラー -2147217858 複数回フィールドを定義することは出来ません。 と言うエラーになり、テーブルが作れません。 vbaコードの一部は Set cat = New ADOX.Catalog Set tbl = New ADOX.Table cat.ActiveConnection = CurrentProject.Connection tbl.Name = "test" For i = LBound(tmp) To 200 ' UBound(tmp) Col = tmp(i) tbl.Columns.Append Col, adVarWChar, 20 tbl.Columns(Col).Attributes = adColNullable Next i cat.Tables.Append tbl です。 ためしに To 200 を To 100 にしても同じようなエラーになりました。 何でエラーになるのでしょう???

  • フィールド数の多すぎる・フィールド数が一定でないテーブルのデータ結合の仕方?

    私は、accessについてあまり詳しくないものなのですが、仕事上50近くあるデータを一つにまとめたいんです。 データは2つありまして、 1.それぞれのテーブルが微妙にフィールド数が異なる場合の結合  例)・Aのテーブルのフィールド名     名前 クラス名 出身県 出身コード 血液型 性別        ・Bのテーブルのフィールド名    名前 出身県 血液型 性別    ・Cのテーブルのフィールド名    名前 クラス名 出身コード 血液型    ⇒このように微妙に異なる。しかもレコード数がかなり多いのです。これは、ユニオンクエリは使えないですよね?何かいい方法はないでしょうか? 2.テーブルの構造は同じなのですが、フィールド数が多くてユニオンクエリを使おうとすると、『フィールド数が多すぎる』とエラーメッセージがでてしまう。この場合の対処方法でいいのはないでしょうか? なにぶん、私はaccessをあまり使わないのでわかりにくい質問だと思いますが、どなたかすみませんが教えてください。お願いします。

  • Accessのテーブル内のフィールド数

    教えて下さい。 Access2003(2007)では、テーブル内のフィールド数が最大255となっていますが最大フィールド数255以上ある、Accessと同じようなものはあるのでしょうか?(OpenofficeのBase等) 他DBからテーブルをリンクテーブルで貼り付けているのですがフィールド数が255以上あり取り込み先のAccessではフィールド数をすべて表示できない状態です。 よろしくお願いします。

  • フィルタ後のテーブルのレコード数を取得したい

    アクセスvbaです。 フィルタ後のテーブルのレコード数を取得したいのですが Debug.Print DCount("[フィールド1]", "テーブル1") だと、フィルタ前の数が取得されてしまいます。 フォーム1にテーブル1を紐付けて、 更にフィルタをしているのですが、 元のテーブル1のレコード数が10として、 フィルタ後が3なら、3を取得するVBAコードを教えてください。

  • ハイパーリンク型を指定することは可能ですか?

    VBAでテーブル(フィールド)を作る際にハイパーリンク型を指定することは可能ですか? Sub test() Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Set cat = New ADOX.Catalog cat.ActiveConnection = CurrentProject.Connection Set tbl = New ADOX.Table tbl.Name = "テーブル" tbl.Columns.Append "URL", adVarWChar cat.Tables.Append tbl Set cat = Nothing End Sub アクセスでこんな感じで作ってるのですが adVarWCharの部分をハイパーリンク型にしたいです。 しかし http://www.accessclub.jp/ado/adox/06.html を見てるとデータ型にハイパーリンク型が見当たらないのですが、不可能という事でしょうか?

  • access で「指定したフィールドが多すぎたため、・・」エラーが出ます。

    こんにちは、 ACCESS2002でレポートを作ろうとしていますが、 「指定したフィールドが多すぎたため、フォームまたはレポートを作成できませんでした。指定するフィールドの数を減らして再度実行してください。」というエラーが出ます。 3つのテーブルからデータを持ってくる。 テーブルはリレーションを持っている。 フィールド数が50もないですし、また以前同じような作りのレポートを作ったときは問題がありませんでした。 上記の事で何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • ADOでテーブルのフィールド「A」の「0000」の数を数えたい。

    エクセルVBAからアクセスへ Set con = New ADOdb.Connection con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ACCESSファイル名 Set Rs = New ADOdb.Recordset Rs.Open テーブル名, con, adOpenKeyset, adLockOptimistic Debug.Print Rs.RecordCount Set Rs = Nothing Set con = Nothing とエクセルVBAにコードを記述していますが思いどおりにいきません。 Debug.Print Rs.RecordCount しかわからなく これだとレコードの数しか数えられませんでした。 テーブルのフィールド「A」には「0000」が複数あります。 これを数えるにはどうすればいいのでしょうか? もっといいやり方があれば教えてくださいませ。 よろしくお願いします。

  • データ型をメモ型にして既存テーブルにフィールドを追加したい(ACCESS ADOX)

    Sub test() Dim cat As New ADOX.Catalog Dim tb As New ADOX.Table cat.ActiveConnection = CurrentProject.Connection 'テーブルを開く Set tb = cat.Tables("テーブル1") tb.Columns.Append "フィールド1", ad○○ Set cat = Nothing Set tb = Nothing End Sub これで既存のテーブルにフィールドを追加できることを知ったのですが データ型をメモ型にするにはどの「ad○○」にすればいいのでしょう? (文字数が多いためテキスト型では収まりません) オブジェクトブラウザで見ても、多すぎてどれなのかわかりません。 ご教授よろしくお願い致します。

  • 複数フィールドの一括カウントはできませんか?

    MS-ACCESS2000です。 ID|field1 |field2|・・・ -------------------- 1 |10 |30 | 2 |20 |10 | 3 |30 |20 | 4 |10 |20 | 5 |30 |20 | ・ |10 |30 | ・ |30 |20 | ・ |10 |10 | 上記のようなテーブルについて、各フィールド毎の、 10、20、30それぞれの件数カウントしたいんです。 得たい結果としては、以下のようなものです。  |field1|field2|・・・ -------------------- 10|5(件) |30(件)| 20|11(件)|9(件) | 30|7(件) |22(件)| このフィールド数ですが、全部で200ありまして、 以前ここの回答で拝見した、 SELECT point, count(*) FROM Point GROUP BY point.point; ではとても処理できそうにないもので・・・。 どなたか、お知恵を頂ければありがたいです。 どうか、よろしくお願い致します。

  • ADOX フィールドのRequiredプロパティを

    ADOX フィールドのRequiredプロパティをFalseにしたい アクセスです。 Sub test() Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Dim idx As ADOX.Index Dim varRet As Variant Dim strMsg As String Set cat = New ADOX.Catalog cat.ActiveConnection = CurrentProject.Connection Set tbl = New ADOX.Table tbl.Name = "test" tbl.Columns.Append "氏名ID", adInteger '手作業で数値型のフィールドを作るとこれがデフォルトになる tbl.Columns.Append "氏名", adVarWChar, 50 cat.Tables.Append tbl 主キーを作る Set idx = New ADOX.Index idx.Name = "Primary" idx.PrimaryKey = True idx.Columns.Append "氏名ID" tbl.Indexes.Append idx MsgBox tbl.Name & "テーブルを作成しました。" Set cat = Nothing End Sub ********************************************************** 上記のコードでテーブルを作ると、RequiredをTrueにしてないのに、 実際にテーブルにデータを入れてる時に、NULLにしようとすると、 ********************************************************** フィールドに必要なプロパティが True に設定されているため、 このフィールド '<フィールド名>' には Null 値は挿入できません。値を入力してください。 ********************************************************** となります。 Requiredプロパティの規定値は、False になってますが、 なぜか値を要求されてしまいます。 ADOXで上記のコードに追加してRequiredをFalse にする方法を教えてください。、

このQ&Aのポイント
  • 大学生の一人暮らしで、学生マンションで騒音問題がありました。原因として考えられるのは、ゲーム中のキーボードやマウスの音、ドアの音、ベッドの軋む音、椅子の移動音、貧乏ゆすりの音、物を落とした時の音などです。これらの騒音に対する対策を考えています。
  • ゲーム中のキーボードやマウスの音については、無意識に力強く打つことや浮かせることによって響いてしまっている可能性があります。静音キーボードやマウスパッドを使用するなどの対策を検討しています。
  • ドアの音については、ドアの開閉時に気を付けることで音を軽減することができます。ドアを閉める際には特に注意し、音が響かないようにすることが大切です。また、ベッドや椅子の音についても対策を考えています。
回答を見る

専門家に質問してみよう