そもそもsum_mは配列なのかという疑問もありまして。
配列でしたらArray関数を用いて「sum_m = array("A","B"."C")」のように、どこかで要素を定義している箇所があると思うのですが、探しても見当たらないのです。
また「sum_m」にlbound、ubound関数を適用した後に。
次の行「i_tSql = i_tSql & sum_m(cntn) & ","」と、新たにcntnという引数が設定されて、関数のように使われている?…こういった書き方は、vbaであり得るのでしょうか。
何を行っているのか、sum_m(cntn)は何を求めようとしているのか、全体的によくわからない状況です…。
(2)tSqlに格納されていくSQL文は、「資金情報」テーブルや「売上情報」テーブルからデータを取得するために、必要かと思うのですが。
そのSQL文の終わりに「set aquarium = dbinfo.openrecordset(tSql,dbopendynaset)」という箇所が2箇所ほど、あるかと思います。
これらは「select文で抽出したレコードを、openrecordsetメソッドで新たなレコードの集合体(レコードセット)として作成している」という認識で正しいでしょうか?
ただ、引数が「(tSql,dbopendynaset)」となっている部分が疑問です。
http://www7b.biglobe.ne.jp/~cbcnet/DAO/database.html
によりますと、dbopendynasetの方は、optionの引数なのでわかります。
しかしtSqlの方は、「引数 type には次の定数から 1 つを使用します。」というルールとは異なる変数だと思うのですが…。
(3)VBAのコード内にやたらと「i_tSql = i_tSql & minimumdate & ","」のように、文末が","で終わっている文が多いですが。
これはVBAの文法として?正しいのか疑問でして…文末を","にしている理由について、自分はコードを読んでも判らないのですが、何をしているのでしょうか。
「i_tSql = i_tSql & "'" & trim(aquarium.fields(0).value) & "',"」のように、アポストロフィで囲んで、カンマで終わらせている部分も、目的がよくわからない状況です。
「資金情報」「売上情報」という2つのテーブルの情報が不十分で、たくさんの疑問で恐れ入りますが、ご助言いただけますと助かります。
よろしくお願い致します。
▽1
●
gizmo5 ●1000ポイント ベストアンサー |
(1) は Redim で配列のサイズを指定していますね。この変数は配列です。
(2) は、dbopendynaset にどんな値が設定されているかが分かりませんが、その書き方で合っています。
どこぞの誰かが書いたページよりも、公式のドキュメントを参照しましょう。
https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/database-openrecordset-method-dao
(3) は、提示のソースだと全貌がよく分かりませんが、何かの情報をカンマ区切りで結合したものを取得したいのだと思われます。
カンマ区切りという意味では末尾に余計なカンマが付きそうに思いますが。