2016-10-17 7 views
0

状況:生物標本に関するメタデータがAccessテーブルに収集されます。
標本はヒト患者由来であり、患者データは別個の表に集められている。
私たちが抱いている個人の健康情報の量を制限するためには、実際にサンプルを受け取ったときにのみ、患者データベースを新しい患者に更新する必要があります。テキストボックスからの値を持つフォームによる条件の照会

患者テーブルを更新する必要があることをデータ入力作業者が知るように、入力された患者ID値を基準としてクエリに渡す標本データ入力フォームのボタンが必要です。

クエリは今、この権利のようになります。

SELECT Patients.[Patient id] 
FROM Patients 
WHERE (((Patients.[Patient id])=[Forms]![Specimen entry]![patient id])); 

が、それは私が患者テーブルの患者に対応して知っている記録からそれを実行しても、結果を持っていることはありません。
これを修正するにはどうすればよいですか?

私はそれについてより良い検索をすることができますようにこのような状況を呼び出すための提案もありがたいです。私はアクセスの初心者です。

答えて

0

クエリは正しいように見えますが、WHERE句が数値を数値または文字列と(文字列の数値ではなく)文字列と比較していることを確認してください。また、フォームとテキストボックスの名前が正しいことを確認します。あなたの質問を使った簡単なテストが私の仕事でした。

情報の表示方法によっては、VBAでクエリを動的に作成し、その情報をフォームに渡すこともできます。

検索には、アクセス、動的、クエリ、およびvbaの組み合わせをお勧めします。

代替オプション

あなたは、単一の患者がテーブルに存在するかどうかを確認するために探しているなら、のDLookup関数を使用する方が簡単かもしれ:

If IsNull(DLookup("[Patient ID]", "Patients", "[Patient ID]='" & Me.Patient_ID & "'")) Then MsgBox "does not exist" 

これはにチェックします患者が存在するか(数値を返すか)、存在しないか(NULLを返すか)を確認します。

https://support.office.com/en-us/article/DLookup-Function-8896cb03-e31f-45d1-86db-bed10dca5937

関連する問題