• ベストアンサー

VBA 外部データの制御

SOURCEプロパティ文のSQL文を指定する箇所で .SOURCE "SELECT 社員名 FROM 社員 WHERE 部門ID IN(SELECT 部門ID FROM 部門 WHERE 部門名 = " & CombBOX & " )" とすると 右カッコがありませんとエラーがでます。 どうにか実行できないでしょうか?

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

部門名はテキスト型ですよね? WHERE 部門名 = " & CombBOX & " )" を WHERE 部門名 = ' & CombBOX & "' )" としては? また Dim strSql as String strsql = "SELECT 社員名 FROM 社員 WHERE 部門ID IN(SELECT 部門ID FROM 部門 WHERE 部門名 = ' & CombBOX & "' )" debug.print strsql としてイミディエイトウィンドウに出たもので確認する それでもダメなら イミディエイトウィンドウに出たものと ↓の行の前部分(数行)も提示されては? .SOURCE "SELECT 社員名 FROM 社員 WHERE 部門ID IN(SELECT 部門ID FROM 部門 WHERE 部門名 = " & CombBOX & " )"

chanchang
質問者

お礼

ありがとうございました。 どうもcomboboxの両端に空白を入れておいたのがひっかかていたようです。

その他の回答 (2)

回答No.2

> 右カッコがありません つまりカッコが終了出来ていませんね。 途中で文法がミスっています。 > IN(SELECT 部門ID FROM 部門 WHERE 部門名 = " & CombBOX & " )" 全然覚えていないので見当違いかもしれませんが。  ・CombBOXの両脇をシングルクォーテーションをつけてみる。  ・CombBOXはオブジェクトならプロパティ名までちゃんと指定する。 パッと見で気になったトコです。

chanchang
質問者

お礼

両方試しましたが、だめでした。 すみませんでした。

  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

.SOURCE "SELECT 社員名 FROM 社員 WHERE 部門ID IN (SELECT 部門ID FROM 部門 WHERE 部門名 = " & CombBOX & " )" INと(の間にスペースがないだけでは?

chanchang
質問者

お礼

スペースいれましたが同じエラーが返ってきました(:;)