0

行ソース属性に 2 つの SQL 問題を含む Microsoft Access 2010 データベースがあります。

データベースの FindClientsNavigation フォームは、メイン フォームのナビゲーション コントロールにドラッグするまでは正常に機能していたので、FindClientsNavigation はサブフォームになりました。現在、次の 2 つの問題を修正する必要があります。

1.) メイン フォームをロードすると、txtFilterClients テキスト ボックスのパラメーターを求めるダイアログ ボックスが表示されます。txtFilterClients は、リストボックス lstbxclients でクライアント名と IDS をフィルタリングするために使用されます。lstbxclients は、rowsource を次のクエリに設定することで設定されます。

SELECT c.ClientNumber, c.FullName FROM Clients AS c
WHERE (((c.FullName) Like '*' & [Forms]![Main]![FindClientsNavigation]![txtFilterClients].[Text] & '*'))
ORDER BY c.FullName;

次のプリントスクリーンにエラー メッセージ/ダイアログが表示されます。

2.) [コミュニケーション フォーム] ナビゲーション タブをクリックすると、 2 番目のエラーが発生し、FindClientsNavigation フォームのプロパティである ClientID の値を求めるダイアログ ボックスが表示されます。この 2 番目の問題は、SQL が現在次の qryListCommunicationForms フォームの行ソース プロパティにあるようです。

CommunicationTable.CommunicationNumber, CommunicationTable.ClientNumber, CommunicationTable.DateOfCommunication, CommunicationTable.Communication, CommunicationTable.Communication, CommunicationTable.CommunicationWithNumber  
FROM CommunicationTable  
WHERE (((CommunicationTable.ClientNumber)=[Forms]![Main]![FindClientsNavigation].[ClientNumber]));

私は両方の問題の解決策を探しています。また、コードの根底にある概念の説明もありがたく思います。そうすれば、他の場所で発生する可能性のある同様の問題を修正する方法を知ることができます。

4

1 に答える 1

2

私はあなたの説明に完全に従うことができませんでしたが、それがサブフォームであると仮定すると、サブフォーム内のコントロールを参照できるようにするにはFindClientsNavigation、そのプロパティも参照する必要があります:Form

[Forms]![Main]![FindClientsNavigation].Form![txtFilterClients]

Textのプロパティを参照する必要もありませんTextBox

追加:RowSourceが文字列として割り当てられている場合、テキスト ボックスの値が SQL に代入されるように、3 つの部分に分割する必要があります。

"SELECT c.ClientNumber, c.FullName FROM Clients AS c WHERE (((c.FullName) Like '*'" &
[Forms]![FindClientsNavigation].[Form]![txtFilterClients] & "'*')) ORDER BY c.FullName;"

追加: サブフォーム コントロールの名前は、NavigationSubformこのコントロールの です。したがって、次を使用する必要があります。FindClientsNavigationSourceObject

Like '*' & [Forms]![Main]![NavigationSubform].[Form]![txtFilterClients] & '*'

感嘆符 (バング演算子!) は、オブジェクトの既定のコレクションを参照します。これは、フォームの場合、その Controls コレクションです。

qryListCommunicationFormこの変更は、フォーム ビハインドとRowSource元の投稿に示されているコードでも行う必要があります。

于 2013-09-19T21:01:53.547 に答える