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

コードの重複チェック

コメント

18件のコメント

  • Tanda

    yamamotoさん、

    そのような場合は、普通はインデックスの「重複不可」を使うのですが、それが使えない何か理由がありますか?

     

  • yamamoto

    tandaさん、コメントありがとうございます。

    インデックスの「重複不可」もしていますが、それだけだとエラー表示がデータ登録時で遅いのでこのような作りになりました。

    この仕様では、エラー表示のタイミングをコントロール検証と指定できるので利用しています。

    インデックスの「重複不可」でエラー表示のタイミングを変えることはできるのでしょうか。

    方法があれば教えていただきたいです。

  • Tanda

    yamamotoさん、

    インデックスの重複不可は、値を入力した瞬間に重複エラーが出ますよ。
    APGで作ったような簡単なプログラムでテストしてみるとよく分かりますよ。

  • Tanda

    yamamotoさん、

    ひょっとして、レコード後処理を通過するまえにチェックしたいということでしょうか?

  • Tanda

    yamamotoさん、

    「データ登録時」というのがレコード後処理を通過する時ということだったんですね。

    それでは、冒頭のyamamotoさんのご質問にある「重複チェック」の式はどうなっていますか?

  • yamamoto

    tandaさん、

    言葉足らずで申し訳ございませんでした。

    おっしゃる通り、レコード後処理を通過する前(入力時)にチェックしたいです。

    データ登録時=レコード後処理のことで、インデックスの重複不可はレコード後処理通過時でエラー表示されました。

    現状の重複チェックは

    変数(論理)を作り、照会リンクの戻り値に変数(論理)を入れています。

    エラー表示はコントロール検証でエラー条件には変数(論理)を入れています。

    上手く説明できないので下記にスクショを貼ってみました。

    1枚目がデータビューで2枚目がロジックです。

     

  • Tanda

    yamamotoさん、

    照会リンクの「位置付小・大」の式はどうなっていますか?

  • yamamoto

    tandaさん、

    照会リンクの位置付というのは照会する項目の位置付ということでよろしいですか?

    今回は得意先マスタなので以下の通りです。

    メインソース 得意先マスタ

    C=カラム 得意先コード

    V=変数  VL_得意先コード存在チェック 論理

    照会リンク 得意先マスタ

     得意先コード 位置 小にC=カラム 得意先コードを入れています。

  • Tanda

    yamamotoさん、

    位置付の「大」はどうなっていますか?

  • yamamoto

    tandaさん、

    大は位置付していません。

    理由は特になく、サンプルPGがそうだからです。 

  • Tanda

    yamamotoさん、

    「大」の指定がないと、完全一致のチェックになりませんよ。

  • yamamoto

    tandaさん、ありがとうございます。

    ちょっとのことで躓いていたなんて恥ずかしいですが勉強になりました。

    大の指定をして無事00010が通りました!

  • Tanda

    yamamotoさん、

    サンプルプログラムは、「完全一致」のリンクではなく、「最初にみつかったもの」へのリンクという用途で用いられているのではないでしょうか?用途の違いに注意しましょう。

  • Tanda

    yamamotoさん、

    ぜんぜん恥ずかしいことではありませんよ。こういう積み重ねで、だんだんMagicが理解できてくると思います。頑張ってください。

  • yamamoto

    tandaさん、改めてありがとうございます。

    サンプルプログラムの仕様についても理解しつつ頑張ってみます!

  • nkmt

    SQL Serverを私も使っておりますが、レコード登録時の重複チェックがデフォルトだと思いますが
    以下を設定することで、早い点検をしてくれます。
    私も昔教えて頂きました。

  • nkmt

    私の場合は、担当者マスタ登録、商品マスタ登録、得意先マスタ登録など
    データベース設定にCHECK_KEY = YESを設定することで、
    既に登録済と同じコードで登録を進めようとするのを防ぐ事を任せています。
    とはいえ自分で照会リンク等で書くのも有りだと思います。

  • yamamoto

    nkmtさん、コメントありがとうございます。

    早速テストしてみましたが確かに入力後エラー表示がされました!

    使わせて頂きます。ありがとうございました!

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