Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル連続で更新処理するには
記事No172036
投稿日: 2017/09/28(Thu) 18:06
投稿者nanapapa
OS:2007
Access Version:2010
お世話になります
テーブル同士で更新クエリを実行させていますが
連続で実行させるにはどの様に設定すれば良いでしょうか?

■今の状態
以下のようにテーブルを同士で更新させていますが
以下の状態のままでは置換予定マスタのIDフィールドの1の値が一致したものを
更新していますが実際には50列ぐらいあります

■やりたいこと
置換予定マスタのID順(若番順)に更新を実行させたいのですが
どの様に組み込めばいいのかわからないです
※ID番号は途中から始まることもあれば番号が飛んでいる場合もあります

ご教授頂ければ幸いです


Private Sub コマンド0_Click()
Dim SQL As String

SQL = "UPDATE 検索結果マスタ INNER JOIN 置換予定マスタ ON (検索結果マスタ.[ビル名] = 置換予定マスタ.置換前ビル名) AND (検索結果マスタ.設備名 = 置換予定マスタ.置換前設備名) SET 検索結果マスタ.[ビル名] = [置換予定マスタ]![置換後ビル名] " & _
        " WHERE (((置換予定マスタ.ID)=1)) "

DoCmd.RunSQL SQL

End Sub

タイトルRe: 連続で更新処理するには
記事No172039
投稿日: 2017/09/29(Fri) 13:21
投稿者ナバ
こんにちは。

> ■今の状態
> 以下の状態のままでは置換予定マスタのIDフィールドの1の値が一致したものを
> 更新していますが実際には50列ぐらいあります
50列、ですか? IDの値が50種類ですか?

> ■やりたいこと
> 置換予定マスタのID順(若番順)に更新を実行させたいのですが
> どの様に組み込めばいいのかわからないです
すべてやってしまっていいのであれば、順序関係なしで、Where以降をなくせばいいのでは?
※操作する間にデータのバックアップをしてくださいね

タイトルRe^2: 連続で更新処理するには
記事No172040
投稿日: 2017/09/29(Fri) 15:54
投稿者ナバ
それとも、同じビル名、施設名が複数あって、
最終的にあとの方で上書きしたのであれば、
Where の代わりに

Order By 置換予定マスタ.ID

でしょうか。

タイトルRe^3: 連続で更新処理するには
記事No172041
投稿日: 2017/09/29(Fri) 17:06
投稿者nanapapa
> それとも、同じビル名、施設名が複数あって、
> 最終的にあとの方で上書きしたのであれば、
> Where の代わりに
>
> Order By 置換予定マスタ.ID
>
> でしょうか。

お返事大変ありがとうございます
IDは重複無しの連番になり50行です (数値はランダム
また実行方法は一気に更新するのではなくて
更新予約マスタにある行ごとに実行させたいです

※Whereの部分は テーブル内のレコードを全て実行させ
その実行方法はID順に更新を処理させる


言葉不足で申し訳ありません

タイトルRe^4: 連続で更新処理するには
記事No172043
投稿日: 2017/10/02(Mon) 13:05
投稿者ナバ
IDは重複がないとして、ビル名と施設名の組み合わせには重複がありますか?

ビル名と施設名の組み合わせに重複がなければ、
最初の返信の通り、Where区を無くせばいいのでは?
という答えになります。

バックアップを取ったうえで一度試してください。

タイトルRe^5: 連続で更新処理するには
記事No172044
投稿日: 2017/10/02(Mon) 18:29
投稿者nanapapa
> IDは重複がないとして、ビル名と施設名の組み合わせには重複がありますか?
>
> ビル名と施設名の組み合わせに重複がなければ、
> 最初の返信の通り、Where区を無くせばいいのでは?
> という答えになります。
>
> バックアップを取ったうえで一度試してください。

ナバ様お返事を頂き有難う御座います
最初はwhereを無くして実行していましたが
更新後の異変に気がついて質問するためにwhereを付けてた
流れになります

ビル名と施設名の重複は存在します
やはりID毎に実行させて行くには無理があるのでしょうか?

タイトルRe^6: 連続で更新処理するには
記事No172045
投稿日: 2017/10/03(Tue) 08:42
投稿者ナバ
おはようございます。

> ビル名と施設名の重複は存在します

Where の代わりに

Order By 置換予定マスタ.ID

でやってみてください。

タイトルRe^7: 連続で更新処理するには
記事No172047
投稿日: 2017/10/04(Wed) 10:42
投稿者nanapapa
> おはようございます。
>
> > ビル名と施設名の重複は存在します
>
> Where の代わりに
>
> Order By 置換予定マスタ.ID
>
> でやってみてください。

お返事有難う御座います
試しましたが
演算子ありません とエラーが出るのですが、
ググってみたら 複数テーブルでupdateのorder byは駄目とか?的外れかも
回避方法が無くて困っています何か良い方法はありませんか?

タイトルRe^8: 連続で更新処理するには
記事No172048
投稿日: 2017/10/04(Wed) 13:08
投稿者ナバ
置換予定マスタの重複レコードのうち、途中経過はどうであれ、
IDが1番大きいレコードで更新すればいいですか?

検索結果マスタ
ID ビル名 設備名
1 あああ いいい

置換予定マスタ
ID 置換前ビル名 置換前設備名 置換後ビル名
1 あああ いいい さささ
2 あああ けけけ ととと
4 あああ いいい めめめ
5 あああ いいい ししし

置換後
ID ビル名 設備名
1 あああ ししし

タイトルRe^9: 連続で更新処理するには
記事No172049
投稿日: 2017/10/04(Wed) 21:58
投稿者nanapapa
> 置換予定マスタの重複レコードのうち、途中経過はどうであれ、
> IDが1番大きいレコードで更新すればいいですか?
>
> 検索結果マスタ
> ID ビル名 設備名
> 1 あああ いいい
>
> 置換予定マスタ
> ID 置換前ビル名 置換前設備名 置換後ビル名
> 1 あああ いいい さささ
> 2 あああ けけけ ととと
> 4 あああ いいい めめめ
> 5 あああ いいい ししし
>
> 置換後
> ID ビル名 設備名
> 1 あああ ししし
はいIDが大きいレコードの更新が希望です

タイトルRe^10: 連続で更新処理するには
記事No172051
投稿日: 2017/10/05(Thu) 09:05
投稿者ナバ
> はいIDが大きいレコードの更新が希望です

では、
1.置換予定マスタで、.置換前ビル名・置換前設備名ごとのIDの最大を求める集計クエリーを作成
2.1.を元に新規テーブルを作成
3.検索結果マスタ、2で作成したテーブル、置換予定マスタで更新クエリーを作成
するというのはどうでしょうか。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る