それぞれに特定のレコードを表す500種類以上のシェイプを持つAccessフォームがあります。各図形はBox1、Box2などのコントロール名を持っています。VBAでは図形名をキャプチャしようとしています。たとえば、Box502という図形をクリックすると、レコード502に移動します。図形なので、このコントロール名をキャプチャしていません。私が名前を捉えることができれば、それから "Box"を取り除いて、そのレコードに行くのに使う番号を得ることができます。アクセスフォームからシェイプコントロール名を取得してvbaの値を渡します。
図形の代わりにコマンドボタンを使用すると、以下のコードを使用して必要な処理を実行できますが、コマンドボタンでは機能しないように図形の色を変更するコードもあります。
Private Sub Box2_Click()
Dim strActiveCtl As String
strActiveCtl = Replace(Me.ActiveControl.Name, "Box", "")
DoCmd.GoToRecord acDataForm, "Form1", acGoTo, [strActiveCtl]
End Sub
このコード行を図形に使用すると、別のコントロールを取得していて、クリックしたものではありません。
クリックするとコードビルダーとこのコード行が使用されていましたが、別のコントロールをキャプチャしていて、クリックしているものではありません。
Dim strActiveCtl As String
strActiveCtl = Screen.ActiveControl.Name
これらの小さなボックスがある理由は、基本的には監視されているサービスに関連しているからです。約550のサービスが監視されています。サービスが見直されたときに、その形状が赤から緑に変わります。チームは単に形状をクリックして、それが関連していたサービスに彼らを連れて行きたいと思っていました。
どのような方法でクリックハンドラをボックスに取り付けるのですか? –
クリックするとコードビルダーとこのコード行が使用されましたが、別のコントロールをキャプチャしていて、クリックしているものではありません。 Dim strActiveCtl As String strActiveCtl = Screen.ActiveControl.Name – Jada
シェイプの代わりにコマンドボタンを使用すると、以下のコードを使用して必要な処理を実行できますが、シェイプの色を変更するコードもありますコマンドボタンでは機能しません。プライベートサブBox2_Click()文字列 strActiveCtl = " DoCmd.GoToRecord acDataForm、Form1の" acGoToを(Me.ActiveControl.Name、 "ボックス"、 ")" に置き換え、[strActiveCtl] End Subの – Jada