スポンサーリンク

050-VBA

Access・アクセス・VBA・コントロール名を変数を使って指定する方法!ループ処理のコードが簡略化できる!

へっぽこヘタレシステム管理人の管理者です。

さて、アクセスで簡易なソフトウエア的なもの?を作っていると・・・

一つのコマンドボタンで更新クエリやデータの追加クエリを何度も実行しなければいけない場合があります。

1~2個ならそのまま順番に記述すれば良いのですが・・・

これが何個もとなると・・・

いちいち記述するのが面倒くさくて、なんとか・・・

変数を使ってループ処理できないか悩んでいたのですが・・・

ようやくその方法が分かりましたので忘備録として掲載しておきます。

実験してみたことは次のとおりです。

やりたいことは単純です・・・

チェックボックスには・・・

  • check1
  • check2
  • check3
  • check4
  • check5

という名前を付けてあります。

これに対応して、チェックボックスが押されていたら・・・

対応したクエリを実行するというものです。

  • query1
  • query2
  • query3
  • query4
  • query5

通常であれば・・・

if me.check1 = -1 then
 docme.openquery "query1"
else
endif

if me.check2 = -1 then
 docme.openquery "query2"
else
endif

if me.check3 = -1 then
 docme.openquery "query3"
else
endif

以下続く・・・

とするのですが・・・

順番に実行するものが決まっているのであれば・・・

変数でコントロールを指定すれば、コードが簡略化できます。

実際に記述したコードは次のとおりです。

Private Sub コマンド0_Click()

Dim A As Integer
Dim qname As String
Dim bname As String

A = 1


For A = 1 To 5

    bname = "check" & A

    If Me.Controls(bname) = -1 Then
        
        qname = "query" & A
        
        DoCmd.OpenQuery qname, acNormal
        
    Else
        End If
        
Next

End Sub

クエリの指定は・・・

通常は・・・

【docmd.openquery “クエリ名”】

と記述しますが・・・・

変数を使う場合は・・・

【docmd.openquery 変数名】

で良いようです。ダブルクオーテーションで囲まなくて良いだけのようです。

しかし・・・

チェックボックスの指定は・・・

同じ方法ではダメでした。

通常だったら・・・

【Me.コントロール名】

とするので 、同じように・・・

【Me.変数名】

としたのですが・・・エラーで止まります。

調べた結果・・・

【Me.Controls(変数名)】

でいけました・・・

知らない事が多いとはいえ、まだまだ勉強不足を通過したところです。

実際の動作は次の動画のとおりとなります。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

スポンサーリンク
スポンサーリンク

-050-VBA

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Access・アクセス・VBA・サブフォームを別のフォームから更新する方法!

へっぽこヘタレシステム管理人の管理者です。 アクセスでシステムを作っていると・・・ アクティブなフォームから別のフォームのサブフォームの内容を更新したい場合が出てきます。 別のフォーム全体を更新するコ …

使った事も触った事もないRPA【WinActor】!初見で特別定額給付金支給システムへの自動入力シナリオを無理やり作って動かした件!

さて、特別定額給付金の支給事務で5月のサビ残業が100時間を超過した管理人です。 土日も休みがありません。 遅れていた特別定額給付金の支給システムがようやく稼働したとおもいきや・・・ 特別定額給付金の …

ZOOM+Openmeetings+VideoCaptureでインターネットに接続されていないLAN環境でもWEBセミナーを受講できる

へっぽこヘタレシステム管理者の管理人です。 さて・・・ コロナ禍のせいで、なんでもかんでもZOOM等のWEB会議ソフトを使って、会議や講習会が開催され、その度に準備に呼ばれる面倒な日々を送っております …

Windows10のサポート終了と職場のPCのリース終了期限がずれている問題!ieが使えないと使えなくなるシステムもあって困る!

へっぽこヘタレシステム管理者の管理人です。 さて管理人が勤務する役所は・・・ 地方の田舎ですので、財政状況も厳しい・・・ ということで、パソコンのリース期間も一般的な法定耐用年数よりも長めに設定されて …

Accessでユーザー定義関数を作る!基本はエクセルの場合と同じ方法でOK!

エクセル【EXCEL】でユーザー定義関数は、よく使いますが・・・ そういえば、アクセス【ACCESS】では、使った事がないなと思い・・・ 作り方を整理してみました。 基本はEXCELの場合と同じ 試し …

スポンサーリンク
スポンサーリンク
スポンサーリンク