2009-07-21 11 views
0

は私が更新クエリを実行することができ、1つの単一のフィールドにように実行複数の更新:334 456に更新&「バリー・デイビス」などMS Access 03 - 更新クエリの基準の1つのフィールドにmuliplte "ifs"?

に更新

「ジョーのDOEは」基本的に私は名前を変換したいです(私の場合は従業員のID番号になります)、私は約500人の従業員を抱えていますので、一度に1つは少し質問にはなりません。テーブルはExcelからインポートされ、私はどのようにこの事前インポートのethierを行うのか分からない!

ありがとうございました!

+1

+1 Ed Harperの説明では、データベースの内容やExcel-as-a-Databaseが提供していないことをもっと見る機会があります。 – Smandoli

+0

Excelで割り当てられた番号を取得したい場合、IDが必要な場合は、VLookupが典型的な解決策である可能性があります。しかし、アクセスしないでください。私はこれを "答え"にしようと思っていましたが、あなたはそれをするかもしれません! – Smandoli

+0

下の私の答えにあなたのコメントが与えられた、あなたの質問は、あなたがすでに投稿したものより幾分複雑です。 AccessでUserIDテーブルとScheduleテーブルの構造の詳細を追加するために質問を編集できますか? –

答えて

3

Accessで複数のIifステートメントを使用することはできますが、Accessでの更新クエリを使用してこれを行うことができます。

データソースの詳細がなくてもわかりにくいです。ここでは、アクセスリストのユーザー名にID(ユーザーと呼んでいます)のテーブルが既にあると仮定しています。ユーザー名とIDをリストしたAccessテーブルがまだない場合は、取得する必要があります。

また、Excelから更新するデータをExcelImportというテーブルにインポートしたとします。

明らかに、私の例で使用されているテーブル名を実際のテーブル名に置き換える必要があります。

Excelデータ内のユーザー名を置き換えるのではなく、ユーザーIDを保持するためにExcelImportに新しい列を追加する方が賢明かもしれません。

  1. 新しいクエリを作成します(「デザインビューで新しいクエリを作成する」)

  2. はあなたのクエリに

  3. をユーザーとExcelImportテーブルの追加]をクリックしてテーブル間のリンクを作成し、 Usersテーブルの「ユーザー名」フィールドをドラッグし、ExcelImportの「ユーザー名」フィールドを解放します。これにより、このフィールドに2つのテーブルがリンクされます。

  4. 変更更新するクエリの種類(クエリ>更新クエリ)

  5. (あなたがそれを使用している場合、または追加のユーザーIDフィールド)ExcelImportのユーザー名フィールドをダブルクリックしてターゲットにしますそれは更新のためです。クエリデザイナの下半分の列1に表示されます。 "への更新:" では

  6. 。このコラムの分野、種類[ユーザー]、[ユーザーID]

  7. は、クエリを実行します。 n行を更新することを確認するメッセージボックスが表示されます。 [OK]をクリックして確認します。

あなたのデータはエクセルから来ていることを考えると、あなたはそれがExcelのデータで「ジョーDoeのは、」ユーザーに「ジョセフ・ドウ」として保存されている可能性がありますので、すべてのユーザーIDが正しく設定されていることを確認する必要がありますテーブル - この場合、一致するようにExcelデータを手動で編集する必要があります。

+0

UserIDテーブルには、アクセスのautonumber/IDフィールドであるキーがあります。それは問題ありません。 DIVISION#(ちょうどa、b、Cと言うことができます)、そして本当に必要なことは、これらのタイプを毎月の旅行ごとに数えることです。 私は姓を設定しても、数字(私は自宅を想定している)を見たいので、私はルックアップフィールドにすべての名前を含むこのスケジュールテーブルのフィールドを作成しようとすると、動作しません。 複数の名前があるのでキーとして名前を設定するのは難しいですが、イニシャルを追加することは冗長です! – Justin

+0

しかし、私は後に、特定のパラメータ(旅行、月、四半期)の1つのタイプ(A、B、またはC)の人の量を数える(集計の合計を提供する)方法を考えています... あなたはテーブルの後にこれについて行く方法を提案できますか?クロス集計クエリ??これについてどうやって行くのかわからない? – Justin

+0

@Justin - アップデートは正常に終了しましたか?あなたのUserIDテーブルの名前とインポートされたスケジュールデータの間にまともなレベルの一致が得られていますか? –

1

私はそう 一度に一つ、これはユニークなINTEGER値の標準発行シーケンステーブルを使用することを検討して少し

間違いなく論外:)

は約500人の従業員を持っています:

SELECT SWITCH(
       seq = 1, 1, 
       seq = 2, 2, 
       seq = 3, 3, 
       seq = 4, 4, 
       seq = 5, 5, 
       seq = 6, 6, 
       seq = 7, 7, 
       seq = 8, 8, 
       seq = 9, 9, 
       seq = 10, 10, 
       seq = 11, 11, 
       seq = 12, 12, 
       seq = 13, 13, 
       TRUE, 999 
      ) AS seq_1 
FROM Sequence; 

14を超えると、「式表現が複雑すぎます」というエラーが発生します。だから私はあなたが500件近くのどこにも行くとは思わない!

これをルックアップテーブルにするとよいでしょう。

関連する問題