Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
ExcelでSQLのINNER JOINが使えない
投稿日時: 20/05/14 09:55:22
投稿者: bass2

ExcelvbaでADODB.connectionをopenしてSQLをExecuteしようとしてます。
通常のselect文なら問題ないのですが、INNER JOINの書き方が悪いのかJOIN操作の構文エラーで止まってしまいます。
 
SELECT [テーブル1$].ID FROM [テーブル1] INNER JOIN [テーブル2] ON [テーブル1$].ID = [テーブル2$].ID
 
ACCESSでの開発経験はありますがEXCELは初めてなので、そもそもEXCEL2013ではできないことなのか?もわかりません。
できるかできないかだけでもいいので教えて頂けると助かります。
 
 
 

回答
投稿日時: 20/05/14 11:00:40
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:

SELECT [テーブル1$].ID FROM [テーブル1] INNER JOIN [テーブル2] ON [テーブル1$].ID = [テーブル2$].ID

この記述方法はACCESSの記述です。
 
Excelでというわけではありませんが、
 
私ならば、↓のように書きます
 
SELECT T1.ID FROM テーブル1 AS T1 INNER テーブル2 AS T2 ON T1.ID=T2.ID
 
エリアスを使うとコードが短くなります。
 

回答
投稿日時: 20/05/14 11:04:04
投稿者: WinArrow
投稿者のウェブサイトに移動

確認です。
 
対象とするデータベースはAccessですか?

投稿日時: 20/05/14 11:18:44
投稿者: bass2

回答ありがとうございます。
 
スッキリしていただきありがとうございます。
 
テーブルはExcelのシートです。ACCESSもSQLサーバーもありません。
selectだけなら開くのですが、どうやってもJOIN以降でエラーが出るので書き方の問題なのかなと思いました。
 
よろしくお願いします。

回答
投稿日時: 20/05/14 11:24:44
投稿者: WinArrow
投稿者のウェブサイトに移動

シートが対象でしたら
 
SELECT [テーブル1$].ID FROM [テーブル1$] INNER JOIN [テーブル2$] ON [テーブル1$].ID = [テーブル2$].ID
 
でよいと思います。

投稿日時: 20/05/14 12:38:41
投稿者: bass2

返信ありがとうございます。
 
使えることがわかっただけでもよかったです。
EXCELは勝手が分からないので、もう少し試行錯誤してみます。
 
ありがとうございました。