過去ログ

                                Page     439
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ACCESSでのSQL命令について  morik 03/10/14(火) 17:24
   ┣Re:ACCESSでのSQL命令について  イケガミ 03/10/14(火) 17:40
   ┣Re:ACCESSでのSQL命令について  孫悟空 03/10/15(水) 22:33
   ┣Re:ACCESSでのSQL命令について  μ 03/11/6(木) 1:16
   ┗ありがとうございました。  morik 03/11/20(木) 8:47

 ───────────────────────────────────────
 ■題名 : ACCESSでのSQL命令について
 ■名前 : morik
 ■日付 : 03/10/14(火) 17:24
 -------------------------------------------------------------------------
   TABLEの中のIDが1で項目1、項目2、項目3の内容が全て空白だったら削除
という命令をしたいのですが以下のSQLを実行させると項目1が空白のときしか
TABLEの中身が削除されません。

  sql = " DELETE * FROM TABLE " _
    & " WHERE ID = '1'" _
    & " And (IsNull(項目1) = true or 項目1 = "") " _
    & " And (IsNull(項目2) = True or 項目2 = "") " _
    & " And (IsNull(項目3) = True Or 項目3 = "") "

  dbs.execute sql

どなたかご存知の方教えてください。
よろしくお願いします。

 ───────────────────────────────────────  ■題名 : Re:ACCESSでのSQL命令について  ■名前 : イケガミ  ■日付 : 03/10/14(火) 17:40  -------------------------------------------------------------------------
   >  sql = " DELETE * FROM TABLE " _
>    & " WHERE ID = '1'" _
>    & " And (IsNull(項目1) = true or 項目1 = "") " _
>    & " And (IsNull(項目2) = True or 項目2 = "") " _
>    & " And (IsNull(項目3) = True Or 項目3 = "") "

sql = " DELETE * FROM TABLE " _
   & " WHERE ID = '1'" _
   & " And Len(Nz(項目1,"") & Nz(項目2,"") & Nz(項目3,"")) = 0"

ではどうでしょうか?

あと、SQLという変数名は、SQLプロパティというのがDAOにありますので、
strSql とかのように変更した方がいいと思います。

 ───────────────────────────────────────  ■題名 : Re:ACCESSでのSQL命令について  ■名前 : 孫悟空  ■日付 : 03/10/15(水) 22:33  -------------------------------------------------------------------------
   ▼morik さん:
>TABLEの中のIDが1で項目1、項目2、項目3の内容が全て空白だったら削除
>という命令をしたいのですが以下のSQLを実行させると項目1が空白のときしか
>TABLEの中身が削除されません。
>
>  sql = " DELETE * FROM TABLE " _
>    & " WHERE ID = '1'" _
>    & " And (IsNull(項目1) = true or 項目1 = "") " _
>    & " And (IsNull(項目2) = True or 項目2 = "") " _
>    & " And (IsNull(項目3) = True Or 項目3 = "") "
>
>  dbs.execute sql
>
>どなたかご存知の方教えてください。
>よろしくお願いします。

やりたいのは、このようなSQLでは?
  sql="DELETE * FROM TABLE " _
    & "WHERE ID = '1' " _
    & "And (項目1 is null or 項目1 = "") " _
    & "And (項目2 is null or 項目2 = "") " _
    & "And (項目3 is null or 項目3 = "") "
違っていたらゴメンです。

 ───────────────────────────────────────  ■題名 : Re:ACCESSでのSQL命令について  ■名前 : μ  ■日付 : 03/11/6(木) 1:16  -------------------------------------------------------------------------
   ▼morik さん:
>TABLEの中のIDが1で項目1、項目2、項目3の内容が全て空白だったら削除
>という命令をしたいのですが以下のSQLを実行させると項目1が空白のときしか
>TABLEの中身が削除されません。
>
>  sql = " DELETE * FROM TABLE " _
>    & " WHERE ID = '1'" _
>    & " And (IsNull(項目1) = true or 項目1 = "") " _
>    & " And (IsNull(項目2) = True or 項目2 = "") " _
>    & " And (IsNull(項目3) = True Or 項目3 = "") "
>
>  dbs.execute sql
>
>どなたかご存知の方教えてください。
>よろしくお願いします。

ありがちなチョンボですね。
お好きな方でどうぞ。

sql = " DELETE * FROM TABLE " _
  & " WHERE ID = '1'" _
  & " And (IsNull(項目1) or 項目1 = '') " _
  & " And (IsNull(項目2) or 項目2 = '') " _
  & " And (IsNull(項目3) or 項目3 = '') "

sql = " DELETE * FROM TABLE " _
  & " WHERE ID = '1'" _
  & " And (IsNull(項目1) or 項目1 = """") " _
  & " And (IsNull(項目2) or 項目2 = """") " _
  & " And (IsNull(項目3) or 項目3 = """") "

 ───────────────────────────────────────  ■題名 : ありがとうございました。  ■名前 : morik  ■日付 : 03/11/20(木) 8:47  -------------------------------------------------------------------------
   イケガミさん、孫悟空さん、 μ さん有難うございました。

助かりました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 439