更新、追加できない

解決


旗国丸  2006-03-30 09:53:27  No: 94840

ADO初心者の旗国丸です。
環境は
VB6  
Microsoft ActiveX Data Objects 2.1 Library  (ADO)
SQLsever2000
ユーザ名  sa
パスワード  sa
テーブル  t_Data  
フィールドID  Codeはint型  , Nameはvarchar型  , Tankaはmoney型
txtcode.textはコードの入力
txtname.textとtxttanka.textはNameと単価の更新するデータを入力
   
これでまずMARCYRYサーバ(事務所内のサーバ)のSQLsever2000に接続し
コードを入力してそのコードと一致するテーブルのレコードを 
cn.excute("update t_data set Name = '"& txtname.text &"' , Tanka   = '"& txttanka.text &"' where Code = '"& txtCode.text &"' ")の文で
更新を行いたいのですが。
エラー、varchar型からmoney型への列Tankaの暗黙的変換はできません、このクエリーを実行するのはConvert関数を使ってくださいとでます。どうしたら
いいのでしょうか。ちなみに'"& txttanka.text &"'の所を1や2と言った数字にするとうまく更新できます。insertのほうも同じエラーです。
お手数ですがアドバイスをいただけたら幸いです。


我龍院忠太  2006-03-30 17:04:35  No: 94841

要するに、Tankaはmoney型でtxttanka.textはvarchar型だから
明示的にConvert関数を使って型変換をしなさいと言っている。
実際にこれで良いかどうかわからないけど、考え方として
txttanka.textの代わりに
Convert(txttanka.text,money)
とか何とかやればいいのでは。


VFR  2006-03-30 18:54:10  No: 94842

money型やint型といったの項目の場合、
シングルコーテーションはいりませんので
下記の様に修正すると大丈夫だと思います。
cn.excute("update t_data set Name = '"& txtname.text &"' , Tanka   = "& txttanka.text &" where Code = "& txtCode.text &" ")

それとSQL文を記述する前にSQLseverのクエリーアナライザで
一度実行してみたらいかがでしょうか?


旗国丸  2006-04-02 05:46:39  No: 94843

皆様のアドバイスで解決する事ができました。
ありがとうございました。我龍院忠太様、VFR様のおっしゃる通りでした。


ナナシ  2006-04-02 21:19:44  No: 94844

>解決する事ができました

・・・何かやり忘れてない?


旗国丸  2006-04-03 05:43:03  No: 94845

解決表示をするのを忘れていました。
ちなみにVFR様の言うとおり("update t_data set Name = '"& txtname.text &"' , Tanka   = "& txttanka.text &" where Code = "& txtCode.text &" ")で解決しましたことを報告します。
皆様ありがとうございました。


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

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






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