• 締切済み

トグルスイッチをVBAでコントロール

マイクロソフトアクセス2000で作成しています。 メインフォームとサブフォームを使っています。 メインフォームにあるトグルスイッチを押した時に、サブフォームの最新レコードに移動したいと 考えています。 ボタンを押したときに、VBAの命令は動くのですがトグルスイッチが押した状態になりません。 VBAで押した状態にしようとしても命令言語がわかりません。 ご教授をお願い致します。 Me.トグルスイッチ1=true <- ここが動きません。 DoCmd.GoToControl "サブフォーム名" DoCmd.GoToRecord , , acNewRec

みんなの回答

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

Me.トグルスイッチ1.Value = True では?

y_usijima
質問者

補足

コメント、ありがとうございました。 残念ながら、エラーとなりました。 実行時エラー '2448' このオブジェクトに値を代入することはできません。 と表示しました。 いま、トグルスイッチ自体に命令を入れていますが、 そこから間違っているのでしょうか?(マウスボタンクリック時に設定しています) Private Sub トグル1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.トグル1.Value = True DoCmd.GoToControl "サブフォーム名" DoCmd.GoToRecord , , acNewRec End Sub

関連するQ&A

  • サブフォームの新規レコードに移動したい アクセス

    親フォームのコマンドボタンをクリックしたら 親フォームにはまっているサブフォームの新規レコードに移動したいのですが、 うまくできません。 サブフォームのオブジェクト名は、"F_SubForm"です。 サブフォームはデータシートビューです。 VBAコードは Private Sub cmd_test_Click() DoCmd.SelectObject acForm, "F_SubForm" DoCmd.GoToRecord , , acNewRec End Sub です。 上記コードを実行すると DoCmd.SelectObject acForm, "F_SubForm" の部分で、 「実行時エラー 2489  オブジェクトが開いていません。」 となります。 だからと言って、 DoCmd.GoToRecord , , acNewRec だと、何も起こりません。(新規レコードに移動しません) 解決方法をご教授ください。

  • Accessレコードの削除(VBA)

    Accessで入力フォームを使用して入力をしていますが、 全項目の入力がされていない場合そのレコードを削除したいのです。 閉じるときに消そうと思い DoCmd.RunCommand acCmdDeleteRecord を入れてみたのですが、レコードの削除はできません、とメッセージが出てしまい消せません。 次のレコードを選択すれば消せるかと思い DoCmd.GoToRecord , , acNewRec を足してみたりしてみたのですが、やっぱりダメでした。 この場合はどのようにすればいいのでしょうか?

  • Access メインフォーム サブフォームにて

    お世話になります。 Accessにて メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが 次に行くようにしたいのですが、 コマンドボタン クリック Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus DoCmd.GoToRecord , , acNext メインフォームとサブフォームのレコードが次に行ってしまいます。 サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。 分かる方教えて下さい。 宜しくお願いします。

  • サブフォームに対する表示制御について

    Access97でサブフォームを使用したフォームを作成しています。 サブフォームの明細行の最後に新規レコード行がありますよね。 サブフォームの初期表示時に、この新規レコード行にカーソルを位置付けたいのですが、 Docmd.GoTORecord,,acNewREc とやると、新規レコード行がサブフォームの 最上部にいってしまい、その前にある既存レコードが見えなくなってしまいます。 理想は、サブフォームの1ページが10明細分の大きさで獲ってあるとすると、 新規レコード行を10行目に表示されるようにもっていきたいのですが、 サブフォームに対してこのような制御は可能なのでしょうか。 RecordCountを操作したりしてやってみたのですが、既存レコードの件数によって、 うまくいったりいかなかったりです。 よろしくお願いします。

  • フォームのレコードソースにストアドをしてした場合

    フォームのレコードソースにパラメータ付きのストアドを指定した場合は、 データを追加する場合にはVBAで下記の命令では追加できないのでしょうか? 状況は「acNewRec」は正常に動作しているようです、「acCmdSaveRecord」で 「データの競合」のメッセージが表示されすすまないので、 終了させようとすると、「プロシージャまたは関数'○○○'には パラメータ'○○'が必要ですが、指定されませんでした。」となります. DoCmd.GoToRecord , , acNewRec データの入力処理 DoCmd.RunCommand acCmdSaveRecord 駄目な場合やはり追加用のストアドを作成するのでしょうか?

  • Accessサブフォームのレコード移動

    Accessにおいて、サブフォームのレコードの移動方法をどなたか教えてもらえませんか。「Forms![メインフォーム名]![サブフォーム名].Form.SetFocus DoCmd.GoToRecord acDataForm, "サブフォーム名", acNext」とコーディングしたのですがダメでした。よろしくお願い致します。

  • アクセス enterで次ページ(レコード)移動

    アクセスでformを使い最後の入力”失効有無”が終わったら次のレコードにenter keyで 移動したいのですがうまくいきません。 プロパティの更新後処理 イベントプロシージャのところに下記を書いています。 Private Sub 失効有無_AfterUpdate() DoCmd.GoToRecord , , acNewRec DoCmd.GoToControl "ID" End Sub 以前はこれでうまくいったと思います。。。 おかしいですか? よろしくお願いします、

  • ACCESSのフォームでスクロールバーを一番下に持っていくVBAの記入方法はありますか?

    ACCESSのVBAでスクロールバーを一番下に持っていくコマンドはありますか? 教えてください。ACCESSでフォームを作っています。 元となるフォームを「フォームA」として その中にサブフォーム「フォームB」があります。 フォームBについての質問です。 フォームAにメイン情報があり、フォームBは フォームAの関連情報が幾つかとうろくされています 1:Nの関係です フォームBは帳票フォームです。 レコードの新規作成のコマンド「DoCmd.GotoRecord acNewRec」 や 最終レコードへの移動コマンドでは カーソルが一番下に移動するのですが スクロールバーまで移動しないので 画面上変わらなく困っています。 実際の構成は フォームAで選択した顧客の情報が フォームBに日付ごと表示されています。 一画面に5レコード表示するようにしています(1:5) ここで6レコード目の入力のために レコードの新規作成ボタンや最終レコードへの移動ボタンを 作成したのですが、右側のスクロールバーが 動いてくれないので、カーソルだけ移動して 画面上は5レコードが表示されたままになっています。 分かりづらい質問で申し訳ありません なにとぞお願いいたします。

  • GoToRecordでサブフォームを指定したい

    Fフォームの中にSF詳細という名前のサブフォームを埋め込んでいます。 このサブフォームに対して、 指定したレコードに移動したいのですが DoCmd.GoToRecord acDataForm, Form_SF詳細, acGoTo, 3 DoCmd.GoToRecord acDataForm, Forms("Fフォーム").Controls("SF詳細").Form, acGoTo, 3 DoCmd.GoToRecord acDataForm, "SF詳細", acGoTo, 3 全部エラーになり、うまくいきません。 正しい記述の仕方を教えてください。

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

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

専門家に質問してみよう