2017-01-06 8 views
0

SQLクエリを使用してデータをプルするスプレッドシートがあります。これをユーザーに渡すと、スプレッドシート自体で日付範囲を変更できるようになりますSQL接続文字列に追加します。SQLデータ接続のExcelセルの日付範囲を使用

現在、私は、この持っている:

WHERE  
    (new_attendedBase.CreatedBy = '1fa51434-633e-a395-000c29484a59') 
    AND (new_attendedBase.new_ActivityDate > CONVERT(DATETIME, '2016-11-01 00:00:00', 102) 
    AND new_attendedBase.new_ActivityDate < CONVERT(DATETIME, '2016-12-01 00:00:00', 102)) 

をしかし、私がやりたいことは、ハードコーディングされた日付2016-12-01 00:00:00を削除し、セル参照[sheet1$b$9]と交換です。

私はその問題を引き起こしているが、非常に限られたSQLスキルを持っていると思われます。これを削除して依然としてクエリを動作させる方法がわかりません。

ご協力いただければ幸いです。私はこれを行うに発見した

おかげ

+0

どのような実際の**データベース**あなたについて話していますか? SQLは単にクエリ言語です - あなたが 'oracle'、' mysql'、 'postgresql'、' sql-server'、 'db2'など何かを使用しているかどうかはわかりません - 関連タグを追加してください –

+0

申し訳ありませんが、データがSQL Serverに格納されているMicrosoft CRM 2013のインストールに接続しています。ありがとう – fairlo

答えて

0

唯一の方法は、あなたのクエリ文字列を構築し、VBAを介してデータ接続のプロパティを変更することです。あなたは、ボタンのクリックでにそれを呼び出すことができ、あなたは、あなたの関数を設定したら

Dim MyStr As String 
MyStr = "<Your Query Here>" 

With ActiveWorkbook.Connections("<Your Connection Name Here>").OLEDBConnection 
    .CommandText = Array(MyStr) 
ActiveWorkbook.Connections("<Your Connection Name Here>").Refresh 

:あなたは、次のVBAコードを使用してCommandText値を設定することができますRange("A1").Text

使用してセルの値を参照することができますあなたのワークシート

関連する問題