私はよくMS ExcelのGet External Data
簡単なレポートを作成します-データベースに対してクエリを実行し、Excelでうまく表示します。フィルタリングテーブルやピボットテーブルなどのExcelの優れた機能と、ユーザーにとって使い慣れたインターフェイスは、この点で非常に優れています。ただし、Microsoft Queryの1つの制限は、グラフィカルに表示できないクエリにパラメーターを追加できないことです。これにより、作成できるSQLが大幅に制限されます。
「グラフィカルに表示できないクエリではパラメータを使用できません」というエラーの解決策はありますか?
Excel 2007を使用している場合、VBAを記述して、ブックの接続(外部データクエリ)を変更し、CommandTextプロパティを更新できます。パラメーターが必要な場所に?
を追加するだけで、次にデータを更新するときに、接続の値の入力を求められます。魔法。接続のプロパティを見ると、[パラメータ]ボタンがアクティブになり、通常どおり使用できるようになります。
例えば。マクロを記述し、デバッガーでステップ実行し、CommandTextを適切に設定します。これが完了したら、マクロを削除できます-これはクエリを更新するための手段にすぎません。
Sub UpdateQuery
Dim cn As WorkbookConnection
Dim odbcCn As ODBCConnection, oledbCn As OLEDBConnection
For Each cn In ThisWorkbook.Connections
If cn.Type = xlConnectionTypeODBC Then
Set odbcCn = cn.ODBCConnection
' If you do have multiple connections you would want to modify
' the line below each time you run through the loop.
odbcCn.CommandText = "select blah from someTable where blah like ?"
ElseIf cn.Type = xlConnectionTypeOLEDB Then
Set oledbCn = cn.OLEDBConnection
oledbCn.CommandText = "select blah from someTable where blah like ?"
End If
Next
End Sub
SQL Serverクエリ用のExcelのインターフェイスでは、カスタムパラメータを使用できません。これを回避する方法は、ジェネリックMicrosoftクエリを作成し、パラメーターを追加してから、パラメーター化されたクエリを接続のプロパティに貼り付けることです。 Excel 2010の詳細な手順は次のとおりです。
簡単な回避策(VBAは不要)
ここから、「?」を追加してSQLを直接編集しますパラメータが必要な場所。あなたがナグされないことを除いて、以前と同じように働きます。