- ベストアンサー
※ 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) 変数とかはちゃんと宣言しております。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
アスタリスクをパーセントに直して実行してみてください
その他の回答 (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 の直前のスペース があると正しいパスが認識できません。
質問者
補足
ありがとうございます。でもそれも違うみたいです・・・ 結果は空のテーブル構造だけが帰ってくるんです。
お礼
%にした上に、二重引用符を引用符'に改めたら成功しました。 MicrosoftSQLの文法にそっているんですね。 結果的にこの回答が最大のヒントになりました。ありがとうございました。
補足
ありがとうございます。 いま試してみましたが、同じように失敗しました。。。