1

いくつかのフィールド値を複製データベースにコピーしようとしています。一度に1つのレコード。これは履歴に使用されるため、元のデータベースの一部のレコードを削除して高速に保つことができます。

何百ものフィールドがあるので、変数に値を手動で保存したくありません。したがって、最初のフィールドに移動し、フィールド名と値を保存してから、他のデータベースに移動してデータを保存します。次に、「次のフィールドに移動」を実行し、すべてのフィールドをループします。

これは完全に機能しますが、ここに問題があります。フィールドが計算である場合、タブで移動できないため、「次のフィールドに移動」は機能しません。スキップします。

「オブジェクトに移動」を実行しようと思ったのですが、すべてのオブジェクトに名前を付ける必要があり、オブジェクトに名前を付けるスクリプトが見つかりません。

誰かが解決策を考えることができますか?

ありがとう!

4

3 に答える 3

3

これは、エクスポート/インポートを行う方が常に簡単だと私がいつも思っていた問題の1つです。

一方のデータベースから必要なすべてのデータをエクスポートしてから、もう一方のデータベースにインポートします。あなたがする必要があるのは:

  • コピーするフィールドを手動で指定します
  • エクスポートからのデータを新しいデータベース/テーブルの適切なフィールドにマップします

これらのことを行うためのスクリプトを作成することもできます。

于 2009-12-31T10:07:04.787 に答える
1

これを達成する方法はいくつかあります。

「履歴ファイル」を作成するために、いくつかのケースがあることがわかったので、見てみましょう。

ケース1つの単一ファイルメインファイル内のすべてのデータを消去する必要があるため、履歴データを含む非常に大きなファイルを「保持」したいだけです。

この場合、「クローン」テーブルを作成する必要があります(同じファイル内の他のファイル内の鉱石は同じです)。次に、任意の計算フィールドを計算結果のタイプ(数値、テキスト、日付など)に変更します。自動番号、自動作成日など、任意のフィールドから「自動入力値または計算」を削除します。計算または自動入力データのない「プレーンテーブル」が作成されます。

次に、重複データを制御するフィールドを追加します。各レコードの請求書番号(一意)を言うことができる場合は、これを実行してこのタスクを実行できます。ただし、レコードを一意として識別する一意のフィールドがない場合は、作成する必要があります...

このようなフィールドを作成するには、クローンテーブルに新しいフィールドを追加し、入力された計算として設定して、一意のフィールドの組み合わせを作成することをお勧めします... invoiceNumber& "-"&lineNumber& "-" " & 日にち。

クローンテーブルで、検証が「常に」に設定されていること、空の値が許可されていないこと、およびこの値が一意であることを確認します。

クローンテーブルを設定したら...次に、自動エントリオプションがオンになっていることを確認して、レコードをインポートできます。Yoは何度でもそれを行うことができ、新しいレコードが追加され、重複はありません。

必要に応じて、スクリプトを作成して、現在のすべてのレコードを削除する前に履歴テーブルに移動できます。

注:この手法は、保持しようとするデータに時間の経過による変化がない場合に正常に機能します。つまり、レコードが作成されると、変更はありません。

ケース2履歴テーブルを作成する必要がありますが、一部のフィールドが更新されます。

初めに、私は履歴データを考えますが、決して変更されません。過去の請求書を追跡したい場合のように、これが当てはまらない場合もありますが、同時に、支払われているかどうかを追跡します...

この場合、上記と同じ手法を使用できますが、データをインポートする代わりに、レコードを識別する「一意の」フィールドに基づいてデータを更新する必要があります。

このテクニックがお役に立てば幸いです

于 2014-07-20T13:03:51.520 に答える
0

FileMakerのFieldNames()関数は、GetField()とともに、フィールド名とその値のリストを提供できます。

于 2013-06-12T23:30:16.177 に答える