既存のフォームに50音検索を作りたいと思い、調べていたところhatena様のサイトを見つけ
そちらをもとに50音で検索できるシステムを作りました。
しかし、サイト通り作ったにも関わらずなぜか作動しません。
フォームを開いたときはlst得意先に名前がすべて表示されるのですが、Op50音選択ボタンを押すと名前が消え白紙になります。さらにOp段選択のボタンを押すとレコードに検索キーがないと出たり、式に未定義関数がありますと出ます。(なにも触っていないのにエラー内容が変わりました・・・)
lst得意先に出ている名前をクリックしてもなんの反応もありません。
恐らくどこかで間違えているのだと思うのですが、ほんとにその通りにしたつもりなので不思議です・・・
よく分からないエラーかと思いますが改善方法を教えて頂きたいです。
参考にしたサイトは下記です。
リンク
追記です。
もう一度確認したところOp段選択の更新後処理が間違っていました。
訂正すると、レコードに検索キーがないと出たり、式に未定義関数・・・というのは出なくなりましたが、今だにクリックしてもなんの反応もありません・・・
オプショングループで50音選択 高速版 - hatena chips
上記のサンプル通りに設定すれば動くはずです。
動かないならどこか間違っていると思います。
どうしてもわからなければ、このページの右カラムの下の方に「ファイル送信フォーム」がありますので、該当ファイルを送付してもらえればそれをみて原因を探れます。
ファイルには関係するテーブル、クエリ、フォームのみにしたものを送付してください。
ファイルの方送信致しましたので宜しくお願い致します。
ファイルの内容を見ました。
間違いは下記の部分です。
テーブル名が間違ってます。下記に修正してください。
これで正常動作するのを確認しました。
回答ありがとうございます。
あれからこちらで修正しましたが、サンプルファイルは正常に作動するのですが、実際使っているファイルは作動せずです・・・
新たにファイルを送信しましたのでご確認お願い致します。
ファイル見ました。原因はフィールド名に
(
)
を使っているのが原因ですね。このような記号や半角空白が含まれるフィールド名はSQLで使うときは
[
]
で囲む必要があります。下記のように、
氏名(フリガナ)
の部分を[氏名(フリガナ)]
と修正してください。このような記号や半角空白はトラブルの元になりますので、最初からフィールド名やオブジェクト名には使わないようにするのが吉ですね。
例えば、
氏名(フリガナ)
ではなくて氏名_フリガナ
とするとか。_
(アンダースコア)は使用しても問題ない数少ない記号の一つです。とても勉強になりました!!
[氏名(フリガナ)]に直すときちんと動くようになりました。
これからフィールド名に()を使うのは控えたいと思います。
本当にありがとうございました。
1つ直したいところがあるのですが、今のフォームでは開いたときから名前の順で表示されるのですが、開いた時点では社員番号順に並べ替えたいのですがこちらは可能でしょうか?
すみませんが教えて頂きたいです。
開いたときだけでいいのなら、値集合ソースを下記に変更すればいいでしょう。
50音選択で抽出したあとも、社員番号順にしたいなら、さらに、コードの下記の部分を
下記に修正すればいいでしょう。
すごい!完璧です!
本当にありがとうございました。
またお力を貸して頂けると嬉しいです。