簡単なデータベースを作っています。顧客台帳に顧客名と担当者名を作りましたが、担当者(佐藤)が退社したため、担当者(伊藤)に変更しようとしていますが、なかなかうまくいきません。どなたか教えてください。
Str:=StringReplace(Str,'佐藤','伊藤',[rfReplaceAll])
データベースが何なのかわかりません。
質問者がDelphiでどの様に処理をしていて上手くいかないのか
それも判りません。
通常なら(オラクルとかSQLServerとか)一括して変えるなら
バッチファイルでもコマンドプロンプトからでも変えれます。
UpDate文を流せば良いと思います・・・としか答えようが
「UpDate 顧客台帳 SET 担当者名 = 伊藤 WHERE 担当者名 = 佐藤」
こういう時のためのデーターベースです。
顧客マスターと担当者マスターを分けて、
担当一覧表にすれば、こんな問題は出ませんよ。
DL6pro、BDEにて開発しています。顧客テーブルは顧客マスター、顧客のデータは夫々にテーブルを作成してSQL文を発行してデータ一覧を見れるようにしています。この一覧のデータから例えば、担当者が(担当者=伊藤)という顧客を絞り込みたいと思うのですが、まず、この段階でのやり方が判りません。絞り込んだ後に、担当者の名前を変更して、新しい担当者へ引き継ぎたいと思います。何分、初心者なのでヘルプファイルなどを読んでもうまく理解できません。よろしくご教示、お願いします
例えば
担当者マスター
担当者CD 担当者名
0001 佐藤
0002 伊藤
0003 鈴木
顧客データー
顧客CD 顧客名 担当者CD
00001 顧客1 0001
00002 顧客2 0001
00003 顧客3 0003
00004 顧客4 0001
の様なテーブルがあったとすると、担当者が0001/佐藤から
0002/伊藤に変わる場合は、Syakeさんの書いているように
UPDATE 顧客データー SET
担当者CD =
(SELECT 担当者CD
FROM 担当者マスター
WHERE 担当者名 = "佐藤")
WHERE 担当者CD=
(SELECT 担当者CD
FROM 担当者マスター
WHERE 担当者名 = "佐藤")
とすれば簡単に変更できます。
HOtaさん、それ値変わらないっす^^;
#DBがSQL Serverと仮定して
1.担当者が(担当者=伊藤)という顧客を絞り込み
Select A.* From 顧客データー A
Inner join 担当者マスター B on A.担当者CD = B.担当者CD
Where B.担当者名 = '伊藤'
2.担当者(伊藤)を、担当者(福沢)に変更。ただし名前だけ
Update 担当者マスター Set 担当者名 = '福沢' where 担当者名 = '伊藤'
3.担当者(伊藤)が受け持っている顧客を、担当者(福沢)に変更。
UPDATE 顧客データー SET 担当者CD =
(SELECT 担当者CD FROM 担当者マスター WHERE 担当者名 = "伊藤") --←ここ
WHERE 担当者CD=
(SELECT 担当者CD FROM 担当者マスター WHERE 担当者名 = "佐藤")
3.の説明文が僕も間違ってました。
3.担当者(伊藤)が受け持っている顧客を、担当者(福沢)に変更。
↓
3.担当者(佐藤)が受け持っている顧客を、担当者(伊藤)に変更。
ごめんなさい
コピーして、修正するのを忘れていました。
ツイート | ![]() |