Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13503 / 13644 ツリー ←次へ | 前へ→

【5102】SQL文にて このみ 03/4/22(火) 12:32 質問
【5103】SQLで「:」は不要 こう 03/4/22(火) 12:43 回答
【5105】かぶっちゃいました。ごめんなさい こうちゃん 03/4/22(火) 12:51 発言
【5106】ごめん こう 03/4/22(火) 13:10 発言
【5104】Re:SQL文にて こうちゃん 03/4/22(火) 12:49 回答

【5102】SQL文にて
質問  このみ  - 03/4/22(火) 12:32 -

引用なし
パスワード
   SQLで今困っています。

セルの(1,1)にある文字列をキーにして
データベースからキー項目から他の項目のデータを抽出するのですが

Dim SQL As String
Dim RS As ADODB.Recordset
Dim R_Idx As Range
Dim A As String

Set CN = New ADODB.Connection
CN.CommandTimeout = 300
Selection.ClearContents
CN.Open strCN

A = Cells(1,1)  //Aには社員番号が入っています
 
SQL = "SELECT MAX(給与), 氏名, 部署"
SQL = SQL + "FROM ment.出荷実績検索情報"
SQL = SQL + "WHERE 社員コード = :A"
SQL = SQL + "GROUP BY 氏名, 部署"
Set RS = CN.Execute(SQL)

という具合に書いているのですが、
「:」が不正ですと言われてしまうのですがなぜなんでしょうか?
引数を使用するには「:」を使用しますよね?
よくわからないのでご教授お願いします

【5103】SQLで「:」は不要
回答  こう E-MAIL  - 03/4/22(火) 12:43 -

引用なし
パスワード
   社員コード = :A の":"を取ってみましょう。

>SQL = "SELECT MAX(給与), 氏名, 部署"
>SQL = SQL + "FROM ment.出荷実績検索情報"
>SQL = SQL + "WHERE 社員コード = :A"
>SQL = SQL + "GROUP BY 氏名, 部署"
>Set RS = CN.Execute(SQL)
>
>という具合に書いているのですが、
>「:」が不正ですと言われてしまうのですがなぜなんでしょうか?
SQL文に,":"は不要です。(多分)

>引数を使用するには「:」を使用しますよね?
それはモジュールをCALL時の引数の場合です。

ちなみに上のSQL文ですが,
"SELECT MAX(給与), 氏名, 部署"と
"FROM ment.出荷実績検索情報"の間に空白がありません。

たとえば,
" FROM ment.出荷実績検索情報"
とかにする必要があります。

【5104】Re:SQL文にて
回答  こうちゃん E-MAIL  - 03/4/22(火) 12:49 -

引用なし
パスワード
   このみさん、こんにちは

>SQL = "SELECT MAX(給与), 氏名, 部署"
>SQL = SQL + "FROM ment.出荷実績検索情報"
>SQL = SQL + "WHERE 社員コード = :A"
>SQL = SQL + "GROUP BY 氏名, 部署"
>Set RS = CN.Execute(SQL)
ここでは文字列を連結してSQL文を作っています。
データベースの種類が不明ですが、AccessまたはSQL Serverとすると・・

SQL = "SELECT MAX(給与), 氏名, 部署 "
SQL = SQL & "FROM ment.出荷実績検索情報 "
SQL = SQL & "WHERE 社員コード = " & A & " "
SQL = SQL & "GROUP BY 氏名, 部署"

こんな感じで、変数Aを文字列と連結します。
この場合、変数Aは引数ではありませんのでご注意ください。

なお社員番号のフィールド属性が文字列の場合は以下のようにコーテーションでくくります。
SQL = SQL & "WHERE 社員コード = '" & A & "' "

#蛇足1 変数Aはわかりづらいので、意味のあるものにしたほうがいいような・・
#蛇足2 VBAでは文字列連結には & を使ったほうがいいような・・
#蛇足3 SQL文のスペースを意識しましょう・・(例では各列の最後のスペース)

【5105】かぶっちゃいました。ごめんなさい
発言  こうちゃん E-MAIL  - 03/4/22(火) 12:51 -

引用なし
パスワード
   こうさん、こんにちは

久しぶりに「こう」ファミリー、もろかぶり(><)

【5106】ごめん
発言  こう E-MAIL  - 03/4/22(火) 13:10 -

引用なし
パスワード
   ▼こうちゃん さん:
>久しぶりに「こう」ファミリー、もろかぶり(><)
まるで申し合わせたかのように・・・さすがファミリー。

で,

"A"は変数でしたね。ごめんなさい。
こうちゃんのコードを参照してください>このみさん

13503 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free