ファイルメーカーで一時保管可能な検索条件

このQ&Aのポイント
  • ファイルメーカーで一番最後に検索した条件を一時保管し、いつでも呼び出すことができる方法について説明します。
  • ファイルメーカーのバージョン8を使用している場合、一時的に検索条件を記憶する機能があります。
  • エラー処理の設定や検索実行時の処理などについても解説します。
回答を見る
  • ベストアンサー

ファイルメーカーで質問です。

ファイルメーカーで質問です。 一番最後に検索した条件のみ、一時保管して、あとでいつでも呼び出す事が簡単に可能でしょうか? バージョンは8になります。 宜しくお願い致します。 下記のURLの内容が理解をこえてまして、例で分かりやすくご説明お願いします。 http://www.kipwmi.co.jp/fmbbs/wwwlng.cgi?print+201105/11050031.txt 一番最後に検索した条件のみ、一時保管して、あとでいつでも呼び出す事が出来れば十分です。 下記のものを、少し変更して可能でしょうか? エラー処理 [オン] 検索実行 [記憶する] If [Get ( 最終エラー ) > 0] カスタムダイアログを表示 ["レコードが見つかりません。 検索条件を変更する場合は [OK] をクリックしてください。 [キャンセル] をクリックすると、ブラウズモードに戻ります。 If [Get ( 最終メッセージ選択 ) = 1] 検索条件を変更 Else ブラウズモードに切り替え [] End If End If

質問者が選んだベストアンサー

  • ベストアンサー
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

条件の自動保存は無理です。たぶん。 検索結果保存なら、検索実行をボタンにして抽出された対象レコードに対して  グローバル変数にGet(タイムスタンプ)を入れる。  対象レコードのフラグフィールド(別に作る)をグローバル変数で全置換。 というステップを追加しておけばいいのでは。該当レコードが多いと全置換が 時間を食いますが。 次回に呼び出すときはフラグフィールドをグローバル変数で検索で。 ファイルを閉じたら変数も消えますが。

muscle_yamachan
質問者

お礼

どうもありがとうございました。

その他の回答 (2)

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

別の掲示板にも質問されていますが、あちらでは検索結果を保存したいと、 こちらと同じで条件を保存したいと二通り書かれてますよね? やりたいのはどちら?

muscle_yamachan
質問者

補足

どうも、ご指摘ありがとうございます。 条件を保存したいです。 検索結果は、変わってもOKです。 条件は色々ありえますので、最後の検索条件のみ新たな別のウィンドウでも使用したいです。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

>一番最後に検索した条件のみ、一時保管して、あとでいつでも呼び出す事が出来れば十分です。 それだけなら、レコードメニューに「検索条件を変更」があります。

muscle_yamachan
質問者

補足

すいませんが、追加させていただきます。 最初に現在のウィンドウ(1)から、新規ウィンドウ(2)を開いて、様々な検索をして、このウィンドウを閉じます。新たに新規ウィンドウ(2)で、レコードメニューの「検索条件を変更」をすると当然、現在のウィンドウ(1)での一番最後に検索した条件が表示されます。これを、ウィンドウ(2)での一番最後に検索した条件を表示することは、可能でしょうか?

関連するQ&A

  • ファイルメーカ助けて下さい。

    場所を示すフィールドがありまして場所フィールドを選択した後に『O.K』のボタンをクリックするとフィールド「場所」が示すレコードだけが表示する様に『O.K』ボタンを作ってあるんですが『O.K』をクリックしただけでは選択したフィールド「場所」が完全には検索後のレコードに表示されません。中途半端な状態なんですがボタンのスクリプトが不完全だと思うんですがどこがおかしいか分かりません。どなたか教えて頂けませんか? スクリプトは エラー処理[オン] コピー[選択、『場所フィールド』] 全レコードを表示 レイアウト切り替え[『検索後のフィールド』] 検索モードに切り替え[] レコード/検索条件削除[] レコード/検索条件削除[] レコード/検索条件削除[] レコード/検索条件削除[] 検索実行[対象レコードの絞り込み] 検索モードに切り替え[] ペースト[選択、場所を示すフィールド] 検索実行[対象レコードの絞り込み] レイアウト切り替え[検索のレコード] こんな感じです。誰か助けて下さい。

  • ファイルメーカー 他のテーブルを参照して複数検索

    レイアウトB(テーブルB)に複数の検索をかけたいのですが、検索条件の項目がレイアウトA(テーブルA)のフィールドにあります。 #---以前の検索条件を削除するため--------- ・エラー処理[オン] ・検索モードに切り替え[] ・検索実行[] #--------------------------------- ・レイアウト切り替え[レイアウトA] ・レコード/検索条件/ページへ移動[最初の] ・Loop ・ コピー[レイアウトAのフィールドA-1] ・ レイアウト切り替え[レイアウトB] ・ 検索条件を変更 ・ 新規レコード/検索条件 ・ 貼り付け[レイアウトBのフィールドB-1] ・ 検索実行 ・ レイアウト切り替え[レイアウトA] ・ レコード/検索条件/ページへ移動[次の、最後まできたら終了] ・End loop ・レイアウト切り替え[レイアウトB] (多少違うかも) これで、できたのですが・・・ あまりにも非効率で、もっとスマートな記述の仕方はありませんか?

  • ファイルメーカでの条件付き画像表示

    ファイルメーカで条件による画像表示がうまく行きません。 前に似たような質問をされている方がいたので参考にしましたがだめでした。 フォーム画面でレコードの最後を表示した時に(最後です)の旨の画像を表示したいです。 データベースでオブジェクトフィールドを2つ追加し、(画像1)(画像2)とし、1はオプションで計算にし if(get(レコード番号)=get(レコード総数): "" , 画像2) 画像2はグローバルフィールドにして背景色で塗りつぶしました。 画像1を透明にし、条件で最終レコードが表示されたら空白で背景の画像を表示し、それ以外は画像2を表示して消す、との事だと思いますが、 まず、画像1が透明にできない(白になります)、多分式が間違っているのでしょうが、 画像も入れ替わりません。 オブジェクトフィールド自体を理解出来てないんでしょうか? 本当に素人な質問です申し訳ないですが、よろしくお願いします。

  • ファイルメーカーのスクリプトについて質問です。

    ファイルメーカー5を使ってます。 Aのファイルは受注ファイル、Bのファイルは出荷ファイルにしています。 リレーションを組んで、AのファイルにポータルでBを表示しています。 Aに対して、Bが2ヶ以上の時はあるフィールドに印を付けたくてスクリプトを組みました。 Aのファイルで リレーションを組んでるフィールドをコピー 外部スクリプト(Bへ) Bのファイルで エラー処理[オン] 全レコードを表示 レイアウト切り替え 検索モードに切り替え 貼り付け[Aでコピーしたもの] 検索の実行 If[「status(対象レコード)>=2」] スクリプトの実行[サブスクリプト 外部[Aのファイルとスクリプト1] Else スクリプトの実行[サブスクリプト 外部[Aのファイルとスクリプト2] End If を組んでいるのですが、Aのファイルでスクリプトを実行するとBの検索の実行(検索結果は表示します)で止まってしまいます。 そのまま、Bのファイルでもう一度スクリプトを実行するとちゃんとAのファイルに戻って処理を完了します。 どうしてなのでしょうか? 会社では汎用データー(AS)を基本的に使用しているのですが、色々と使いずらいのでファイルメーカーと併用して使ってます。 BのファイルはASから書き出したデーターをファイルメーカーに取り込んで使用しています。 誰かに教わった訳でもなく、自己流(?)で覚えてきたので、分りずらくてすみませんが教えて下さい。

  • ファイルデータの入れ替えについての質問

    お世話になります ファイルの内容は $s_get_year<>$s_get_month<>@chk<>\n このような並び方です POSTメソッドで送られてきたデータ$get_yearと$get_monthが 一番目のデータ($s_get_year)と2番目のデータ($s_get_month)と同じならば その行を入れ替えて、そうでなければ追加して書き込むという処理を行いたいのですが 下記のようにしたのですが思い通りの動作をしません、御教授お願いします。 sub ho_disc_write { @new=(); open(IN,"$holidayfile") || &error("Open Error : $holidayfile"); while (<IN>) { ($s_get_year,$s_get_month) = split /<>/, $_, 2; if ($s_get_year == $get_year && $get_month == $s_get_month) { $_ = join('<>',$get_year,$get_month,@chk,"\n"); } push(@new,$_); } close(IN); # データ上書き open(OUT,">$holidayfile") || &error("Write Error : $holidayfile"); print OUT @new; close(OUT); exit; }

    • ベストアンサー
    • Perl
  • ファイルメーカー:フィールドによって検索に引っかからないトラブル・・・

    ファイルメーカーPro8をWindowsXP(home)で利用しております。 現在、あるはずのレコードが検索に引っかからない現象に困っています。 恐れ入りますがどなたか知恵をお貸しください・・・宜しくお願い致します。 例えば、商品データベース.fp7と、仕入帳.fp7があるとします。 まず、商品データベースに商品情報を入力しておきます。 (例) 【商品番号】1001 【商品型番】mikan123 【商品特徴】おいしい愛媛のみかん 【発売日】2007年1月1日 ・ ・ ・ そして、仕入帳では【商品番号】を入力すると 商品データベースからルックアップされた【商品名】等が 自動的に入力されるようにセットしてあります。 それではトラブルの内容です。 仕入帳の検索モードで【商品名】のところに、 「mikan123」と入力してEnterを押しても、 『この検索条件のセットに該当するレコードはありません。』と表示されてしまいます。 ブラウズモードで表示すると、間違いなく【商品名】のところには「mikan123」と 表示されているのですが・・・。 検索モードで「mikan123」と入力しても検索できないのです。 ちなみに、ルックアップで引っ張っていない、【仕入業者】などの テキストフィールドには、「愛媛商店」と入力すると、 愛媛商店から仕入れたレコードが検索に引っかかります。 何か原因はあるのでしょうか? 皆様宜しくお願い致します。

  • VBAでのストップウォッチの質問です

    今のコードを載せます Sub test_StopwatchCell() If did Then kStopwatch Else kStopwatch Range("a1") End If End Sub 上のコードはエクセルワークシートにフォームのボタンを配置して、test_StopwatchCell 関数を登録し、クリックで測定開始し、もう一度クリックで測定停止するマクロですが、一時停止のボタンを新たに作りたいのですが、どうしたらいいのか教えて下さい。お願いします。

  • ダブルクリックでエクセル起動

    セルをダブルクリックしてマクロを起動させたいのですが。 B1セルをダブルクリックすると、 Sub 顧客名検索() ans = InputBox("顧客名を入力してください") With ActiveSheet If .AutoFilterMode Then 'オートフィルタモードがオンなら .AutoFilterMode = False 'リセットする End If .Range("A1:G1").AutoFilter 'オートフィルタモードをセット .Range("A1:G1").AutoFilter Field:=2, Criteria1:="=*" & ans & "*" '2つ目のフィルターに検索文字 End With End Sub を実行させるようにしたいのです。 その方法で、C1、D1、E1、・・・も同様にしたいと思っています。 どなたか教えてください。

  • VBA の if 文の質問です

    下記のようなif文を実行したのですが Or のあとの条件が無視されてしまっているようなのですが、このような書き方ではだめなのでしょうか? else if で地道に分岐させたほうがいいのでしょうか? If Cells(1, 1).Value <> "" Or Cells(1, 2).Value <> "test" Or Cells(1,3) <> 0 Then 処理内容 End If

  • エクセルVBA住所録で半角全角問わず検索する方法

    エクセルVBAで住所録を作っています。 住所録で下記のようなコードを書いて、キーワード検索をさせるようにしているのですが、『*丁目』や番地に半角英数を使っています。 全角で数字を入力しても検索されるようなコードの書き方はあるのでしょうか? 宜しくお願いします。 Sub 住所検索() ans = InputBox("住所を入力してください") With ActiveSheet If .AutoFilterMode Then 'オートフィルタモードがオンなら .AutoFilterMode = False 'リセットする End If .Range("A1:IV1").AutoFilter 'オートフィルタモードをセット .Range("A1:IV1").AutoFilter Field:=4, Criteria1:="=*" & ans & "*" '4つ目のフィルターに検索文字 End With End Sub