• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.netでSQL 失敗する理由がわからないです)

VB.netでSQL 失敗する理由がわからないです

このQ&Aのポイント
  • VB.net2010でSQLに挑戦しているのですが、Accessで実行するとうまくいくのに、VBに持って行ってやると必ず失敗する箇所があり、まったく解決策が浮かびません。
  • Accessで成功することがVBでできないのです。詳しい方ぜひ教えて下さい。
  • Dim DBConnect As New OleDb.OleDbConnection(OleDBString) Dim SQLCm As OleDb.OleDbCommand = DBConnect.CreateCommand Dim Adapter As New OleDb.OleDbDataAdapter(SQLCm) ... 't_omakaseに一次結果を保存 ←成功します。 SQLCm.CommandText = "SELECT t_object.ObjectId, t_object.ObjectSpecId, t_object.ObjectName INTO t_omakase FROM t_object WHERE (((t_object.ObjectId)>7 And (t_object.ObjectId)<39) AND ((t_object.ObjectSpecId)=6)) ORDER BY t_object.ObjectId; " Adapter.Fill(Table1st) 't_result作成 ←これが必ず失敗します。 SQLCm.CommandText = " SELECT t_omakase.ObjectName, t_object.ObjectName, t_object.[500] INTO t_result FROM t_object INNER JOIN (t_omakase INNER JOIN t_containment ON t_omakase.ObjectId = t_containment.ParentId) ON t_object.ObjectId = t_containment.ChildId WHERE (((t_object.[500]) Like ""C:\Users\ " & Username & " \Music\iTunes*"")) ORDER BY t_containment.ParentId, t_containment.Order; " Adapter.Fill(Table2nd) 変数とかはちゃんと宣言しております。

質問者が選んだベストアンサー

  • ベストアンサー
  • singlecat
  • ベストアンサー率33% (139/418)
回答No.1

アスタリスクをパーセントに直して実行してみてください

SIMONIA
質問者

お礼

%にした上に、二重引用符を引用符'に改めたら成功しました。 MicrosoftSQLの文法にそっているんですね。 結果的にこの回答が最大のヒントになりました。ありがとうございました。

SIMONIA
質問者

補足

ありがとうございます。 いま試してみましたが、同じように失敗しました。。。

その他の回答 (2)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

VB.netでSQLを扱ったことはないので、想像だけで確証はないですが、 もしかしたら大文字小文字の違いということはない? AccessのSQLでは大文字小文字は区別なしに比較可能ですが、VB.netのSQLもそうなのかなあ?

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

WHERE (((t_object.[500]) Like ""C:\Users\ " & Username & " \Music\iTunes*"")) ↓ WHERE (((t_object.[500]) Like ""C:\Users\" & Username & "\Music\iTunes*"")) Users\ の直後のスペース \Music の直前のスペース があると正しいパスが認識できません。

SIMONIA
質問者

補足

ありがとうございます。でもそれも違うみたいです・・・ 結果は空のテーブル構造だけが帰ってくるんです。