過去の桐井戸端BBS (桐ver.9)
21423 違うフォルダにあるファイルから表引きをしたい SORA 2003/07/15-15:24
ネットワーク上で表引きを利用したいのですが
次の場合はどうしたらよいでしょうか?

今までは、同じ階層(D:\HD\KD\PM)上に桐ファイルをおいていたのですが、
ファイルが多くなったため、下層にフォルダを設けてファイルを整理しました。

管理者のパソコンのDドライブ上にファイルがあります。
D:\HD\KD\PM上にHRM.TBLファイルがあり
D:\HD\KD\PM\95SYAHO上に社会保険.TBLファイルがあります。

社会保険.TBLファイルから
#表引き([No],=,"D:\HD\KD\PM\HRM.tbl",[No],[氏名])
と設定して、項目[No]で照合して、HRM.TBL上の
データを表引きしています。

ここまでは良かったのですが、
ネットワーク上の他者@がこの社会保険.TBLを利用しようとすると

"D:\HD\KD\PM\HRM.tbl"ファイルがありません。
とエラーが出ます。

他者@は、\HD\KD\PMをドライブMに設定しているため、
表引き参照表がM:\HD\KD\PM\HRM.tblと設定されていないと
表示されないようです。

桐の設定でこれを回避する方法はないでしょうか。
よろしくお願いします。

21426 Re:違うフォルダにあるファイルの表引きについて うにん 2003/07/15-20:36
記事番号21423へのコメント
>D:\HD\KD\PM上にHRM.TBLファイルがあり
>D:\HD\KD\PM\95SYAHO上に社会保険.TBLファイルがあります。
>
>社会保険.TBLファイルから
>#表引き([No],=,"D:\HD\KD\PM\HRM.tbl",[No],[氏名])
>と設定して、項目[No]で照合して、HRM.TBL上の
>データを表引きしています。

表引きファイルを相対パスにして "..\HRM.tbl" とするのが一番簡単そう。

>他者@は、\HD\KD\PMをドライブMに設定しているため、
>表引き参照表がM:\HD\KD\PM\HRM.tblと設定されていないと
>表示されないようです。

Dドライブが存在しなければ、
subst D: M:\
という手もあります。

21432 Re:違うフォルダにあるファイルの表引きについて SORA 2003/07/16-17:37
記事番号21426へのコメント
早々の解答ありがとうございます。

>表引きファイルを相対パスにして "..\HRM.tbl" とするのが一番簡単そう。

この方法で計算式を記入したところ 他者@でも表ファイルを開くことができました。
ただ、少し開くのが遅いような気もするのですが、
相対パスだと、ファイルを探すのに多少時間がかかるのでしょうか?

>Dドライブが存在しなければ、
>subst D: M:\
>という手もあります。

この方法は、#表引き([No],=,"D:\HD\KD\PM\HRM.tbl",[No],[氏名])
の記述のどこに書き込めばいいのでしょうか

#表引き([No],=,"subst D: M:\HD\KD\PM\HRM.tbl",[No],[氏名])
こう記述すればいいのでしょうか?

かさねがさね すみません。
よろしくお願いします。

21434 Re:違うフォルダにあるファイルの表引きについて うにん 2003/07/16-19:36
記事番号21432へのコメント
>ただ、少し開くのが遅いような気もするのですが、
>相対パスだと、ファイルを探すのに多少時間がかかるのでしょうか?

う〜ん、理論的には絶対パスに変換する分だけ時間がかかるかもしれませんが、
多分そのせいではなくネットワーク上のファイルだからではないでしょうか?

>>Dドライブが存在しなければ、
>>subst D: M:\
>>という手もあります。
>
>この方法は、#表引き([No],=,"D:\HD\KD\PM\HRM.tbl",[No],[氏名])
>の記述のどこに書き込めばいいのでしょうか

こっちは、桐とは直接関係なく、Windows(というかDOS)のコマンドです。
M:\をD:に割り当てる、つまりD:\にアクセスするとM:\と同じ内容が見えるようになります。
桐の方では変更は一切不要です。
Dドライブを使用している場合、その中身が見えなくなるのでこの方法は使えません。

21435 Re:違うフォルダにあるファイルの表引きについて 宮城 2003/07/16-20:57
記事番号21434へのコメント
>こっちは、桐とは直接関係なく、Windows(というかDOS)のコマンドです。

Windowsでは、「ネットワークドライブの割り当て」ですね。
V8のマニュアルなら、「グラフ・結合表」編(なんてわかりやすいタイトル!)
P.100〜103に説明がありますね。

21438 #データパス名を使う方法 佐田 守弘 2003/07/16-21:42
記事番号21423へのコメント
SORAさん
いくつかの方法が出ておりますが、それ以外の方法として次の様な方法も
考えられます。

●「#データパス名」関数でデータパスを取得する。
この関数で、現在のデータパスが取得できます。質問の件で言えば、
「D:\HD\KD\PM」が取り出せます。もしMドライブなら、「M:\HD\KD\PM」
になります。この先頭1文字を取り出せばドライブ名になります。

また、この下の「95SYAHO」に表引きファイルがあるなら、
#データパス名+"95SHAHO\"でそのパス名が得られます。これを変数に代入しておき、
その変数名を使って表引きのファイル名を指定できると思います。
つまり、一括処理を使うなら、先頭の方で次のコマンドを実行しておきます。
 代入 &TLU=#データパス名+"95SHAHO\"
フォームだけの場合には局所変数が使えると思います。

そして表引きの式には、
 #表引き([No],=,&TLU+"HRM.tbl",[No],[氏名])
の様に記述します。

佐田守弘(KS-00119)

戻る