be cool, so cute and get better than anything present!
コマンドプロンプトとSQL [プログラム]
先日コマンドプロンプトを使う機会がありました。他社の方が用意した命令を少し実行しただけなのですが、ちょっと感動体験☆
実行した命令は、以下のような非常に簡単なもの。
cd C:\ID
copy /b *_BOX_*.txt BOX.txt
IDフォルダには、「~_BOX_~.txt」ってファイルが22個置いてある状態で実行。
なんと、22個分のテキストが、1つのBOX.txtってファイルにまとまったではありませんか!
もの凄く単純な動作。しかしそれは毎回手動で1つにまとめるには面倒くさい。しかし週に1度は処理が必要な作業。しかもこのテキストファイル、1つが平気で4MBとかあり、大きいものは20MB以上あったりします。
カンド~~~~~~(゜▽゜*)♪
そして以前に.batファイルをテキストエディタで開いてみた時の記憶がふとよみがえり、「これ、毎回コマンドプロンプトで実行するんじゃなくて、バッチファイルにしておけばいいんじゃね?」と思いつき、即実行。
また、カンド~~~~~~~~o(゜∇゜)o
サーバー上では実行できないっぽく、ローカルでの簡単なデータいじりなら、これでガンガンいけそう。ためしにファイル名の変更バッチを作成してみて実行してみたり。
コイツは凄いね☆
本格的に覚えたいと思い、Amazonで関連書籍を検索し、近くの本屋へ行ってみました。
…無いんだな、これが。
さすがに「今さらコマンドプロンプトかよ」ってのもあるんでしょうね。近所の本屋には残念ながら関連書籍はありませんでした。Amazonで買うしかないな。一度立ち読みしておきたかったんだけどなぁ。
そしてSQLな話。
仕事では最近、大きめなデータを取り扱うコトが増えてきました。Excelではとても追いつかず、Accessも使っています。クエリも比較的自由に作れるようになってきましたし、簡単なVBAも最近組んだりしました。
自分で、ないし社内で使うデータならそれでもいいのですが、社外の人にデータを扱ってもらう際には、Accessでは厳しいコトが多いのです。
で、Excelでいろいろ管理フォーマットを作ったりします。関数の使いっぷりは結構なものだと自画自賛しているのですが、相手のデータ量が多いと動作が重くなってしまいます。今まではそれでもいいと思っていたのですが、最近それが運用に支障をきたすくらい動作が重いシチュエーションが発生してしまったので、VBAを組むことにしました。
組んだのはいいのですが、条件別で集計作業をする箇所で、今一ついいコードが浮かばず、フィルタオプション(AdvancedFilter)を何度もかけて、表示されている行数を数えて集計するという、何とも力技な処理になってしまいました。ScreenUpdate=Falseでないと、もの凄い動きになるんですよね。
で、SQL。みたいな発想。
殆ど使ったコトはありません。ExcelVBA内で使用できるのは知っています。が、いろいろな本を立ち読みしても、絶対に「ExcelVBAからAccessのデータに接続→SQL実行→データ転記」みたいなコトばかりが書いてあります。
今私がやりたいコトは、「ExcelVBAを使用し、Excelシートにあるテーブルデータに対して、SQLを実行し、集計を行う」コトです。
これからまた調べたりしますが、できないってコトはないと思うんですよねぇ。これができると処理もキレイになるだろうし、またこれはイメージですが、SQLは軽そうな気がします。他にも応用できる気がします。
これが今度はテキストファイルだけで、いろいろ出来たりなんかしたら、もっと感動しそうな予感♪
イメージですが、【バッチで、事前処理からSQLが記述してあるテキストファイルを読み込み、データを加工して、目的のデータをテキストファイルで出力させ、結果だけをExcelなどに取り込んで表現】とかできたら…楽しいコト受け合い☆
さぁまた一つ、やりたいコトが増えた。時間はいくらあっても足りない。
be cool, so cute and get better than anything present!
コメント 0