2017-06-16 16 views
-3

一般的な考え方は、SQLの経験がないユーザーに対してSQL SELECTクエリを効果的に記述するVBAスクリプトを作成することでした。彼らはすでに慣れ親しんでいることをデータベースから受け取ります。最終的な目標は、ユーザーに次のことを許可することです。VBAでの柔軟なSQL SELECTクエリの作成

  1. 表示する列を選択します。
  2. 簡単な制限(日付範囲、特定のパーツ番号)
  3. このリストは好きなように注文してください。

私は(VBAで)そうするスクリプトを書かれているが、私は残りの1つの問題があります。 VBAでSELECTクエリを直接実行することはできません。また、完成したクエリをVBAからAccessデータベースにエクスポートする方法に関する情報も見つかりません。私はテキストファイルへの書き込みを考え、テキストファイルからの読み込み、マクロの使用、クエリの読み込みを考えましたが、Accessがそのような機能をサポートしているとは思われません。

感謝。ここで

+1

"* VBA *でSELECTクエリを直接実行することはできません。"何故なの?どうしてそんなことはできないの?あなたがそれをやり遂げるのを妨げるのは何ですか? http://www.databasejournal.com/features/msaccess/article.php/3505836/Executing-SQL-Statements-in-VBA-Code.htm – spencer7593

+0

元々私はDoCMD.RunSQLを使用しようとしていました。少なくとも私の試行/読んで)SELECTクエリで動作します。でも、私はよりよい解決策を見つけた: 薄暗いqryDEFをクエリ定義 設定qryDEF = CurrentDb.CreateQueryDef(「UserQry」、SQL) DoCmd.OpenQuery(「UserQry」) として、これは必要なことだけ余分には、削除する行でしたコードを再実行するときのクエリ。プロセスのデータを再クエリするという利点があります。モジュールは意図したとおりに動作します。とにかく助けてくれた皆さん、ありがとう! 質問がありましたら、お気軽にお問い合わせください。 – Health100

答えて

0
Dim sql_ as String 
    sql_ = "SELECT * FROM Table" 

DoCmd.RunSQL sql_ 


Dim sql_ as String 
    sql_ = "UPDATE Table SET Field = 'ABC'" 

CurrentDb.Execute sql_, dbFailOnError 
0

は、私がこれを自分で取り組むだろうかです:

  1. (あなたがやった)SQL文字列
  2. を構築するためにVBAを書くあなたのアクセスDB(データへのデータ接続を作成します。 >外部データの取得>アクセスから)
  3. VBAを使用してデータ接続プロパティのコマンドテキストを変更し、次に更新します。

これにより、動的にSQLを構築し、DBにクエリを実行し、結果をExcelのテーブルに戻すことができます。

希望に役立ちます!

関連する問題