2017-04-18 3 views
0

私は見てきましたが、ここでこれを行う方法が見つかりませんでした。私は検索が歪曲していると仮定しています。私はそれを逃したばかりです。この場合は私に知らせてください。MS Access 2010の空白クエリを複雑に埋めてください

いずれにせよ、私は毎日大量の扱いにくいレポートがSAPから出てきています。それはしばしば奇妙なものになるので、私たちはそれをAccessデータベースにインポートして、私たちの部門で必要なものを見守ることができます。私はAccessで主キーを作成するために6つのフィールドの組み合わせを使用しています。これらのフィールドの情報は、このSAPレポートから一貫した唯一のものですが、残りのデータは動的なものとみなされ、日々変化する可能性があります。通常、これはいくつかのブランクを記入することです。既存のデータが変更されることがありますが、まれに、いくつかのフィールドからデータを削除することがあります。

SAPのレポートは約130列のデータですので、手動でそこに置くものを上書きせずに変更をロールインする効率的な方法を探しています。

編集: これはこれが使用される方法です。 SAPは(私が入るつもりはないので)時々日々の報告書に悪いデータが現れるでしょう。私たちはAccessを使って正しいデータを追跡して、より正確な要約を生成できるようにしています。ユーザーが入力した内容は、正確かつ正確であるとみなされます。

追跡中のトランザクションには、完了までに時間がかかる場合があります。ほとんどの場合、30日ほどかかります。そういうわけで、ある日は空白のフィールドがあり、次のフィールドには空白のフィールドがあります。私たちは数日後には何も得られないかもしれません。それが正常な流れです。

私が説明しなければならないのは、プロセスの初期に間違いが起きる奇妙な機会です。特定の時点で、エラーが発生すると、使用する必要があるレポートで何かを更新するSAPの能力が損なわれます。

3つのフィールドが設定されており、ユーザーの日々の仕事がどのようなものになるかがわかります。ユーザー1が必要な処理を完了し、そのレコードがユーザー2のレポートに表示されるように、論理的な流れがあります。これらのフィールドは、SAPから何が入って来るのか、既にデータベースに入っているものに違いがある場合、例外レポートの一般的な更新プロセスも停止します。

私が探しているのは、アクセスの既存のレコードで空白のフィールドを体系的に記入する方法です。フィールドに何かがある場合は上書きしません。ヌル値のみです。私は一度に1つのフィールドでこれを行うことができますが、各レコードには約130のフィールドがあります。私はちょうど1つのクエリでこれを行うことができる方法があるかどうか疑問に思っていますか?

ありがとうございます!私は編集がより意味をなさないことを願っています。

+0

を埋めるために、テーブルBから必要なデータを取得するために参加しますこれらを識別し、他のユーザーが新しく入力した日付と区別できる必要があります。これは、コーディングに関する概念的な問題です。 – Gustav

+0

あなたの質問はあまり明確ではありませんが、条件付き更新クエリが必要なように聞こえます。特定のフィールドのデータが入力されることもありますが、特定のフィールドのデータが変更されることもあります。また、特定のフィールドのデータが削除されることもあります。だから、どちらが正しいのかを判断する最良の方法に依存しています。次に、それをクエリに組み込むか、適切なクエリを作成して実行するVBAを記述します。より具体的な情報がなければ、それは私が提供できる最高のものです。 –

+0

@ JohnnyBonesありがとうございます。私は私の質問を再読しましたが、それは本当に明確ではありません。私は編集します。本当に忙しい一日でした –

答えて

1

"Access SQL update null値"のためのシンプルなgoogleは、必要なものをあなたにもたらしました。すべてを行う必要がある場合でも、空のフィールドに一定の値を記入した後、何かのように:

UPDATE Table SET Table.field1 = VALUE 
WHERE Table.field2 is NULL; 

さて、このデータは、に基づいて、各レコードの異なる場合。別のフィールドからのデータを言うならば、その値/文字列を構築するためにいくつかのVBAを書く必要があります。私が正しく理解していますので、もし

:あなたは、2つのテーブルを持っているあなただけのデータを含めるようにヌルフィールドを更新しているそうでない場合でも、単純なUPDATEステートメントは、新しい情報に基づいて

EDITを行います。空白のフィールドと必要な値を含む別のテーブルを持つ1つのテーブル。あなたはデータを削除しなければならないと感じた場合は

このような場合は、あなたが同様のUPDATEステートメントを使用しますが、内部を使用することができますが、テーブルに

UPDATE TableA INNER JOIN TableB ON TableA.KeyField = TableB.KeyField 
SET TableA.NullField = TableB.NotNullField 
WHERE TableA.NullField Is NULL; 
+0

それは私が尋ねる前に私が見つけたものです。私はこれらの種類の更新クエリを他の場所で使用しています。私は、null値を持つフィールドを見て、新しい受信情報を持つテーブルと比較し、何かを持っているフィールドを残してnullフィールドを上書きする何かを探しています –

+0

私の答えを編集しました。それがあなたのために働くかどうかを確認してください – mattlore

+0

ありがとう!私はSQLではうまくいきませんが、私がこの権利を読んでいるなら、内部結合に基づいてテーブルAとテーブルBを比較します。 SET TableA.Nullfield = TableB.NotNullFieldアカウントは、すべてのフィールドのすべてのインスタンスに対して実行されますか?私はこれを強引にしようと思っているが、退屈だ。 –

関連する問題