指定カラムのデータをすべて変更するには?


とも  2003-11-26 10:25:24  No: 110242

VB6ですが、フォームをロードしたときに特定の列だけすべてのデータに同じ値を入れたいのですが、良い方法がわかりません。グリッドにデータを参照させているのですが、一つの列だけを毎回同じ値に変えたいとおもっています。そしてユーザが変更したものは他のテーブルに格納する予定です。つまりその列は選択用に使用します。誰か良い方法を知っていましたら教えてください。


特攻隊長まるるう  2003-11-27 09:47:54  No: 110243

SQL文に文字列で細工するのはどうかな?'String = 'の部分に好きな文字列を
入れてみて下さい。実際のデータ表示との組み合わせは色々試してみて?

"SELECT 'String = ', * FROM [TblName]"

位置は変えれると思います。…詳しくはSQLの参考書でも…

"SELECT [1st],[2nd],'String = ',[3rd] FROM [TblName]"

列の表示ということで縦に表示されたのでいいよね?…横は…
結合する列の値同士が互換性のあるデータ型でないといけませんが、UNION 
による『クエリ結果の結合』をおこなう事で擬似的に自分の決めた値の行を追加
できます。データベースに書き込まれるわけではないので注意してください。
結合するわけですから、列の数も一致するように設定してください。
UNION から後を設定すればつねに同じ表示の行を加えることができると思います。
下の例の場合、'1','2','3'の部分に文字列を入れます。

"SELECT [1st],[2nd],[3rd] FROM [TblName] UNION SELECT '1','2','3' FROM [TblName]"

ただし、ここで追加した行は主キーの制限を受けなかったりします。(データが
登録されるわけではないので当たり前ですが…)しかしユーザから見た場合、
主キーとなる行が重複しても良いように見える場合があります。気をつけて
ください。

また、横の場合、任意の行に表示するとなると…SQL文のほうで行を入れ替えるのはちょっと
面倒かな…。他の方法探したほうが良いかもしれません。


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

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






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