アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは。閲覧ありがとうございます。

VB.net2010でSQLに挑戦しているのですが、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)


変数とかはちゃんと宣言しております。
Accessで成功することがVBでできないのです。詳しい方ぜひ教えて下さい。

A 回答 (3件)

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

この回答への補足

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

補足日時:2012/06/13 02:07
    • good
    • 0
この回答へのお礼

%にした上に、二重引用符を引用符'に改めたら成功しました。
MicrosoftSQLの文法にそっているんですね。

結果的にこの回答が最大のヒントになりました。ありがとうございました。

お礼日時:2012/06/13 03:36

VB.netでSQLを扱ったことはないので、想像だけで確証はないですが、


もしかしたら大文字小文字の違いということはない?

AccessのSQLでは大文字小文字は区別なしに比較可能ですが、VB.netのSQLもそうなのかなあ?
    • good
    • 0

WHERE (((t_object.[500]) Like ""C:\Users\ " & Username & " \Music\iTunes*""))



WHERE (((t_object.[500]) Like ""C:\Users\" & Username & "\Music\iTunes*""))

Users\ の直後のスペース
\Music の直前のスペース
があると正しいパスが認識できません。

この回答への補足

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

補足日時:2012/06/13 02:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!