UPDATEをうまくするには?


こわし  2007-04-04 02:58:44  No: 135967

AccessのDBで住所がかかれてるフィールドがあってそれを○○町という語句を××市に変えるイベントを作ってるんですけど、

RE = SQLExecute("update 住所禄 set 住所='××市' where 住所 like'%○○町%'")

と書いてみましたがなりません。どうすればうまく変更してくれるんでしょうか?
like演算子の使い方が間違ってるんでしょうか???


もげ  2007-04-04 03:26:09  No: 135968

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200703/07030031.txt
でも指摘されてましたが、

いきなり、
>RE = SQLExecute("update 住所禄 set 住所='××市' where 住所 like'%○○町%'")
じゃ、関数の内容は貴殿しか知りえない情報ですから皆さん回答に困りますね。
SQLExecute()の仕様を明らかにしてください。

'当方の解釈が間違っていたら指摘してください。

貴殿の意図としては、

「□□県●●郡○○町大字ド田舎」
という住所を
「□□県××市大字ド田舎」
という風にしたいが
そのSQLの例ですと、

「□□県●●郡○○町大字ド田舎」
が、
「××市」だけ
になってしまう

ということでしょうか?

この推測が合っているとすれば、
AccessのVBAであれば、Replace関数でお望みのことが実現可能です。

VB6の話であれば、
AccessのDB(MDB)でなければ、
DB側にREPLACE関数が用意されている場合もあるのですが、

セキュリティ上の問題で、
VB6からAccessの関数をSQL文に含めて実行することはできません。

したがって、
1行づつ読んでVB側でReplace関数を使う
ということになるかと。


モーヲタ  2007-04-04 07:20:19  No: 135969

>RE = SQLExecute("update 住所禄 set 住所='××市' where 住所 like'%○○町%'")
>と書いてみましたがなりません。どうすればうまく変更してくれるんでしょうか?
>like演算子の使い方が間違ってるんでしょうか???
もげさんも書かれてますが、前回の私の質問の確認はされましたか?
でなければ再度同じ事をこちらから質問するだけです。

もう一度同じ事を聞きます。

1:開発環境は何ですか?
    VB6以前?VB.NET?現在この掲示板はVB2〜VB6の
    掲示板になっているようなのでVB.NETではないのかな。
    OSは何ですか?WinXP?Win2000?それ以外のOS?
2:データベースは何ですか?
    AccessのMDBとは分かりましたが、Access2000データベースですか?
    それ以前のAccessMDBですか?
3:データベースに接続されていることは確認済みですか?
    その際、接続されていると言う確認はどのように行いましたか?
4:実際に住所禄テーブルに住所が○○町のデータが
    存在している事は確認済みですか?
5:SQLExecute関数は自作関数ですか?
    戻り値にLONG値を取っているようですが何の戻り値ですか?
    ↑は前回の
    Dim RE AS Long
    RE = SQLExecute("select count * from 社員リスト where 出身者='沖縄'")
    と同じであればと言う意味で。
    #前にも書きましたが、LONG値の変数名にREは止めましょう!!!!!
    #紛らわしいです。
6:「と書いてみましたがなりません。どうすればうまく変更してくれるんでしょうか?」
    とだけ書かれて第三者が分かりますか?
    どのような結果を意図してして実際はどのような結果になったのか?
    またはエラーで落ちたのか?その場合のエラー内容はどのような
    エラー内容だったか・・・

等を記載しないと第三者(回答者)は分かりません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加