次の方法で共有

Access2010 データシートビューの列順、列幅の変更が保存できない。

Anonymous
2011-05-27T07:55:41+00:00

Windows XP & Access 2003 で作成した社内用のプログラムを、Windows 7 & Access 2010 に移行しようと試みています。照会条件を指定して照会を実行すると、別フォームで該当のデータをデータシートビューで一覧表示するフォームがあります。照会結果は問題無いのですが、列幅を変えたり、列順を変えたりして閉じた後、再度表示した際に、列幅、列順の変更が反映されません。

以前の環境(Windows XP & Access 2003)では、列幅、列順の変更は保存され、再度表示すると反映されています。

調べたところ、結果一覧フォーム読み込み時のイベントプロシージャで、一覧の並び順を設定しているのですが、そこをコメントアウトすると、列順、列幅の変更が保存できる様になります。

但し、要件として、照会条件を基に結果の並び順を設定したいのと、複数のユーザが使用する為、結果一覧の列幅、列順はPC毎に任意に設定可能としたいのです。

実際に、Windows XP & Access 2003 では実現出来ていたのですが、Windows 7 & Access 2010 では同じ方法(コード)では出来なくなっています。

Access 2010 での実現方法があれば教えて下さい。

以上

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-05-27T14:18:46+00:00

こんばんは。ざっくりですが、

フォームのLoadイベントで、ColumnプロパティやOrderByプロパティの設定をしてみましたが

期待する動作をしているように見受けられました。

実際にはどのような処理が実行されているのでしょう。

a2010で新規に作成したサンプルでも同じようになってしまうのでしょうか?

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

8 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-09-17T03:45:34+00:00

    これはアクセス2010のバグです。

    解決策は以下の通りです。

    以下の手順でこのバグを回避し、移動したカラムの設定を保持することが出来ます。

    1.データシートでリストを開き、カラムを移動・列幅調整します。

    2.移動したカラムを隠して下さい。

    -カラムを隠すには、プロパティでVisibleをNoにします。

    3.保存して、一旦、閉じます。

    4.再度開き、隠したカラムを見えるようにして下さい。

    -2.でYesにしたVisibleをYesにします。

    VBAなどで対応している方が多いようですが、この方法が楽です。

    この回答は役に立ちましたか?

    7 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2013-08-01T06:13:45+00:00

    私もデータシートの列幅や列の順序を覚えてくれない事に悩みました。が、本日解決しました。

    (不要な)フォームヘッダーがあれば削除してみて下さい。勿論全ての環境で解決するかどうか分かりません。又、スレ主さんには遅きに失していると思われますが同じ様に悩んでいる方の力になれれば幸いです。

    この回答は役に立ちましたか?

    4 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  3. Anonymous
    2011-06-01T13:45:54+00:00

    うーん。再現しないですね。

    何かほかに起因するものがあるのだろうか。

    当たり前ですけど、accessファイルが読み取り専用であるときだけです。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2011-06-01T07:12:49+00:00

    テスト用に、テーブルx1、フォームx1で作成しても、再現します。

    再現手順は以下の通り。

    1)3項目(fld_1~fld_3)のテーブル(tbl_1)を作成する。

    2)上記テーブルをデータソースとする、データシートビュー形式のフォーム(frm_1)を作成する。

    3)Form_Load イベントプロシージャに以下2行記入する。

          Me.OrderBy = "fld_x"   ※項目名を任意に指定

          Me.OrderByOn = True

    4)フォーム(frm_1)を表示する。

    5)列幅、列順を任意に変更し、閉じる。

    6)再びフォーム(frm_1)を表示すると、上記5)で変更した列幅、列順が反映されず、上記4)と同じ状態で表示される。

    ※因みに Access 2000,2003,2007 では何れも5)の変更が反映された状態で表示される。

    Form_Open、Form_AfterLayout等、別のイベントで試したが変わらなかった。

    7)上記3)のコマンドをコメントアウトする。

    8)フォーム(frm_1)を表示する。

    9)列幅、列順を任意に変更し、閉じる。

    10)再びフォーム(frm_1)を表示すると、上記9)で変更した列幅、列順が反映されている。

    ※但し、当然並び順はNG。

    やりたい事(Access2007迄は実現できていた事)は、データシートの並び順を任意に(照会条件を基に)設定し、その上で列幅、列順を任意に変更&記録です。

    以上

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません