「ヘルプデスク」システムと同様に機能するデータベースがあります。外部ユーザーがリクエストチケットを作成すると、コンサルタントがデータベースを使用してさまざまな追跡とレポートを行います。
コンサルタントがエンド ユーザーの要求を表示して処理するために使用するフォームがあります。コンボ ボックスから既存のレコード (リクエスト チケット) を選択します。次に、フォームに要求の情報が取り込まれます。コンサルタントは、必要に応じてこの情報を編集できます。
このフォームには、コンサルタントがさまざまなフォーム (ワークシート) を開いて各フォームにデータを入力するために使用できる一連のボタンがあります。これらはすべてオプションであり、リクエストのタイプによって異なります。
これらのワークシートはすべて「Consulting」テーブルに入力されますが、最初のリクエストは「Request」テーブルにあります。「Consulting」テーブルには、「Request」のレコードごとに 1 つのレコードしかありません (1:1 の関係)。
フォーム(ワークシート)を開くために必要なコードは次のとおりです。
Private Sub ButtonGap_Click()
DoCmd.OpenForm "Gap Analysis", acNormal, , "[ID] = " & Me!ID, acFormEdit, acDialog
End Sub
これは部分的にしか機能しません。「Consulting」テーブルに、「Request」の ID (最初にコンボ ボックスで選択したもの) に対応する ID を持つ既存の情報がある場合、ワークシートは事前入力されて編集可能に開きます。すごい!
しかし... 「Consulting」テーブルに「Request」の ID に対応する ID を持つ既存の情報がない場合、ワークシートは空白で新しいレコードに開きます。このレコードは、「コンサルティング」テーブルが中断されたところから自動番号付けされます。これにより、複数のリクエストが届いた場合に問題が発生します。常に順番どおりに処理しているわけではないため、「コンサルティング」の新しいレコード ID が「リクエスト」の既存のレコードと一致しません。
私が見落としているのは、信じられないほど単純なものだと確信しています。誰でも助けることができますか?