1

スーパーバイザー、ポジションの 2 つのコンボボックスを持つフォーム [スーパーバイザー] があります。

私は、上司や役職など、あらゆる種類の情報を含む従業員のレポートを持っています。コンボボックス内で選択されたスーパーバイザーとポジションに応じて、レポートを開くコマンド ボタンを作成したいと考えています。これは、WHERE ステートメントで制限するのと同じくらい簡単なはずですよね? Expression Builder を使用して、次のように言いました。

Where Condition = [position] Like [Forms]![Supervisors]![PositionCombo]
                   AND [sup] Like [Forms]![Supervisors]![SupervisorCombo]

しかし、ボタンをクリックすると、「Microsoft Access データベース エンジンは '[Forms]![Supervisors]![PositionCombo]' を有効なフィールド名または式として認識しません」というメッセージが表示されます。制限条件としてコンボボックスの値を使用するように Access に指示するにはどうすればよいですか?

私はVBAを知りませんが、学ぶつもりです。可能であれば、VBA を使用せずにこれを実現したいと考えています。

4

1 に答える 1

1

OpenReport メソッドの WhereConditionオプションを使用して、コンボ ボックスの値に基づいてレポートのレコード ソースをフィルター処理します。

Dim strWhereCondition As String
strWhereCondition = "[position] = " & Me.[PositionCombo].Value _
    & " AND [sup] = " & Me.[SupervisorCombo].Value
Debug.Print strWhereCondition
DoCmd.OpenReport "Your Report", View:=acViewPreview, _
    WhereCondition:=strWhereCondition 

と の数値データ型を想定[position]しまし[sup]た。それらが実際にテキストである場合は、strWhereConditionの値を引用してください。

strWhereCondition = "[position] = '" & Me.[PositionCombo].Value _
    & "' AND [sup] = '" & Me.[SupervisorCombo].Value & "'"
于 2013-11-12T20:31:29.147 に答える