内容
サブフォームを使っているフォームを表示する時、間違った式や非常に複雑な式を使っていないにもかかわらず「式が正しく入力されていないか、複雑すぎるために評価できません。たとえば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にしてください。 」のエラーメッセージが出ることがあります。
解説
この原因は、フォームとサブフォームの間でリンクしているフィールドのデータ型が異なる場合に発生します。
フォームとサブフォームの間でリンクしているフィールドのデータ型を同じにすれば解決します。
通常はデザインモードでフォームにサブフォームを配置し、サブフォームのプロパティでリンク子フィールドとリンク親フィールドを設定すめ場合、異なるデータ型のリンク子フィールドとリンク親フィールドを設定することはできません。しかし、同じデータ型のリンク子フィールドとリンク親フィールドを設定した後、フィールドのデータ型を変更してフォームを表示するとこのエラーが発生します。
再現サンプル
2つのテーブル「備品一覧」と「備品履歴」を作成します。
サブフォームとして表示するためテーブル「備品履歴」を基にしたフォーム「sub備品履歴」を作成します。
テーブル「備品一覧」を基にしたフォーム「備品一覧」を作成し、フォーム「sub備品履歴」をサブフォームとして配置します。
サブフォームのプロパティでリンク子フィールドとリンク親フィールドは共に"MainID"にします。
ここまでの操作で作成したフォーム「備品一覧」を表示してもエラーは起きません。
しかし、何らかの理由でテーブル「備品一覧」または「備品履歴」のフィールド「MainID」のデータ型を変更したとします。
たとえばテーブル「備品履歴」のフィールド「MainID」のデータ型を長整数型からテキスト型からに変更します。
これでフォーム「備品一覧」を表示すると次のエラーメッセージが表示されます。
たとえばテーブル「備品履歴」のフィールド「MainID」のデータ型を長整数型に変更するとフォーム「備品一覧」は正常に表示されます。