テーブルの項目順が意図せず変わる

このQ&Aのポイント
  • access2010を使用している際に、ローカルテーブルの項目順が意図せず変わる事象が発生しています。デザインビューとデータシートビューで表示される項目順が異なる場合があり、なぜ変わるのかが分かりません。解決方法も分かりません。
  • access2010を使用している際に、デザインビューとデータシートビューで表示されるテーブルの項目順が異なることがあります。具体的には、デザインビューでは項目が1、2、3の順で並んでいるのに、データシートビューでは1、3、2の順に表示されることがあります。この現象の原因と解決方法を教えてください。
  • access2010を使用している際に、ローカルテーブルの項目順に関する問題が発生しています。デザインビューで設定した項目の順番が、データシートビューでは意図せず変わってしまうことがあります。この問題の原因と解決方法を教えてください。
回答を見る
  • ベストアンサー

【access】テーブルの項目順が意図せず変わる

access2010を使用しています。 ローカルテーブルの項目順について質問します。 詳しい方、ご教示ください。 デザインビューで表示される項目順とデータシートビューで表示される項目順が、意図せず変わる事象が時折発生します。 ※デザインビューに1、2、3の順で並んでいるものが、データシートビューだと1、3、2の順になっている テーブル定義はデザインビューのもので作成しているので、そちらの項目順でデータシートビューでも表示したいのですが、なぜ意図せず変わってしまうのかが分かりません。また、解決方法も分からないです。 【補足】 ・テーブル:ローカルテーブル ・テーブル定義を登録した直後は意図した項目順で表示される →VBAやQueryを実行した後にデータシートビューで確認すると項目順が変わっていることがある。(必ず変わっているわけではない) どなたか、ご教示頂けないでしょうか。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

すみません。言葉の訂正です。回答の下のほうで、 >あるいは、データシートを表示した状態で、 >フォームのフィールド名のところにマウス >を当て、下向きの矢印になったら横にスライド >させてフィールドをすべて選択して、コード表の >書式から「列の固定」を選択してはどうでしょう。 のところで、「コード表」となっていますが、この場合は 「Access本体のツールバーの書式から」です。「コード表」 は抜かしてください。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

>デザインビューで表示される項目順とデータシートビューで表示される項目順が、 >意図せず変わる事象が時折発生します。 実は、データシートビューは結構いかげんに フォームを設定してもデータシートビューを 選択するときれいにデータシートビューとして 表示されます。たとえば、フォームのデザインビューで 詳細を大きく開き、そこにテキストボックスを適当な 大きさで、しかもすべて重ねてもフォームをデータシートビュー で選択すると、そのままきれいにデータシートビュー が表示されます。この場合、フィールドの順序は テキストボックスが作成された順に左から並べられます(たぶん)。 また別の場合、たとえば、フォームのレコードソースを設定し、 表示されたレコードソースのフィールドを適当に選択し、適当に デザインビューの詳細に放り込むと放り込んだ順にデータシート ビューで順番に並んでいきます。つまりテーブルで設定した 順番にはならずに、です。 そこで、 >デザインビューで表示される項目順とデータシートビューで >表示される項目順が、意図せず変わる事象が時折発生します。 この事象がどのような経緯で起きるのか、実際に遭遇したことが ないので分かりませんが、データシートビューにはフィールドの 並びに関するColumnOrderというプロパティがあります。これは フィールドの順序、すなわち左から何番目という設定を 行なうプロパティです。このプロパティが何らかの理由で 入れ替わったのでは、と思われます。それを再現するには 実際のプログラムを使ってみなければならないのですが。 それは無理として、並びを固定する方法はいくつかありますが、 たとえばフォームを開くときのイベントで、 Private Sub Form_Open(Cancel As Integer)   Me!フィールド1.ColumnOrder = 1   Me!フィールド2.ColumnOrder = 2   Me!フィールド3.ColumnOrder = 3 End Sub のようにしてみてはどうですか。この場合 フィールド1などはテキストボックスの名前 です。 あるいは、データシートを表示した状態で、 フォームのフィールド名のところにマウス を当て、下向きの矢印になったら横にスライド させてフィールドをすべて選択して、コード表の 書式から「列の固定」を選択してはどうでしょう。 ただし、こちらの方法はお呪えが効くかわかりません。 確認してみてください。また、ファイルを閉じて 再度開いたときに同じような操作をした場合に フィールドの順序の変化が起こるのか確認してみて ください。 以上の二つがありますが、コードで設定しておくのが いいような気がします。

回答No.2

【補足】並びの継承は一般的!  例えば、《ポケモンGo》では捕獲したポケモンを《日付》《お気に入り》《番号》・・・《強さ》で並び替えて表示することができます。で、一旦並び替えると《サインアウト》しない限りで、その並びは継承されます。Accessでも同じです。例えば、テーブルを表示して[レコード]-[並び替え]を実行し保存。すると、その並びは継承されます。このような《並びの継承》は、ユーザー意思の継承です。そういう意味では、極めて一般的で当然のこと。  なお、《並びの継承》がアプリケーションの開発で邪魔になることは皆無と言えます。なぜなら、通常は、フォームやレポートのレコードソースには、クエリではなくてSQL文を書くからです。そして、必要であれば《ORDER BY 節》も書きます。  クエリは、単なる簡便な参照ツールとして利用し、アプリケーションの開発はSQL文主体で行う。こういうマイルールがある限り、《並びの継承》は邪魔ではないと思いますよ。  ちょい、《並びの継承》に関する私見を補足しておきます。

sunflower153
質問者

補足

ご回答頂きありがとうございます。 説明不足で申し訳ないのですが、意図せず変わってしまうのはソートではなく項目の順序(列)です。 例)当初以下のように定義したとします。 ■デザインビューのイメージ 項目1 テキスト型 項目2 テキスト型 項目3 テキスト型 ■データシートビューのイメージ 項目1|項目2|項目3 ↓↓↓ QueryやVBAの処理を行った後確認すると・・・ ■デザインビューのイメージ 上記と同様 ■データシートビューのイメージ 項目1|項目3|項目2 このように、項目(列)の順序が意図せず変わってしまっていることがあり、原因が分からず悩んでいます。ソート順に依存するのでしょうか。 Order By句で指定している項目が先頭に移動してしまうことがあるということでしょうか。

回答No.1

Q、テーブルの項目順が意図せず変わるのを防ぐには? A、常に意図的に並べることです。 >VBAやQueryで並びを変えると、それが継承される。 Accessは、そういう仕様だということです。ですから、それを意識して《常に意図的に並べる》ことが必要です。

関連するQ&A

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

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

  • Accessの抽出についての質問

    Accessの抽出についての質問をします。 テーブルからデータシートビューで開いたものを「レコード」「フィルタ」「フィルタ/並べ替えの編集」で条件を入れて抽出できると思います。 そこまでは理解できたのですがクエリの場合はもう1つあると知りました。 クエリの中のデータをやはりデータシートビューで開いて、「レコード」「フィルタ」「フィルタ/並べ替えの編集」で条件を入れて抽出する以外に デザインビューで開いてデザイングリッドという下の画面でも同じように条件を入れて抽出できると聞きました。 画面はデータシートビューでの「フィルタ/並べ替えの編集」画面と少し似ているようですがちょっと違います。 この2つはどう違うのですか どう使い分けるといいのでしょうか? 教えてください。

  • Access2000トラブル テーブル閲覧不可

    Access2000でテーブルが開けなくなりました。 「レコードが削除されました」と出てきてデータシートビューでの編集・閲覧ができません。 デザインビューでは見れますが、特に問題無い様に思います。 フォームでは各入力項目に「Delete」が表示されています。 どうすれば良いかおしえてください。

  • Accessでテーブルをデータシートビューで開けない

    ここ数日、AccessでAテーブルをデータシートビューで開こうとすると、ODBC すべてのレコードをロックできません、というメッセージが出てしまいます。デザインビューで開くことはできるのですが、このAテーブル(リンクテーブル)を使って新規クエリを作ることもできなくなってしまいました。 前に作ったクエリは普通に開くことができます。 Aテーブルを使わずにクエリを作成すると、問題なくできます。 設定を変えた記憶はないのですが、どうしたら元通りになるのでしょうか。 よろしくお願いします。

  • エクセルからアクセスにインポートする場合、配順や項目数の関係について教えてください。

    エクセルからアクセスにインポートする場合、配順や項目数の関係はどのようになるのでしょうか? アクセスのフィールド数は3個あるとします。 デザインビューでは上から「あ」「い」「う」で並んでいます。 データシートビューでは、「い」「う」「あ」で並んでいます。 エクセルのタイトル行の配列順も上記のどちらかにあわせたほうがよろしいのでしょうか? それとも同一名の項目があれば、配順には決まりがないですか? アクセスのテーブルにあるフィールド名が、エクセルのタイトル行にないとエラーになるでしょうか? 基礎的な質問でしたら申し訳ございませんが、どなたかご回答をお願いいたします。

  • Access SQL

    Access2000です。 クエリである項目が=1ならXX、=2なら○○としたいのでヘルプを参照し SQLビューで IF(項目A=1,10*項目B,IF(項目A=2,20*項目B,0)) としました。 データシートビューを出そうとするとエラーになります。 エラーはIFが未定義関数だというものです。 なお、デザインビューは開けます。 どこがいけないのでしょうか? よろしくお願いいたします。

  • Access リレーションのある項目並び替え

    一人で、初めてAccessに取り組んでいます。 相談できる人が周りに居ないので、助けてください。 2つのテーブルがあります。 テーブルデータA    ヘッダーID(オート)    グループ名    区分    文書名 テーブルデータB    区分ID(オート)    区分インデックス    部品名 テーブルデータA”区分”と、テーブルデータB”区分インデックス”が、リレーションシップで繋がっています。 テーブルデータAを、”区分”の昇順で並び替えをして、フォーム上で表示させたいのですが、 フォーム上で表示させる以前に、データシートビューで確認するも、並び替えが出来ません。 テーブルデータBをデータシートビューで表示すれば、”区分インデックス”順に並ぶのですが、 テーブルデータAをデータシートビューで表示すると、昇順も降順も変化なく、”区分”で並び替えができません。(バラバラの状態です) ちなみに、”区分”及び”区分インデックス”は、テキスト型12桁です。 リレーションシップが付いてる項目は、並び替えができないのでしょうか?

  • Access2003 リンクテーブルをフォームでデザインビュー表示したい

    kamuycikapです。 フォームやクエリを作成している「FQ.mdb」とデータが保存されている「DT.mdb」を分けている為、FQ.mdbではテーブルをリンクしてデータを入力したりクエリ利用したりしています。 DT.mdbに作成しているテーブルはリレーションシップされており、デザインビューで開くと「+」マークが表示されていて、紐付けられているデータを開くことが出来、非常に便利です。 メインとなるテーブルをデザインビューで開くことで、連鎖するテーブルのデータまで入力する事が出来ます。 これを、FQ.mdb側のフォームに表示したいのですが「+」マークが表示されていません。 FQ.mdbのマクロで DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria として、acFormDSで開くように記述しているのですが・・・・ リンクしている側のテーブルを開いても、「+」マークつきのビューで開くことが出来ないのでしょうか? ユーザーさんから 「入力フォームでの入力もいいんだけれど・・・・デザインビューでの入力も捨てがたいからフォームに表示できるようにしてよ」 的な要望があったのです。 識者の方、ご教示願います。

  • ACCESSのフィールドの表示順が変更できない

    いつもお世話になっております。 クエリ実行結果の表示は、クエリのデザインビューで設定した左側のフィールドから順になっているかと思いますが、 フィールドの表示順を変更したところ、デザインビューでは希望の順に変更できたのですが、 クエリ実行すると、その変更が反映されていないのです。 何が原因ですか?修正方法はありませんか? ご存じの方、どうか宜しくお願い致します。

  • Access2013テーブル結合クエリ

    Access2013 住所録テーブルと面談備忘録テーブルを、氏名で結合したクエリを作成したいのですが。 この二つのテーブルの氏名が重なり合わないものもあります。 この際、重なり合わない氏名などもクエリのデータシートビューに表示させる方法を教えてください。 フィールドの抽出条件になにか記入するのかなと思っています。初心者です。 宜しくお願いします。

専門家に質問してみよう