2011-07-05 3 views
1

私が進む前に、私はあなたにいくつかの背景情報を提供することができ、一定の条件を満たしているアクセス条件付きのみを表示する行を作成しようとしている:Accessフォームフィールドのロジック

私はAccessフォームを作成し、それをリンクしました私のマシン上のテストDBに移動します。私が興味を持って、特定のテーブルには、次の(重要な)行が含まれています

IDは、オフィス、名前、SecurityNumber

事がある

は、IDは一意ではありません。 2つのオフィスの場所があり、各オフィスには固有のID番号が設定されています。これは、ここでのID 10が同じ人である場合とそうでない場合があることを意味します。 (このデータは、私たちがまだ変更しようとしていないレガシーセキュリティシステムのものなので、変更できません)

IDは各オフィス固有のIDです。

だから!私はTABSでAccessフォームを作成しました! 2つのタブ、各オフィスに1つ。私が今達成しようとしているのは次のとおりです。

各タブのID/Name/SecurityNumberフィールドに、その特定の「Office」値に一致する行のみが入力されるようにします。

お読みいただきありがとうございました。ありがとうございました! :D

答えて

0

個別のタブページコントロールに表示されるオフィスロケーションのデータを必要とする場合は、レコードソースとして使用されるクエリのWHERE句でのみ異なるページでサブフォームを使用できます。だから、Office1サブフォームのために、クエリは次のようになります。

SELECT ID, Office, [Name], SecurityNumber 
FROM YourTable 
WHERE Office = 'Office1' 
ORDER BY [Name]; 

その後Office2ため、クエリがWHERE句以外は同じになります:

WHERE Office = 'Office2' 

私はあなたの質問を理解しているように、そのアプローチが考えあなたが求めていることをしてください。

しかし、それはそれを行うための簡単な「アクセス方法」ではありません。代わりに、コンボボックスコントロールを使用して、ユーザーが表示するオフィスを選択できるようにします。コンボの更新イベントのコードでは、フォームのレコードソースとして使用されるSELECTステートメントを変更するか、フィルター式を作成して適用します。

また、SQL Serverからフォームのデータを取得するので、選択したオフィスの場所のすべてのレコードをフォームにロードするかどうかを検討してください。各場所の行の数が少数から中程度の場合はそれほど問題にはならないかもしれませんが、何千もの行を扱う場合はそうかもしれません。一般的に、ワイヤ全体で膨大な量のデータを取り出さないようにする必要があります。代わりに控えめに引っ張りなさい...あなたが手近な仕事のために必要なものだけ。

+0

こんにちは!私はこれをMacrosで実現しようとしていました。私は、あなたがSQLクエリを構築してそれをデータソースとして使用する必要があると言ったところから集まります。 – CodeMinion

+0

私はあなたが今何を意味するのかを見ていますが、何らかの理由で私のOffice2のフォームフィールドがすべて#Deletedに変わってしまいました:(現在起こっていること) – CodeMinion

+0

フィールドのいずれかのコントロールソースを選択するのに '= [dbo_Employee]![FirstName] – CodeMinion

関連する問題