電子書籍の厳選無料作品が豊富!

現在ファイルメーカ7を使用している初心者です。
あるフィールドにAAAのような文字を入力した時だけ、あるフィールドの数字が121から1増えて、122になるようデータベースを作成するには、どのようにすれば良いのでしょうか?

A 回答 (3件)

まず、同一レコード内での処理のお話か、そうではないのかをはっきりさせてください。

説明を読むと、どちらとも取れてしまいます。
もし複数レコードということであれば、No.2でできるはずです。

ちなみに、補足説明は質問の文章を何回も繰り返しているだけで、ほとんど追加情報がありません。
役に立つアドバイスを得るには、ご自分の状況をもう少し詳しく説明する必要があると思います。
何のためのシステムなのか、作ったフィールドはどのようなものなのか、くらいは質問に関連する範囲でオープンにしないと、ご自身も回答者も解決までに遠回りをすることになりますよ。
    • good
    • 0
この回答へのお礼

bucchukun様
適切なご指導何度も本当にありがとうございました。
データベース初心者の私では、現在構想中のデータベースまではたどりつけそうにありません。
これにめげず、ファイルメーカについてもう少し勉強をし、データベース作りを続けたいと思います。
質問もまとえた形でないのに、ご指導いただき本当ありがとうございました。

お礼日時:2005/07/06 10:06

通常、レコードというものは抽出や並べ替えをするのが前提の、並びの順番が不安定なものなので、「前のレコードの値を取得」する計算式はありません。




例えばスクリプトを使用します。

例)
・用意するフィールド
  「数値」フィールド
  「計算結果」フィールド
  「一時保存」フィールド(グローバルフィールド)

レコード/検索条件/ページへ移動 [前の]
コピー [選択; 数値]
レコード/検索条件/ページへ移動 [次の]
貼り付け [選択; 一時保存]
計算結果を挿入 [計算結果; IF(文字列="AA";一時保存+1;一時保存)]

本来は並べ替えやエラー処理等が必要なのですが、情報がないので、コアの部分だけです。なお、当然ですが、あくまでやり方の一例です。他にも自己リレーションを活用する方法などが考えられますので、一度考えてみてください。

ちなみに、AAでなくBBの時はどうするのですか?AAAの時はどうするのですか?他の選択肢はないのですか?条件分岐によって、式であれスクリプトであれ複雑さがまったく変わってきます。
例え話も結構ですが、どうしてそのような設定にしてあるのかも含めて説明すると、違ったアプローチの提案があるかもしれませんよ。

この回答への補足

bucchukun様本当にありがとうございます。
ちなみについて補足説明です
数値フィールドが121から始めると仮定します。AAではない場合は、数値フィールドは121のままで、また入力していき、AAを入力したときは数値フィールドが121から122となるようなデータベースを作りたいです。

補足日時:2005/07/05 20:46
    • good
    • 0

もう少し法則性を明らかにしないと、答えようがありませんが、参考だけ。



例)「文字列」に文字が入力されたときに「数値」に入力された数値に+1する。
別途フィールド定義が”計算”の「計算結果」フィールドを用意し、以下の式を設定します。
IF(文字列="";数値+1;数値)

この回答への補足

bucchukunさま、ご回答ありがとうございました。
説明不足で申し訳ありませんでした。

例にあげていただいたIF文試しました。
私の能力では教えていただいた方法では、現在考えているデータベースは出来ませんでした。
補足で教えてください。
例)最初のレコードでAAを入力したら数値フィールドが1増え、次のレコードでまたAAを入力したら、1足した数値フィールドにまた1足す方法です。
申し訳ありませんが教えてください。
よろしくお願いします。

補足日時:2005/07/02 14:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す