Microsoft Access 掲示板

目次(索引)作成 / 14

39 コメント
views
5 フォロー
14
norinori 2021/05/14 (金) 08:27:55

hirotonさん、本当に有難うござます。自分がやろうとしていたことが、素人には絶対無理だったと痛感しました。ご指導頂いた資料で今後じっくり勉強することにして・・・ とりあえず、このままコピペしてみました。添付しましたファイルの様なコメントが出ました。完全なコピペはダメだったでしょうか?画像1

通報 ...
  • 17

    エラーメッセージの通りだと思います
    画像1

    新しく追加したプロシージャはReport_Openなので開く時プロパティに[イベント プロシージャ]を設定してください
    ArrayListSort関数も省略しているので適当な場所に入れておいてください(汎用的に使える関数なので標準モジュールに入れてしまってもいいと思います)


    [イベント プロシージャ]は各イベントのプロパティのプルダウンから常に選べるようになっているプロパティですが、これを指定すると、それぞれで専用のプロシージャを呼び出しなさいという指定になります(レポートの開く時ならReport_Openとか)

    [イベント プロシージャ]を選んで[...]をクリックすると、対応するプロシージャが自動で生成されますが、コードをコピペしても[イベント プロシージャ]は自動で設定はされないので、この部分は自分でやる必要があります。

  • 18

    適当にエラーが出るプロパティを設定してみたら同じエラーメッセージ出ませんでした。多分原因は

    ArrayListSort関数も省略しているので適当な場所に入れておいてください

    こっちのほうですね。

    完全なコピペ

    で必要な関数を消してしまったんでしょう。開く時(Report_Open)ではArrayListSort()使ってないのでエラーメッセージが残念な感じですがよくあることなので・・・

    19

    先週金曜日から何とかご指摘を克服しようと努力はしましたが、今の知識では難しくお知恵を頂こうと思っていました。
    13の完コピに、1のSub ArrayListSort以下を合体させたところ”薬品名のフリガナフィールドが見つかりません”とのメッセージに変わりました(前進ですか?)。レポートに「薬品名のフリガナ」がないのは気になっていたのですが、この点は如何でしょうか? 

    画像1
    Sub ArrayListSort(ary As Variant)
        Dim aryList As Object
        Dim s

        '// .NET FrameworkのArrayListクラスを利用する
        Set aryList = CreateObject("System.Collections.ArrayList")

        For Each s In ary
            Call aryList.Add(s)
        Next
        Call aryList.Sort
        ary = aryList.ToArray
    End Sub

  • 20

    レポート上にテキストボックスを配置し、名前を「薬品名のフリガナ」、コントロールソースも「薬品名のフリガナ」とします。

    印刷するデータではないので可視プロパティは「いいえ」にします。


    五十音で並び替えたいということなので五十音のデータが必要です。薬品名から自動で五十音を作るのは現実的ではないので並び替え用に五十音のデータを用意します。>> 10の画像から使えそうなフィールド「薬品名のフリガナ」を用いていますが、見る限り五十音だけでないようなので必要であれば専用のフィールドを追加で用意してください

    印刷しないデータなのでレコードセットから直接取れればいいんですが、レポートだとレコードセットを直接参照することができないのでレポート上にデータを読み込んであげる必要があります。そのため、テキストボックスを配置しコントロールを参照します

    コントロールの名前プロパティとコントロールソースプロパティ(フィールド名)が同じ場合は意識する必要はないですが、別々にしている場合は注意してください

    21

    hirotonさん、有難うございます。上記の様に設定したところ、漢字、カナ、数字の区別なく五十音順に並び替えることが出来ました。ただ、ページ跨ぎになっている薬剤のページはやはりずれていますが、私としては大満足です。大変な知識不足でお手数をお掛けして申し訳ありませんでした。こういったコードを沢山見ることが向上に繋がるでしょうか?

    22

    実践あるのみですね。目的を立てて「できた!」までこぎつけてほんのちょっとレベルアップしたかもって思う感じです。
    読み物としていろいろ見ておくと「自分のやろうとしてることくらいすでに誰かやっているんじゃないか?」とか「これめんどくさいな。もっと簡単な方法があるんじゃないか?」とかそういう考え方はできるようになるかもしれませんが、これが実力が付いたと言えるかというと微妙なところです。現にhirotonの回答は次々と問題が出てきて穴だらけですし


    ページ跨ぎになっている薬剤のページはやはりずれています

    限定条件はあるもののその条件下なら今の回答でうまくいくと思っているんですが、うまくいかない部分があるということですか?それともこの条件だと目的のレポートにならないということですか?

    24

    今後継続して使用していく目的としてはとても便利で、思っていた以上のレポートです。
    現にhirotonの回答は次々と問題が出てきて穴だらけですし
    → 私が条件を全て表示していなかったからです。感謝しかないです。