• 締切済み

(VBA)サブフォーム(データシート)ダブルクリック時に背景色を変更

ACCESS初心者です。非常に困っています。 どうそ、ご指導宜しくお願いしますm(_ _)m サブフォームのレコードに対して、ダブルクリックを行った際に、そのレコードの 背景色を変更し、そのサブフォームを使用不可の状態にしたいのですが うまくいきません。 現在は、ダブルクリックのイベントの中に下記ソースを記述しています。 DoCmd.RunCommand acCmdSelectRecord [サブフォーム名].Enabled = False DoCmd.RunCommand acCmdSelectRecordの下に Refreshを入れると、背景色は変更されるのですが、レコードが一番先頭にもどってしまいます。

みんなの回答

回答No.1

>DoCmd.RunCommand acCmdSelectRecordの下に >Refreshを入れると、背景色は変更されるのですが、レコードが一番先頭にもどってしまいます ならば 1.レコード番号記憶 2.背景色変更 3.リフレッシュ 4.acCmdSelectRecord の順番で行ってはダメなのですか? (すいません。勝手な推測で話しておりますので、はずしているかもしれません。)

funamin
質問者

お礼

回答ありがとうございます。 試してみたのですが、うまくいきませんでした。 しかし、参考にして別方法で試してみたらうまくいきました。 ありがとうございましたm(_ _)m

関連するQ&A

  • サブフォームでのダブルクリックイベント

    Access2003です。 フォームにサブフォームを設置し、直接テーブルを表示させています。 このサブフォームのテーブルのある行をダブルクリックしたら その行のデータを他のフォームのオブジェクトにセットしたいのですが 行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。 フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。 サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。 どうにかダブルクリックで動作させる方法はありませんでしょうか?

  • メインフォームからサブフォームの背景色を変えたい。

    メインフォームからサブフォームの背景色を変えたい。 いつもお世話になっています、度々よろしくお願いします。 メインフォームの開く時にレコード内容によりメインフォームの背景色を変えています、 同時にサブフォームの背景色も同色に変更したく(メインフォームの開く時イベント)に下記コードでやってみたのですが プロパティー、メッソッドがサポートされないとエラーが出ます、 Me!サブフォーム名.詳細.BackColor = RGB(192, 192, 192) 親フォームからサブフォームの背景色変更は出来ないのでしょうか? アドバイス宜しくお願いいたします。

  • Access2013サブフォームの背景色(2)

    サブフォームの先頭行のみ青色の背景色となってしまいます。 2行目以降は無色になっています。 カレント行には背景色がついてしまうでしょうか? 全て無色にする方法が知りたいのですが。 カーソルはメインフォームのコントロールにSetFocusしています。 サブフォームのフォームのプロパティ「レコードセレクタ」は「いいえ」に 設定しています。 何か他に設定するところがあるのでしょうか? フォームが開いた時にサブフォームのレコードセレクタが選択されるような作りにしたつもりはないのですが、もしそうであればどうやって解消すればいいのでしょうか?

  • Access レコード移動時イベントでサブフォーム

    お世話になります。 親フォーム Aがあります。(データソースが存在します) その中にサブフォームBがあります。(データソースが存在します) 親フォームのレコード移動時のイベントで、いつもサブフォームのレコードの最後を表示したいのです。そこで・・・ 親フォームAの レコード移動時イベントに Private Sub Form_Current() Me.B.SetFocus DoCmd.GoToRecord , , acLast End Sub 上記を記述すると、一番初めはきちんとサブフォームBのレコードは最後を表示するのですが、以後、親フォームのレコードを動かすと、親フォームの最後のレコードをさしっぱなしになってしまいます。 Me.B.SetFocus DoCmd.GoToRecord , , acLast これの後にどんな記述をすれば、親フォームのレコードを動かすと同時にサブフォームBも最後の行に移るようにできますでしょうか? 何卒よろしくお願いいたします。

  • Accessでレコードの複製

    Accessで、ボタンをクリックすると 表示させているレコードをコピーして複製したいです。 以下のようにコードを書いてみたのですが、 「コマンドまたはアクション”追加貼り付け”は無効です」 となってしまいます。 DoCmd.RunCommand acCmdSelectRecord 'レコードの選択 DoCmd.RunCommand acCmdCopy 'コピー DoCmd.RunCommand acCmdRecordsGoToNew '新規レコードへ DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdPasteAppend '追加貼り付けを実行 ちなみに DoCmd.RunCommand acCmdPasteAppend を DoCmd.RunCommand acCmdPaste に修正しても 「コマンドまたはアクション”貼り付け”は無効です」 となって、エラーになってしまいます。 そこで、以下のようにコードを省略して DoCmd.RunCommand acCmdSelectRecord 'レコードの選択 DoCmd.RunCommand acCmdCopy 'コピー DoCmd.RunCommand acCmdRecordsGoToNew '新規レコードへ DoCmd.RunCommand acCmdSelectRecord ここで、手動で、ctrl+Vをすると、レコードのコピーができます。 コードの書き方が間違っているのでしょうか? ご教授よろしくお願いいたします!

  • アクセス サブフォームのレコードの値が変更したら

    フォームの中にテーブルに基づいたサブフォームを入れています。 サブフォームはデータシートビューで表示しています。 そのサブフォームのレコードの値が変わったら msgboxを表示させるにはどのイベントで行なえば良いですか? サーブフォームのコントロールに Private Sub ページ名_AfterUpdate() MsgBox "" End Sub としたら確かにメッセージボックスは表示されるのですが 全てのコントロールにつけないとだめですか? 「サブフォームのレコードの値が変更したら」 とするにはどうすればいいでしょうか?

  • Access レイアウト変更したサブフォーム内のクエリを保存しないようにするには?

    OS:WindowsXP Access Version:Access2003 メインフォームにチェックボックスを配置、非連結のサブフォームにクエリを表示させています。 チェックボックスラベルにはクエリのフィールド名を表示させており、チェックボックスをオン/オフにすることでクエリのフィールドを表示/非表示に切り換えております。 ※切り替え方法はColumnWidthで操作しています。 ところで、表示/非表示と切り替え操作をしてメインフォームを閉じるコマンドボタンをクリックして閉じようとすると、 「”○○○(クエリ名)”のレイアウトが変更されています。保存しますか?」 という内容のメッセージが表示されてしまいます。 ここでレイアウトの変更は保存したくないのです。 そこで、私のした処置とは、 (1)メインフォームを閉じるコマンドボタンに DoCmd.Close acForm "○○○(フォーム名)" DoCmd.Close acQuery "○○○(クエリ名)",acSaveNo と記述しました。 acSaveNoのヘルプを見ると、 メッセージを表示せずに保存しないで閉じる、 とあったのですがこれでもメッセージが表示されてしまいました。 そこで、 (2) DoCmd.SetWarning False DoCmd.Close acForm "○○○(フォーム名)" DoCmd.Close acQuery "○○○(クエリ名)",acSaveNo DoCmd.SetWarninf True と記述したところ、メッセージを表示させなくすることには成功したのですが、無条件でレイアウトしたクエリが保存されてしまいました。 どのように記述すればメッセージを表示させず、かつレイアウト変更したクエリを保存せずに閉じることができますか? 初心者のため、誤字脱字があると思いますがすみません。 丁寧に教えていただければ幸いです。よろしくお願いいたします。

  • レコードをダブルクリックすると別フォームでひらく

    ACCESSのVBAに関する質問です。 「main」フォームで書籍の一覧表を表示させています。 レコードにある「書名」をダブルクリックすると 「input」(編集用)サブフォームに その書籍の詳細が表示されるようにしたいです。 色々調べてみて DoCmd.OpenForm "input", , , "ID=" & Me.ID 上記のように表記して作動させてみたのですが 「input」フォームのプロパティにフィルタがかかってしまいます。 (どうしてこのようになってしまうのかが分からないので  説明が曖昧ですみません。。。) Dim strData As String  strData = Me!ID こんな感じでやるのではないかなー、 と漠然と考えているのですが この先どうやっていいのかがわかりません。 教えてください!

  • VBAの、表形式で作ったサブフォームのコントロール方法

    表形式でサブフォームを作った後に、プロパティのレコードソースの内容(クエリ)を削除して(仕様変更の為に作り直しています)、 プロパティのイベントの読み込み時にイベントプロシージャーを指定してVBでSQL等を書いています。 SQLを呼び出し、Loopでレコードセットの内容をサブフォーム内のテキストボックスへ表示させる、等。 でも行数が指定できないので一番最後のデータ1行だけが表示されます… どうやったらサブフォームの総行数や、データを表示させる行の指定等の制御がVBで出来るのでしょうか? またはこれは不可能なのでしょうか? どなたかご回答いただけると幸いです。 よろしくお願い致します!

  • 【Access】サブフォームの項目選択時、対応するコントロールの有効無効を制御する方法

    サブフォーム内にテーブル名tblのデータを帳票フォームで連結し、 サブフォーム内のチェックボックスをクリックすると、 対応するコンボボックスの有効無効を制御したい (ID=1のチェックボックスクリック時、ID=1のコンボボックスの有効無効を制御)と思いましたが、 どのチェックボックスをクリックしても、 ID=0~ID=2のすべてのコンボボックスが有効になったり、無効になったりしてしまいました。 【テーブル名:tbl】 ID, checkbox, combobox 0, false, A 1, true, B 2, false, C 【サブフォーム名のチェックボックスのクリックイベント】 Private Sub checkbox_Click() If Me.checkbox = True Then Me.combobox.Enabled = True Else Me.combobox.Enabled = False End If End Sub 何かしら添え字を渡す事ができれば、対応できるのではと思いましたが、 どのように記述すればよいか分かりませんでした。 その為、上記のような場合、個別で制御する方法をご存知の方がいらっしゃいましたら、 ご教示いただければと思います。 よろしくお願いします。