過去の桐井戸端BBS (桐ver.8) |
11038 | #表引き関数は一括処理で使用できないのですか。 | 桑原 | 2001/04/25-21:25 |
以下の一括処理で、 「KU1033:使用できない関数です 」というエラーメッセージが #表引き関数のところででてきて使えません。 −−−−−−−−−−−−−−−−−−−−−−−− 変数宣言 文字列 {&A,&B} &A=#ユーザ名 &B=#表引き(&A,=,”予備.tbl”,[ユーザ名],[教科更新pw]) 利用者コード &B −−−−−−−−−−−−−−−−−−−−−−−− やりたいことは、#ユーザ名でユーザーの名前を取り込んで、 そのユーザーに応じて、「予備.tbl」というファイルから、 利用者コードを桐に設定したいということです。 (1)#表引き関数は表定義場面では、きちんと使えるのですが、一括処理では使えないのでしょうか。 (2)それとも私が、何か設定ミスをしているのでしょうか。 (3)もし、一括処理で#表引き関数が使えないのなら、上のように、ユーザー名から表引きで、利用者コードを設定するうまい方法はないでしょうか。 よろしくお願いします。 | |||
11039 | Re:#表引き関数の一括処理での使用。 | 幅田 | 2001/04/25-21:53 |
記事番号11038へのコメント 桑原さん、こんにちは。 >以下の一括処理で、 >「KU1033:使用できない関数です 」というエラーメッセージが >#表引き関数のところででてきて使えません。 #表引き関数は一括処理内では使えません。 置換コマンドを使ってもだめです。 主に項目計算式などで使います。 他に使える場所は、桐v5のマニュアルには書いてありますが、 v8のマニュアルには書いてありません。 ここんとこもちょっと不親切ですね。 >−−−−−−−−−−−−−−−−−−−−−−−− >変数宣言 文字列 {&A,&B} > &A=#ユーザ名 > &B=#表引き(&A,=,”予備.tbl”,[ユーザ名],[教科更新pw]) > 利用者コード &B > >−−−−−−−−−−−−−−−−−−−−−−−− そこで、上記みたいな一括処理を#表引き関数を使ってやろうとした場合、ですけど.. まず、”ユーザ.TBL”などというファイル名で、項目もひとつだけの表を作ります。 項目名は[教科更新pw]としておいて、その項目計算式に #表引き(#ユーザ名,=,”予備.tbl”,[ユーザ名],[教科更新pw]) を設定しておき、表編集の行挿入でレコードをひとつだけ、作っておきます。 あとは、一括処理で −−−−−−−−−− 変数宣言 文字列 {&B} 表 "ユーザ" 置換 [教科更新pw] &B=[教科更新pw] 表 利用者コード &B −−−−−−−−−− とすれば、お望みの結果が得られると思います。 | |||
11040 | Re:#表引き関数の一括処理での使用。 | 幅田 | 2001/04/25-22:00 |
記事番号11039へのコメント >−−−−−−−−−− >変数宣言 文字列 {&B} > 表 "ユーザ" > 置換 [教科更新pw] > &B=[教科更新pw] > 表 > 利用者コード &B >−−−−−−−−−− こんなことしなくても −−−−−−− 変数宣言 文字列 {&B} 表 "予備" 検索 [ユーザ名] {=#ユーザ名} &B=[教科更新pw] 表 利用者コード &B −−−−−−− とすれば、よけいな表も作らなくてもいいですね。 無理に表引き関数を使う必要はありません。 | |||
11045 | Re:#表引き関数の一括処理での使用。 | 桑原 | 2001/04/26-04:55 |
記事番号11040へのコメント 幅田さん さっそくのコメントありがとうございます。 やはり一括処理では、表引き関数は使えなかったのですね。 >−−−−−−− >変数宣言 文字列 {&B} > 表 "予備" > 検索 [ユーザ名] {=#ユーザ名} > &B=[教科更新pw] > 表 > 利用者コード &B >−−−−−−− >とすれば、よけいな表も作らなくてもいいですね。 >無理に表引き関数を使う必要はありません。 また、具体的な対応方法も教えていただきありがとうございました。 とても私の力では、こんなエレガントな解決方法は、思いつきませんでした。 まずは、お礼まで 今後ともよろしくお願いします。 | |||
11059 | 表引き関数は代入コマンドで使えません | 佐田 守弘 | 2001/04/26-23:21 |
記事番号11045へのコメント 桑原さん >やはり一括処理では、表引き関数は使えなかったのですね。 大ざっぱには、まあ、そんな感じですが、正しく言うと一括処理で使えないのではなくて、 変数に対する代入コマンドの計算式の中で使えません。 一括処理の中でも置換コマンドの様に、表の項目値に値を書き込む場合には使えます。 変数に対して表引き値を代入する場合には、幅田さんが書かれている様に、表引きで代入するのではなく、 検索コマンドで目的レコードを検索し、そのレコードの項目値を計算式として代入する方法を使って下さい。 佐田守弘(KS-00119) | |||
11063 | Re:表引き関数は置換コマンドでは使えるようです | 幅田 | 2001/04/27-06:46 |
記事番号11059へのコメント >一括処理の中でも置換コマンドの様に、表の項目値に値を書き込む場合には使え >ます。 私は誤解しておりました。置換コマンドでも使えないのかと思っておりました。 とすれば、No.11039の記事にある方法で、 ユーザ.TBLの項目計算式に表引きの設定をしないで −−−−−−− 変数宣言 文字列 {&B} 表 "ユーザ" 置換 [教科更新pw]=#表引き(#ユーザ名,=,”予備.tbl”,[ユーザ名],[教科更新pw]) &B=[教科更新pw] 表 利用者コード &B −−−−−−− という風に書けば、一括処理内でも使えることになるのですね。 >変数に対して表引き値を代入する場合には、幅田さんが書かれている様に、表引 >きで代入するのではなく、検索コマンドで目的レコードを検索し、そのレコード >の項目値を計算式として代入する方法を使って下さい。 まあ、今回のケースでは、佐田さんも言っておられますが、No.11040のように検索コマンドを使ったほうがいいようですね。 |