FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

↑やる気アップにご協力をお願いします。わぁいヽ(∇⌒ヽ)(ノ⌒∇)ノわぁい♪

こんな記事もありますよ


SQL文でExcelに出力しちゃう?パート2

以前SQL文でExcelに出力しちゃう?という記事を書きました。

いい気になってWizHook等を利用してしまった内容でしたが、
そんなことしなくても、もっと簡単に出来そうなことに気が付きました。
o(〃^▽^〃)oあははっ

そんなわけで今回の無駄コードは

SQL文からエクセルに出力しちゃうコード

SQL文で一気にエクセル出力!・・・パート2」です。

前回のようにエクセルやWizhookを利用しない単純なもので挑戦です。
(-_-☆キラーン



では今回、何を利用するかというと、前回の冒頭で記述していた
'クエリをエクセルに出力する場合
Docmd.OutputTo acOutputQuery, "クエリ名", acFormatXLS, "", false, ""
こちらを利用していきたいと思います。

では、とりあえずいつものようにコードを記述してみませう。
今回もとりあえず標準モジュールに作成していきます。
Public Sub ExcelOut(Mysql As String)
On Error GoTo ErrHnd

Dim qryName As String: qryName = "qr_ExcelOut" 'クエリ名の指定

'エクセル出力用クエリ"qryName"の存在を確認。無い場合は作成
If DCount("*", "[MsysObjects]", "[Name]='" & qryName & "' And [Type]=5") _
= 0 Then
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.CreateQueryDef(qryName, Mysql) 'クエリの作成
qdf.Close: Set qdf = Nothing
End If

'クエリ内のSQLの書き換え
CurrentDb.QueryDefs(qryName).SQL = Mysql
'エクセルに出力
DoCmd.OutputTo acOutputQuery, qryName, acFormatXLS, "", False, ""
MsgBox "出力しました"

Exit Sub

ErrHnd:
Select Case Err.Number

Case 2501 'キャンセル処理
MsgBox "キャンセルしました"

Case 2302 '書き込みエラー
MsgBox "ファイルの書き込みに失敗しました。"

Case 3061, 3075, 3078, 3131 'SQL構文エラー
MsgBox "SQL構文エラーです"

Case Else
MsgBox "ErrorCode:" & Err.Number & Chr(13) & _
"ErrorDescription:" & Err.Description
End Select
End Sub
以上です。

短か・・・( ̄□ ̄;)!!
空白やコメント行含めても40行弱です・・・実際のコードだけだと20行程度・・・

前回のコードは空白なしで50行弱・・・動作の結果は殆ど変わりません…。orz

今回の作業は、クエリ(qr_ExcelOut)内のSQL文を書き換えて
出力させるという単純な作業を行っています。

その為、7~12行目でクエリの存在を確認して、存在しない場合には
クエリ(qr_ExcelOut)を作成させちゃってるわけです。

作成するクエリの名前は、任意の名前を4行目で指定することで変更できるように
ちょっと工夫をしてみたり・・・( ̄ー ̄)ニヤァ

あっ! もし、作成したクエリを作業後に削除したい場合ですが、
Docmd.DeleteObject acQuery, qryName 'クエリの削除
の一文を19行目に書き込んであげればそれで大丈夫なはず・・・(-。-) ボソッ。

さて、上記コードの利用方法ですが、
ExcelOut "SQL文"
で動作してくれるでしょ~(@o@)/。

あぅ~(´Д`) ここまで簡単にできてしまうと・・・
前回のコードはいったいなんだったのか・・・と思ってしまいまふ・・・
すごい無駄コード過ぎる気がします・・・わかりづらいし・・・意味不明だし・・・orz

いっそのこと、ブログ記事を消したいくらいですが、己の恥として残しておきましょ~・・・

無駄コードの数だけ、きっといいものが作れるはずなんです・・・多分・・・
・・・きっと・・・そう思いたい・・・(・_・)..(._.)..(..)..(_)..○..o..。

そんなわけで、今回のこれも、きっともっといいものが作れると思われる
無駄コードになると思われます。ヾ(  ̄▽)ゞオホホホホホ

ではでは、今回はこの辺で・・・
(^0^)/~~see you !
↑やる気アップにご協力をお願いします。わぁいヽ(∇⌒ヽ)(ノ⌒∇)ノわぁい♪

こんな記事もありますよ


コメントの投稿

非公開コメント

Author's Profile ~自己紹介~

Genzo

Author:Genzo
PCは一応自作できるレベル。
ワード・エクセルなら基本的に
扱えるレベル。
プログラム・・・?ん?
VBA・・・?ん?ん??
それって美味しいですか?


~ 当ブログについて ~

~ Mail2Genzo  ~

Calender&Search かれんだーと検索

07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

Access2Genzo内で検索

Category ~かてごりー~

Comments Tree ~こめんとつりー~


Link ~りんく~

ブロとも申請フォーム

Counter ~かうんた~

Since 2010/08/01:

Online:

タグクラウド

最新トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。