[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/01(Tue) 16:13
投稿者名:むら
Eメール:
URL :
タイトル:
VB+ACCESSのINSERT文で数値型のフィールドに行追加の時「'」は必要でしょうか?
使用環境
OS:win2000,VB:VB6.0,DB:Access2000
はじめまして、よろしくお願いします。
VBを使いACCESSにデータを追加する時に、数値型のフィールドに「INSERT INTO文」で追加するのです
が、
この時「'」(シングルコーテーション)は必要なのでしょうか?

文字     数値   文字     数値    数値      数値
SYOKEY SYOCODE SYOSYOHIN SYOSUU SYOTANKA SYOKINGAKU
10001    101    マンガ     10      500       5000
10002    102   雑誌        3      200        600
10003    103   小説        8      100        800

INSERT INTO SYOHIN(SYOKEY,SYOCODE,SYOSYOHIN,SYOSUU,SYOTANKA,SYOKINGAKU)
VALUES('10041','105','絵本','10','500','5000')
となった場合、数値型の'105','10','500','5000'の「’」は必要なのでしょうか?どちらでも問題な
いので
しょうか?
実際どちらでも上手くいくのですが…。
ちなみに実際はすべて、変数でやっているので 「"," & "'" & Kcod
e & "'" & ","」になるのですが。

よろしくお願いします。

投稿時間:2005/02/01(Tue) 17:59
投稿者名:いな
Eメール:
URL :
タイトル:
Re: VB+ACCESSのINSERT文で数値型のフィールドに行追加の時「'」は必要でしょうか?
数値型フィールドに更新を掛ける時には使わないなぁ〜
文字列の時だけです。

追伸)
私の場合、"'"なんていくつも書いているとデバッグする人は
目が痛くなるので、SQL文中の"'"はあえてChr(39)を使うようにし、みやすくしてます。
「",'" & Kcode & "',"」と
「"," & Chr(39) & Kcode & Chr(39) & ","」

すぐ、シングルコートで囲まれていると気が付くのはどっちでしょう。

投稿時間:2005/02/01(Tue) 20:43
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: VB+ACCESSのINSERT文で数値型のフィールドに行追加の時「'」は必要でしょうか?
> > この時「'」(シングルコーテーション)は必要なのでしょうか?
数値項目は、「'」で囲まない方が良いですよ。
型変換処理が発生するため、若干の速度低下が見られますし。


> > 「"," & "'" & Kcode & "'" & ","」になるのですが。
『"," & "'"』→『",'"』
『"'" & ","』→『"',"』
で良いのでは。


> 「",'" & Kcode & "',"」と
> 「"," & Chr(39) & Kcode & Chr(39) & ","」
> すぐ、シングルコートで囲まれていると気が付くのはどっちでしょう。

私は前者かな……。

「39」が「シングルクォートを表す値」だという事が、直感的にわかりにくいので、
Constを切って使うか、またはそのまま「'」を埋めてある方が、(個人的には)好きです。

# もっとも、普段はパラメータクエリを使う事の方が多いですけど。


あと、どちらの方法を使うにしても、指定する数が多くなると、「'」や Chr() で括るのを、
うっかり忘れる事もあるので、いっそ、Access の「BuildCriteriaメソッド」のような関数を
作成してしまうのも、一つの手かと思います。(冗長的ですけれどね)

投稿時間:2005/02/02(Wed) 10:28
投稿者名:むら
Eメール:
URL :
タイトル:
Re^3: VB+ACCESSのINSERT文で数値型のフィールドに行追加の時「'」は必要でしょうか?
いな様 魔界の仮面弁士様 

返事ありがとうございます。

まず結論としては、やはり「'」で囲まない方がいいのですね。早速、外します。

> 「",'" & Kcode & "',"」と
> 「"," & Chr(39) & Kcode & Chr(39) & ","」
> すぐ、シングルコートで囲まれていると気が付くのはどっちでしょう。

Chr(39)で囲むのもひとつの方法なんですね。なれていないせいか
「",'" & Kcode & "',"」の方がなれているので、こっちでやってみます


> あと、どちらの方法を使うにしても、指定する数が多くなると、「'」や Chr() で括るのを、
> うっかり忘れる事もあるので、いっそ、Access の「BuildCriteriaメソッド」のような関数を
> 作成してしまうのも、一つの手かと思います。(冗長的ですけれどね)

BuildCriteriaメソッドも調べてみました。
一度こっちの方法でもやってみようと思います。

丁寧な回答ありがとうございました。たくさん雪降っていますが、いろいろ試してみます。
ありがとうございます。