MS Access Tips/Sample and VBA and Blog customize etc...

VBAでデータシートフォームの複数列を固定する

データシートビューのフォームをサブフォームとして埋め込んで、メインフォームから複数列を固定したり、固定を解除したりするサンプルです。

下記の掲示板の回答の確認用に作成したサンプルです。

サブフォームのデータシートにて、VBAにて、複数の列固定に成功してらっ... - Yahoo!知恵袋
VBAでデータシートフォームの列固定

リンク文字列

難易度:

最初の回答のコード

左から3列固定する場合、

列固定を解除する場合、

※SubFormCtl はサブフォームを埋め込んでいるコントロール名

Access2010で動作確認しました。

Access2003では動作しない

ところが質問者さんは、「実行時エラー 2046 列の固定は無効です」のエラーが出るとのこと。

バージョン違いが原因とは思い至らず、何度かやりとりしても解決せず閉じられてしまいました。

で、再質問されました。

DoCmd.RunCommand acCmdFreezeColumn についてお分かりになる方、よろし... - Yahoo!知恵袋

そこで、やっとバージョンによって動作が違うのかもと思って、旧PCを立ち上げて、Access2003でテストしたら、同じエラーがでました。(Windows8.1 は2003には非対応なんですよね。)

いろいろ試してみて、サブフォームのフィールドにフォーカスを移動させて1列ずつ列固定したらエラーなくできました。

1列目のフィールド名が ID
2列目のフィールド名が フィールド1
でこの2列を固定する場合、

質問者さんのところでもうまく動作して解決です。

サンブルでは、オプショングループで「列固定なし」「1列固定」「2列固定」を選択できるようにしました。

サンプルフォーム

サンプルファイルが下記からダウンロードできます。
FrmFreezeColumn_07.zip (Access 2007-2010 形式 - 27kb)
FrmFreezeColumn.zip (Access 2002-2003 形式 - 22kb)
FrmFreezeColumn_2k.zip (Access 2000 形式 - 22kb)

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/453-fac77c39
該当の記事は見つかりませんでした。