2017-08-31 7 views
0

MS Accessデータベースでは、1つのRecordSourceを持つサブフォームがありますが、 "LinkMasterFields"と "LinkChildFields" VBAのプロパティ例えばMS Access SubForm - VBAの "LinkFields"の変更に失敗しました

次のように、デフォルトでリンクフィールドは次のようになります。

Me.subfrmOurSubForm.LinkMasterFields = "Field1;Field2" 
Me.subfrmOurSubForm.LinkChildFields = "Field1;Field2" 

私たちは、その後、ユーザーにデータをVBAコードを実行することで、サブフォームに表示方法を変更するためのオプションを与える:

Me.subfrmOurSubForm.LinkMasterFields = "Field3;Field2" 
Me.subfrmOurSubForm.LinkChildFields = "Field3;Field2" 

このコードは、Accessテーブルを使用していたときに問題なく動作しましたが、SQL Serverを移行してOBDCリンクテーブルが作成されて以来、上記コードを実行しようとすると次のVBAランタイムエラーが発生します。

ODBC--call failed. 

これはAccessの制限事項であれば問題ありません。しかし、私たちはこれ以上サブフォームオブジェクトを作成しないでください。誰もこの問題を回避する方法を見つけましたか?

答えて

1

フィールドのカウントを変更する際に問題が発生しました。

フィールド名重複し、数を変更しないために:

Me.subfrmOurSubForm.LinkMasterFields = "Field3;Field3" 
Me.subfrmOurSubForm.LinkChildFields = "Field3;Field3" 
+0

私の謝罪を、私は正しくご質問に私のコードをキーではありませんでした。はい、私たちはそれを認識しており、私たちのコードはそれを処理しています。あなたの答えにあなたが与えたロジックで、まだエラーがスローされています。 –

+0

OK。私はこの行動を見ていないが、起こるべきではないと言います。別の(新しいネイティブの)ODBCドライバを使用するか、セミコロン区切り文字をカンマで置き換えることもできます。 – Gustav

関連する問題