2017-11-20 5 views
0

私は次のパスを使用してExcel 2015にODBCデータに引っ張っている: Excelのタブ「データ」>「他のソースからの」>「のMicrosoftクエリから」>私のデータソースを選択>テーブルを検索し、クエリExcelでODBCを使用して、パラメータを使用してデータをプルします。手作業で読み込むのではなく、セル参照でコードを記述する方法はありますか?

を作成クエリは "?"以下に示す「パラメータ」オプションを引き出す。 Parameter Pop Up Window

ここは私のODBCコードです。セル "= Sheet1!$ E $ 4"を参照する方法はありますか?ポップアップがこの情報を要求しないようにしますか?

`With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _ 
    "ODBC;DSN=####;UID=######;;MODE=SHARE;DBALIAS=####;", 
    Destination:=Range(_ 
    "$A$1")).QueryTable 
    .CommandText = Array(_ 
    "SELECT PHPRTT.PHP_PART_NO, PHPRTT.PHPRTT_UPD_TS" & Chr(13) & "" & 
    Chr(10) & "FROM PHPRTT" & Chr(13) & "" & Chr(10) & "WHERE 
    (PHPRTT.PHPRTT_UPD_TS>=?)") 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .BackgroundQuery = True 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = False 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .PreserveColumnInfo = True 
    .ListObject.DisplayName = "Table_Query1" 
    .Refresh BackgroundQuery:=False 
End With` 
+0

注:わかりやすくするため、 'Chr(13)&" "&Chr(10)'を 'vbcrlf'に置き換えてください。 – jsotola

+0

ありがとう、あなたはjsotola!それは素晴らしい仕事でした。 –

答えて

0

もちろんあります。コードラインの疑問符を参照すると仮定します。

(PHPRTT.PHPRTT_UPD_TS>=?)") 

これが正しい場合は、 "?"値またはテキスト(それらが異なっていて、あなたが必要であれば、別のものが必要な場合)を使用して、データを正確にコード化する必要があります。例えば、。番号、テキスト、日付。

(PHPRTT.PHPRTT_UPD_TS>=""" & Sheet1!$E$4 & """)") 

またはそれは、この数だ場合::

(PHPRTT.PHPRTT_UPD_TS>=" & Sheet1!$E$4 & ")") 
例として、それはあなたが必要なテキストと、パラメータとして使用するExcelのセルのその値だと仮定すると、あなたはこれを持っています

これが役に立ちます。

+0

Gene、多分私のODBCドライバは別のタイプです。次の実行時エラー '438'が表示されます。 "オブジェクトはこのプロパティまたはメソッドをサポートしていません。" –

+0

ok、あなたは何をポップアップウィンドウに入力しますか? – Gene

+0

セルを手動で選択します。私は、別のセル参照を入力する能力を制限するMSFT Query/ODBCの暗黙の制限だと思います。 私の回避策は、私のユーザでプログラムを作成し、ODBCクエリに渡し、毎回作成する代わりに出力テーブルを更新するために単にマクロを使用することです。 –

0

これは私自身の投稿/質問ですが、私は疑問を解決するための回避策を見つけました。 私の解決策は次のとおりです。 1.通常通りMSFTクエリ出力テーブルを使用してスタンドアロンxlsxを作成します。 2.データ>接続>定義>接続文字列でUIDとPASSがここにロードされていることを確認してください 3.マクロを使用してこのファイルを開き、データを更新してから保存して閉じます。

これは最適ではありませんが、現在は機能します。 100kBのサイズではなく、10MBのファイルサイズの範囲にある複数のファイルを用意していますが、それは必要です。

関連する問題