三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Access レコードソースで定数を使いたかったので 標準モジュールで固定の値を返す関数 Function を作り、定数・パラメーターっぽく使う

フォームのレコードソースで標準モジュールに書いた値(定数)を使いたかった、そんなお話です。

QAサイトで回答し恥を残す・・・
質問元は
https://teratail.com/questions/9v56md6ntxp3dz
で回答してみました。またまた、浮気して・・・
※他の回答やコメントも参考にしてください。

下記テストした動画です
https://youtu.be/NODTLXMyasA?t=31
↑暇な時に見て、だめっぷりを笑ってください・・・

SELECT [テーブル1].ID, [テーブル1].DATA FROM テーブル1
WHERE ((([テーブル1].ID) between startid() and endid() ));

between startid() and endid() みたいに、関数で値を返すようにして、
少し小細工してみました。

先輩や上司に怒られそうな修正案だけど、

Option Compare Database
Option Explicit

'Public Const startid As Integer = 2  'コメントアウト
'Public Const endid As Integer = 4    'コメントアウト

Public Function startid() As Integer
    startid = 2  '固定で返す
End Function

Public Function endid() As Integer
    endid = 4  '固定で返す
End Function

と、
Function startid() で2を返す
Function endid() で4を返す
だけの関数を作成して、

使うときは、

SELECT [テーブル1].ID, [テーブル1].DATA FROM テーブル1
WHERE ((([テーブル1].ID) between startid() and endid() ));

で使う。
SQL内の条件で関数を呼ぶと、遅くなったりするけど、まぁいっか。
 そんなに件数無ければ、、、

動画、作成中に思いついたのが、※たいして変更していませんが
頭のConst startid As Integer = 2などを残して、

Option Compare Database
Option Explicit

Public Const startid As Integer = 2
Public Const endid As Integer = 5

Public Function get_startid() As Integer
    get_startid = startid  '上で定義した Const startid を返す
End Function

Public Function get_endid() As Integer
    get_endid = endid  '上で定義した Const endid を返す
End Function

みたいにして、
レコードソースで
SELECT [テーブル1].ID, [テーブル1].DATA FROM テーブル1 WHERE ((([テーブル1].ID) between get_startid() and get_endid() ));

※get_XXXXX 経由で Const XXXXX を返し、クエリやレコードソースで使ってみてください


下記テストした動画です
youtu.be
https://youtu.be/NODTLXMyasA?t=31
↑暇な時に見て、だめっぷりを笑ってください・・・

もっと、スマートに書けそうな気もしますが、ヒントとなれば幸いです。
※ど外し回答な気もしつつ・・・

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)