メインコンテンツへスキップ

コンボボックスのリストに変動情報をいれたい

コメント

16件のコメント

  • nkmt

    ▼以下案です。

    ▼その実行例

  • nkmt

    上記例は、選択項目リストに文字列式を埋め込みました。

    選択項目リストに文字列式を直接設定せずに
    変数を指定することも出来ます。

    変数に、変動情報を格納させれば、コンボボックスの選択値も
    変動可能だと思います。

    他にもコンボボックスには、DBを指定することもできますね。

  • mari

    nkmtさん

    ご回答ありがとうございます。

    変数に変動情報を格納する方法でやってみたいのですが、

    下記画像のとおり、式の記述がエラーになってしまいます。

    恐れ入りますが、訂正箇所をご教示いただけますと幸いです。

    よろしくお願いいたします。

  • nkmt

    速度が今一つですが出来ました。

     

     

     

     

     

     

     

  • nkmt

    やっぱり速度がおそくて今一つでした。

     

  • nkmt

    Year関数が返すのは数値なので、文字との合体は出来ません。
    STR(Year( date() ),'4') みたいな感じで文字列化が必要です。

  • vg

    沢山あるなら、1000年分くらいの
    それ用のデータを作ってデータソースに入れてしまうのもよいかと

    式だけで、50年くらいなら
    EvalStr(RepStr('Str(@+1 ,''4P0'')&'',''&Str(@+2 ,''4P0'')&'',''&Str(@+3 ,''4P0'')&'',''&Str(@+4,''4P0'')&'',''&Str(@+5,''4P0'')&'',''&Str(@+6,''4P0'')&'',''&Str(@+7,''4P0'')&'',''&Str(@+8,''4P0'')&'',''&Str(@+9,''4P0'')&'',''&Str(@+10,''4P0'')&
    '',''&Str(@+11,''4P0'')&'',''&Str(@+12,''4P0'')&'',''&Str(@+13,''4P0'')&'',''&Str(@+14,''4P0'')&'',''&Str(@+15,''4P0'')&'',''&Str(@+16,''4P0'')&'',''&Str(@+17,''4P0'')&'',''&Str(@+18,''4P0'')&'',''&Str(@+19,''4P0'')&'',''&Str(@+20,''4P0'')&
    '',''&Str(@+21,''4P0'')&'',''&Str(@+22,''4P0'')&'',''&Str(@+23,''4P0'')&'',''&Str(@+24,''4P0'')&'',''&Str(@+25,''4P0'')&'',''&Str(@+26,''4P0'')&'',''&Str(@+27,''4P0'')&'',''&Str(@+28,''4P0'')&'',''&Str(@+29,''4P0'')&'',''&Str(@+30,''4P0'')&
    '',''&Str(@+31,''4P0'')&'',''&Str(@+32,''4P0'')&'',''&Str(@+33,''4P0'')&'',''&Str(@+34,''4P0'')&'',''&Str(@+35,''4P0'')&'',''&Str(@+36,''4P0'')&'',''&Str(@+37,''4P0'')&'',''&Str(@+38,''4P0'')&'',''&Str(@+39,''4P0'')&'',''&Str(@+40,''4P0'')&
    '',''&Str(@+41,''4P0'')&'',''&Str(@+42,''4P0'')&'',''&Str(@+43,''4P0'')&'',''&Str(@+44,''4P0'')&'',''&Str(@+45,''4P0'')&'',''&Str(@+46,''4P0'')&'',''&Str(@+47,''4P0'')','@','2024'),'')

    とかでもいけそうな気もしますけど、2048文字くらいで式テーブルの桁あふれるので
    工夫しないとダメそうですね

  • nkmt

    こんな感じのデータを用意しておいて

    こんな感じで表示するのが速度難はないかもしれません。

  • mari

    nkmtさん

    ご回答ありがとうございます。

    参考にさせていただき、コンボボックスにデータを入れることができました!

    ただ、おっしゃる通り速度の問題で、表示がもたついてしまうのでリスト件数を減らそうと思います。

    ご教示いただきありがとうございました。

    今後ともよろしくお願いいたします。

  • mari

    nkmtさん

    すみません。ページ更新のタイミングが悪く、反応が遅れてしました。

    文字列化が必要ですと、データソースを紐づける方法が良さそうですね。

    こちらの方法で、再チャレンジしてみようと思います。

    ご教示いただきありがとうございます。

  • nkmt

    質問者ではありませんが、vgさんの投稿は今気が付きました。

  • mari

    vgさん

    反応が遅れてしまい、すみません。nkmtさんのコメントで気付きました…。

    ご回答いただきありがとうございます。

    式テーブルには上限桁数があるのですね。大変勉強になります。

    また、ご回答の式にある「EvalStr」関数というのは、ヘルプを参照しましたが理解が難しいです。

    恐れ入りますが、ご解説いただけますと幸いです。

    よろしくお願いいたします。

     

  • vg

    承認待ちになっていたので表示が遅れていたみたいですね
    EvalStrは第1引数の文字列をそのまま式として扱えるという関数で
    Evalstr("STR(1,'1P0')" ,'')  と STR(1,'1P0') は同じにことになります
    なので、さっきの式は Str(2024+1 ,''4P0'')&','&str(2024+2・・・・ という式の中身を書いた文字列を作って、それを使うというような趣旨になります。

  • nkmt

    vgさんの投稿がアルファベットがいっぱいだったので承認待ちになったのですかね?
    私も承認待ちで投稿がなかなか反映されなかったことが1度ありました。

  • mari

    vgさん

    ご解説ありがとうございます。

    私が最初に投稿した式も、画像のようにEvalStr関数を使うことで実現できました…!

    もう1つのRepStr関数も、大変勉強になりました。

    ご教示いただきありがとうございました。

     

  • mari

    nkmtさん、vgさん

    承認待ちの基準はよく分かりませんが、

    返信前に、ページ更新をするように留意いたします。

    今回は、いろいろな方法をご教示いただきありがとうございました。

    今後ともよろしくお願いいたします。

サインインしてコメントを残してください。