質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

10669閲覧

サブフォーム(データシート)の列の固定、固定解除ができない

Gidemo

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2016/02/16 07:53

最近Accessでのツール開発を始めたものです。
開発環境はWindows7 32bit, Access2010です。

データシートの列の固定と固定解除ができず大変困っています。
データシートはメインフォームのサブフォームで、メインフォームで指定した条件を元に、検索結果を表示しています。このデータシートはユーザーが列の幅などを変更することが可能なのですが、毎回起動時には状態を初期化してから起動したいと考えていますので、下記のような処理を行っています。

lang

1'---------------------------------------- 2'-- フォーム起動時 3'---------------------------------------- 4Private Sub Form_Load() 5 '一覧データ取得 6 getImpList 7End Sub 8'---------------------------------------- 9'-- 一覧データ取得 10'---------------------------------------- 11Private Sub getImpList() 12 Dim sSQL As String 13 14 'フィールド表示設定 15 setCol 16 'SQL文の作成 17 sSQL = "" 18 sSQL = sSQL & "select Name, Year" 19 sSQL = sSQL & " from TableA" 20 sSQL = sSQL & "where 1 = 0" 21 'SQL文の実行 22 Me.RecordSource = sSQL 23 'コントロールソースの設定 24 Me.Name.ControlSource = "Name" 25 Me.Year.ControlSource = "Year" 26 27End Sub 28 29'---------------------------------------- 30'-- 一覧表示設定 31'---------------------------------------- 32Private Sub setCol() 33 34 '画面操作で変更されたものが保存されてしまうため, 35 '初期表示の際に初期設定状態に戻す 36 37 '列固定解除 ※ここでエラー!!! 38 DoCmd.RunCommand acCmdUnfreezeAllColumns 39 '列の表示順を指定 40 Me.Name.ColumnOrder = 1 41 Me.Year.ColumnOrder = 2 42 '列幅を設定 43 Me.Name.ColumnWidth = 2000 44 Me.Year.ColumnWidth = 1800 45 '行の高さを設定 46 Me.RowHeight = -1 47 '列固定 48 Me.SelLeft = 1 49 Me.SelWidth = 1 50 DoCmd.RunCommand acCmdFreezeColumn 51 52End Sub

'DoCmd.RunCommand acCmdUnfreezeAllColumns'の部分で毎回「コマンドまたはアクション”列の固定解除”は無効です」とエラーが出てしまいます。

なかなか回避することができません。
このエラーへの対策、または回避策をどうかご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サブフォームでしたら、SetFocusで移動してからコマンドですね。

投稿2016/02/16 08:59

thom.jp

総合スコア686

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thom.jp

2016/02/16 09:04

スマホからなので、素っ気なくてすみません。
Gidemo

2016/02/16 09:49

Me.Form.SetFocusを直前に加えたらできました! ずっとわからずに困っていたので本当に感謝です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問