6 返信 最新の回答 日時: Mar 8, 2010 5:58 PM ユーザー:マーサの主治医_1

    検索レコードが無い場合に実行するスクリプト

    マーサの主治医_1

      タイトル

      検索レコードが無い場合に実行するスクリプト

      フォーラムに投稿

      初めて質問させていただきます。

       

      顧客管理で、電話番号の下4桁が顧客カルテ番号になっています。

      2重登録を防ぐために新規入力する前にカルテ番号で検索をかけ、検索結果がある場合は顧客カルテが表示され、無い場合に新規カルテ入力画面が表示されるようにしたいのですが、どのようにすればよいでしょうか?

       

      検索結果がある場合はよいのですが、無い場合は、この検索条件のセットに該当するレコードはありません。と表示されてしまいます。

        • 1. Re: 検索レコードが無い場合に実行するスクリプト
          tella
            

          マーサの主治医さんこんにちは。

           

          書いているこれを行うにはスクリプトの中に「エラー処理」と言う物を入れてレコードが無かった場合

          エラー番号を取得する事が必要になります。

           

          簡単に流れを書きますと

           

          -以下スクリプト例-

          エラー処理(オン)

          If[Get最終エラー=401]

           新規レコード作成のステップ

          Else

           検索をして対象レコードを探すステップ

          End If

          それ以下のステップ

          -以上- 

           

          こんな感じで組んで行くと可能です。 

          因にエラー番号401は検索時に対象レコードが無かった場合の番号です。

           

          おためしあれ

          • 2. Re: 検索レコードが無い場合に実行するスクリプト
            マーサの主治医_1
              

            tellaさん、ありがとうございます。ちゃんと新規レコードが作成できるようになりました。

             

            ただ、検索レコードが無い場合に出るメッセージをなくしたり、変更することはできないのでしょうか?

             

             

            私のスクリプトだと、検索レコードが無い場合

             

            この検索条件のセットに該当するレコードはありません。というメッセージが出て、検索条件の変更、続行、キャンセルの3つのボタンが表示されます。

            続行ボタンを選択すると新規レコードが作成されます。

             

            できれば、検索レコードはありませんでした。新規レコードを作成しますか? というメッセージで、検索条件の変更、作成、キャンセルの3つのボタンを表示させたいのですが、難しいでしょうか?

             

            遅れましたが、ファイルメーカープロ10 Vista で作成しています。

            • 3. Re: 検索レコードが無い場合に実行するスクリプト
              d.o
                

              こんにちは

               

              tellaさんも書かれている通り

               

              エラー処理(オン)のスクリプトステップを入れればエラーメッセージが出なくなります。

               

              エラー番号を確認して検索レコードがない場合には「カスタムダイアログ表示」 スクリプトステップでダイアログを表示させればいいと思います。

              表示されるメッセージも自由に設定出来ます。もちろんボタンも作れます。

              どのボタンが押されたかは「Get ( 最終メッセージ選択 )」 関数で修得出来るので、処理を分岐することが出来ます。

               

               

              • 4. Re: 検索レコードが無い場合に実行するスクリプト
                tella
                  

                マーサの主治医さんこんにちは

                 

                D-Oさんの言う通り、エラー処理[オン]を入れればFM上のエラーは表示されなくなります。

                また、任意のダイアログを出したいのであれば、カスタムダイアログを表示というスクリプトを使えば可能です。

                また簡単にスクリプトを考えてみたので参考にしてください。

                 

                -以下スクリプトステップ-

                 

                エラー処理[オン]

                IF[Get(最終エラー)=401]

                 カスタムダイアログ表示 ←デフォルトボタンに「キャンセル」ボタン2に「続行」ボタン3に「検索条件の変更」を指定

                 IF[Get(最終メッセージ選択)=3]

                  検索モードに切り替える

                 EndIF

                 IF[Get(最終メッセージ選択)=2]

                  新規レコード/検索条件 

                 EndIF

                 IF[Get(最終メッセージ選択)=1]

                  ブラウズモードに切り替え  

                 EndIF

                EndIF   

                -以上- 

                 

                こんな感じです。

                 

                尚、このスクリプトは外枠だけなんでまだ不十分です。

                例えば、

                「検索条件の変更」を選んだ際、ただ単に検索モードに切り替えるだけになってますが、

                また無かったらどうするかとか。

                「続行」を選んだとき、新規レコードを作るだけになってますが、どういうルールで

                レコードを作るか、検索したワードを自動で入力させるとか。

                「キャンセル」を選んだときはブラウズモードに切り替えるだけですが、それだけでいいのかとか。

                とかとか、考えだすときりがないです。

                 

                なので、このスクリプトを土台というか、骨組みにしていただいて、肉付けをしていく事を

                していただければ色々出来ると思いますので、がんばってみてください!

                 

                ご参考になれば幸いです。 

                • 5. Re: 検索レコードが無い場合に実行するスクリプト
                  マーサの主治医_1
                    

                  D-Oさん、ありがとうございます。

                  試行錯誤して何とか解決しました。

                   

                  ファイルメーカーを使ってまだ2週間足らずの超初心者です。わからないことが多すぎ、質問にも苦労します。

                  回答の理解不足でご迷惑をおかけいたしますが、これからもよろしくお願いいたします。

                  • 6. Re: 検索レコードが無い場合に実行するスクリプト
                    マーサの主治医_1
                      

                    tellaさん、ご丁寧にありがとうございます。

                    気づくのが遅れましたが、私の作ったものとほぼ同じで、確認が取れ安心しました。

                     

                    これからもよろしくお願いいたします。