よつやTips

元IT技術者がおくる情シス超入門:VB.NET / SQLServer / 弥生製品 / ひとり情シス

【まとめ】SQLServer Tips

個人的に書いた記事をはしから忘れてしまうので、まとめました。

 

■概要編

超初心者向け!SQLServerとは?わかりやすく解説 - よつやTips

超初心者向け!SQLServerデータベースの構造 - よつやTips

【SQL】超初心者向け!基礎学習用の本を紹介 - よつやTips

 

SQLServer環境構築編

【SQL】超初心者向け!SQLServer開発環境を構築(準備編) - よつやTips

【SQL】超初心者向け!SQLServer開発環境を構築(インストール編) - よつやTips

 

SQLServer データ抽出編

【SQL】超初心者向け!抽出(SELECT)基本の構文 - よつやTips

 

 

【PAD】3つの手順だけでPower Automated Desktopをインストール!

f:id:yotsuya_yz:20210721004935p:plain

Windows10に標準装備されたPower Automated Desktopですが、開始直後に環境構築をしたら思ってたよりかなり簡単にできたので、説明していきます。

ヨツヤの勉強履歴にも残していくので、よろしければお付き合いください。

 

Power Automated Desktopとは?

※環境構築はよやれや!という方は読み飛ばして大丈夫です。

 

Microsoft社から出しているいわゆるローコード(ノーコード)ツールというものです。

このたびPC上で利用可能なツール「Power Automated Desktop」がWindows10で無償利用可能!ということでちょっと話題になりました。

 

これまで、ほとんどのシステムはエンジニアによって開発されるもの、という認識が主流だったかと思います。

(例外的にExcelVBAやAccessVBAなど、めちゃくちゃ有能な事務員さんが作る、というのも見かけましたが!)

 

RPAはエンジニアではない人でも手軽にPC上の処理が自動化できる!ということで近年話題になっています。実際、エンジニアの私から見るとVBAを作ってくれ!と言うよりは随分わかりやすいかな、と感じました。

なおヨツヤはUiPathを仕事でちょろっと触った程度です。ぶっちゃけ使いづらくてそれなら普通にVisualStudio使いたいな・・・という印象がありました・・・ごめんなUiPathちゃん。

 

たとえば、こんな人たち。

・業務上繰り返しやらなきゃいけない処理がある

・業務上面倒くさい処理をしたくないけどやらなきゃいけないつらい

・ぶっちゃけ毎度の作業で残業多い社畜さん

もしかすると、Power Automatede Desktopで自動化ツールを作ってしまえば、幸せになれるかもしれませんね。

 

それでは、実際に環境を構築する方法から見ていきましょう。

 

Power Automated Desktopの環境構築

Microsoftアカウントを作成する

まずはマイクロソフトアカウントを作成します。

※すでにMicrosoftアカウントを持っているかたは次の手順に進んでOKです。

 

account.microsoft.com

まずは、上記のURLからMicrosoftのページへアクセスします。

 

f:id:yotsuya_yz:20210720234151p:plain

画面のMicrosoftアカウントを作成」をクリックします。

 

f:id:yotsuya_yz:20210721003402p:plain

アカウントの作成画面が開きます。

メールアドレスの箇所に、利用したいメールアドレスを記載します。

すでに手持ちのメールアドレスを入力し、Microsoftアカウントとして利用が可能です。

※今回は、手持ちのメールに対してアカウントを作成していきます。

 

なお、新たにメールアドレスも作成する場合は画面上の「新しいメールアドレスを取得」から行ないます。

ドメイン(@以降)は、@outlook.jpや@hotmail.comなどが選択できます。

 

f:id:yotsuya_yz:20210721003431p:plain

任意のパスワードを入力し、「次へ」をクリックします。

 

f:id:yotsuya_yz:20210721003555p:plain

 設定したメールアドレス宛に、確認コードが送付されますので、メールを確認してコードを入力します。

なお、「Microsoftの製品とサービスに関する情報、ヒント、およびキャンペーンのメール受信を希望します。」については、不要であれば外したままでOKです。

 

f:id:yotsuya_yz:20210721003629p:plain

なお、アカウントの作成時にはちゃんと人が作っているか?プログラムで不正に作られようとしているアカウントじゃないか?ということを確認するためにクイズに答えさせられます。ロボットアイコン可愛いですね。

 

 

f:id:yotsuya_yz:20210721003706p:plain

画像が表示されますので、画像の向きを正しい向きにしてあげてください。

何をもって正しいとするかはまぁ、空気を読んでいい感じにします。

 

f:id:yotsuya_yz:20210721003904p:plain

Microsoftアカウントが表示されればOKです。

あとは、「名前を追加する」の箇所から名前を変更したり、生年月日を入れておきます。

私は面倒くさいので特にやらないですが。

 

②Power Automated Desktopをダウンロードする

次は、実際のインストーラをダウンロードしていきます。

flow.microsoft.com

上記のURLから、ダウンロードページを開きます。

 

f:id:yotsuya_yz:20210720235508p:plain

「無料でダウンロードする」をクリックすると、自動的にダウンロードが開始されます。

Edge、Chromeなどでは変更していなければダウンロードフォルダ内にダウンロードされていますので、フォルダを開いてください。

 

ダウンロードされたら、インストールをおこなっていきます。

③Power Automated Desktopをインストールする

f:id:yotsuya_yz:20210721000316p:plain

ダウンロードしたファイル「Setup.Microsoft.PowerAutomateDesktop.exe」をダブルクリックし、インストールしていきます。

 

f:id:yotsuya_yz:20210721001054p:plain

インストールウィザードが表示されました。「次へ」をクリックします。

 

f:id:yotsuya_yz:20210721001249p:plain

使用条件の同意のところにチェックをつけて、「インストール」をクリックします。

ユーザーアカウント制御の画面が表示されますので、「はい」をクリックしてください。

 

f:id:yotsuya_yz:20210721001505p:plain

拡張機能のインストールについては、お好みのブラウザで機能をONにします。

個人的にはEdgeはほぼ使わないので、むしろ好都合ですね。(開発テスト的に使うので)

 

f:id:yotsuya_yz:20210721001810p:plain

Edgeに拡張機能をインストールします。リンクをクリックするだけで自動的に表示されます。便利ですね。

 

f:id:yotsuya_yz:20210721001840p:plain

拡張機能の追加」ボタンをクリックして、拡張機能のインストールを完了します。

 

f:id:yotsuya_yz:20210721002030p:plain

完了したら、Power Automated Desktopのインストール画面に戻ります。

「Power Automated Desktop の起動」をクリックします。

 

f:id:yotsuya_yz:20210721002225p:plain

無事にPower Automated Desktopの画面が開きました!

「サインイン」をクリックし、最初の手順で作成したMicrosoftアカウントでサインインしていきます。

 

f:id:yotsuya_yz:20210721004048p:plain

さきほど作成したMicrosoftアカウントのメールアドレスを入力し、「サインイン」をクリックします。

 

f:id:yotsuya_yz:20210721004102p:plain

パスワードを入力し、「サインイン」をクリックします。

 

f:id:yotsuya_yz:20210721002754p:plain

国/地域の設定は「日本」があるので、それを選択し「開始する」をクリックします。

なお「不定期のキャンペーンにメールを受け取る」のチェックを外します。

あんまりメールばんばん来ても面倒くさいので・・・

 

これで、一通りの環境構築は完了です。

次回から、フローの作り方をすすめていきます!

 

おすすめ参考書

ちなみに、詳細が知りたいかたはこちら、インプレス社からあーちゃん(@aachan5550)さんの解説書が2021/7/20に発売されております。ぜひご覧ください。とてもわかりやすい、初心者向けの本ですよ!

【試験】ITパスポートを独学で一週間勉強して合格した勉強方法

こんにちは、四ツ屋です。
過去に知人と共同運営していたサイトに下記の記事をアップしたのですが、サイトが閉鎖になってしまったのでこちらにサルベージしておきます。
 
5年ほど前のことですが、ITパスポートを受験し、一週間の独学のみで無事に合格しました。
これから就職・転職のために必要な方や、会社で取得を命じられた人など、参考になれば幸いです。
 

ITパスポートとは何ぞや?

経営戦略、マーケティング、財務、法務など経営全般に関する知識をはじめ、セキュリティ、ネットワークなどのITの知識、プロジェクトマネジメントの知識など幅広い分野の総合的知識を問う試験です。
ITを正しく理解し、業務に効果的にITを利活用することのできる“IT力”が身につきます。
 
つまりですね、ITの基礎知識を付けてくださいね、ということですよ。
 
今や、ITスキルが必要なのはIT企業だけではないのです。
パソコンをおいていない企業などもはや超希少種。そして、扱い方を間違えればベネ○セよろしく企業情報・個人情報なんて駄々漏れです。
 
「ITスキル」と単にPCの使い方じゃないの?と思われそうですが、それだけではありません。
 
ウイルス対策不正アクセスなどの情報セキュリティなどの知識も必要ですし、個人情報保護法著作権、各種商標権などの権利・法令に関する知識も必要です。
それら全てのITスキルを通じて経営戦略の基礎知識や、企業コンプライアンス法令遵守について学ぶことができます。
 

試験内容は?

試験時間:165分
出題数:100問(小問84問、中問16問)
出題形式:四肢択一式
出題分野:
・ストラテジ系(経営全般):35問程度
・マネジメント系(IT管理):20問程度
・テクノロジ系(IT技術) :45問程度
 
合格基準:
・総合評価点600点以上/1,000点(総合評価の満点)
・分野別評価点
  ストラテジ系  300点以上/1,000点(分野別評価の満点)
  マネジメント系 300点以上/1,000点(分野別評価の満点)
  テクノロジ系  300点以上/1,000点(分野別評価の満点)
 
試験方式:
CBT(Conputer Based Testing)方式
受験者はコンピューターに表示された試験問題に対して、マウスやキーボードを用いて解答します。
 
 
受験料は1回5,100円(税込)でした。クレジットでも支払いができます。
受験料の領収証もマイページからダウンロードできますので、会社で受験料を経費として精算処理する場合には便利です。
 

IT初心者でも簡単に受かるんじゃないか?

四ツ屋は元SEですが、元々は大学も文系ですし、PCは好きでいじっていた程度。
開発に関しては二社目(一社目は接客業でした)で学び、それ以来OJTでしか学んでいません。あとはすべて独学です。
 
SEじゃない人でももっと詳しい人はいますし、テキスト初見でもテクノロジ系で分かる問題があるなぁ~って程度でした。
IT初心者だったとしても勉強すれば十分合格圏内狙えると思います。
 

実際の勉強方法

苦手な部分は捨てていいから、確実に600点以上を狙う!

試験内容を見てください。各分野で下限値3割、総合で6割取れれば合格ですよ。
私の場合、諸事情により1週間しか時間がなかったので、<strong>分からない問題は捨てました。</strong>
いいですか、これ重要です。どうしても理解できない部分は捨ててもいいのです。その分、分かりそうな範囲で確実に点数を狙うのです。ここポイントです。
 
だって、ぶっちゃけ2進数とか10進数とか16進数とか、めんどうくさいでしょ?
計算問題もありますけど、いまさら公式覚えるの、時間の無駄ですもん。
それよりも、覚えやすい語句とその意味なんかを覚えた方が頭に入ります。
 

これ読んでおけば、合格率が上がる。

改訂新版 ITパスポート最速合格術 ~1000点満点を獲得した勉強法の秘密(技術評論社/西 俊明)
 
非常にわかりやすい、いい本でした。初心者向けにかなり噛み砕いて記載されていますので、すっと入ってくる内容です。
四ツ屋の場合は一度読みながら分からない・知らない語句を書き出して覚えました。
あとはひたすら、後述のアプリで過去問題を解いてました。
 
※なお、こちらは合格当時(2015年)のものですので、いま改めて勉強するなら絶対にきたみりゅうじ先生の本がオススメです。
とてもわかりやすく、説明もしっかりしているのでオススメです。
 

無料アプリが充実してるので、スキマ時間に覚えられる!

ITパスポート 一問一答問題集(Tokyo Interactive)
無料版と有料版(720円)がありますが、違いは過去問題数の多さです。
※無料版は30問、有料版は320問収録されています。
 
他のアプリで、無料版でも問題数が多いものもありますが、個人的には720円払ってもこのアプリは良かったと思います。
無料版で問題数の多いものも試してはみましたが、個人的に使い勝手がいいと感じたのはこのアプリでした。
ただ、使い勝手については個人差もありますので、まずは無料のアプリから試してみてはいかがでしょうか。
 
 

公式サイトで実際の試験画面を体験できる!

ITパスポートの公式サイトでは過去の問題をCBT方式で疑似体験できます。
実際の過去問題ですので、最低限、一度はやっておいた方がいいと思います。
 
ちなみに四ツ屋の場合はテキストを読み終えたタイミングで
平成27年度春期(最新版)を一度、前日の夜に同じ問題をもう一度やりました。
 
また、採点まで行ってくれますので、自分がどの程度の理解度なのかを知ることもできます。
 
CBT疑似体験ソフトウェア

【雑記】ひとり情シス初心者に贈るメモ①

こんにちは、四ツ屋です。今回のブログは技術の話はしないです。

ひとり情シスがふたり情シスになってしばらく経つので、情シスについて色々思うこととか、今までのこととか少しまとめたいと思います。

 

■四ツ屋のスペック

  • 某事業会社の派遣社員だった(3年目だった)
  • 転職先を探して悶々としている日々
  • 部署としては経営中核になるが、やってることはひとり情シス

 

■会社での立場について

  • ひとり情シスを3年弱
  • 引継ぎなし(ファイル一冊と名目上の上司がひとり)
  • 上司はころころすぐ変わる(異動で出向とか多い)
  • 同僚なし(ひとり情シスなのでマジでいなかった)
  • 隣の部署には技術屋さんがたくさん
  • わたしの部署には技術屋さんが一人もいない
  • 引継ぎなし(大事なことなので二回ry

と、入ったときには不安で仕方ない会社だったんですよ。だってひとりだし、誰も頼れるひとがいない、マニュアルもほぼないに等しい、これまでのことを全部理解してる人もいない。

 

マジで大丈夫?と不安でした。

はぁ~引継ぎねぇ!サーバーある!バックアップもねぇ!ネットワーク図もねぇ!

オラこんな会社ry

 

・・・でも。かなり周りの人にたくさん助けられました。

 

■エンジニアとの付き合い方

当初入社の際にはほとんどがPCのセットアップとアカウント管理、ACCESSを使ったデータ集計のみですよ、ということだった。

けどまぁ、実情はそうじゃないよねって話。

 

余談だけど。インフラについては面談では「ベンダーが全部やってくれるから大丈夫ですよ~」と言っていた上司。確かにやってくれた。やっては、くれたが。(「違う、そうじゃない」の写真)

 

ベンダーに対する窓口は私だった。そりゃそうだ。窓口だけならいいんだけど、気がついたら2年目にしてVPNの構築設計やってた。なんでやねん。笑っちゃった、インフラエンジニアじゃないんだけどな???

なお四ツ屋のインフラ知識は大してない。インフラエンジニアじゃないからね・・・

 

でもまぁやんなきゃならんってなったときにどうしたか?の話です。

  • 分かる人に聞く(一番やった)
  • 調べる

この二択しかない訳ですね。二択と言ってもどちらか片方を選ぶんじゃなくて、両方必要です。大事なことなのでもう一度言います、両方必要です。

 

で、調べるの方はどれだけググる力(笑)があるかにかかってくるんですけど、分かる人に聞くっていうのは、何でも聞けばイイってものでもなくて。ここがすごく肝になってくるんだと思ってます。

 

エンジニアに聞くときの【ダメな例】

「これどうしたらいいですか?」

丸投げ。

こういう聞き方が一番だめです。聞かれた方は「知らんがな」って言いたくなっちゃうやつ。あと、隣の部署の技術屋さんは大変お忙しいひとたちの集まりなので、聞くタイミングも大事。

 

エンジニアに聞くときの【良い例】

「調べてみたらこうだったんですけど、合ってますか?」

「だれもこのこと知らないらしいんですけど、情報持ってますか?」

自分でも調べた、人に聞いてみたけどわからなかった、というアピールをしましょ。丸投げで聞かれるのめちゃくちゃだるいし嫌です。忙しいときならなおさら。

(そもそも忙しい人に聞くときは最初に「3分だけいいですか?」と時間を区切って伝えるのも大事です。たとえ話が3分で終わらなくても3分って言っちゃうんですよ)

 

今までの経験上の話なんですが、エンジニアってリテラシーない人、調べない人、理解しようとしない人のことを嫌う節があります。(もちろん全員そうとは言えませんが)

でも、調べたけどわからなかった、勉強したけどここがわからない、そういうのは教えてくれます。

 

昔の会社の先輩にいた話です。

先輩の担当顧客から電話がきてそのまま取り次ぐと、内容を精査するまで電話変わってもらえなかったんですよ。ひどいでしょ。(笑)

それがいいか悪いかは別として、ヒアリングする力は圧倒的に上がったなとは思ってます。

そしてそれは意識を変えるだけで身につく力なんだなと今でも思います。

 

そして一番は、普段からコミュニケーションを取っておくことです。

エンジニアって、知ってる情報は教えてくれる生き物ですよ。でも、癖が強い。(と私は思ってます)

オタクって好きなことに関しては、早口でしゃべるでしょ? 同じです。

喋ってくれる人、めちゃくちゃ情報出してくれるんですよ。

それを活用しない手はありません。聞き方にさえ気をつければ味方です。

 

そして教えてもらえることに敬意を払う。

それだけで、十分やっていけます。

 

■ネットワークについて

わたしそもそもインフラ屋さんじゃないので、ネットワーク知識については最底辺というか、実務で触った部分とかしかやってないんですよ。マジで。

だから、「IPv6対応したいんだけど」「VPNの構築が~」とか色々言われましたけど、まぁほとんど勉強しながらでしたね。

 

困ったのは、

  • 物品がどこに何があるのかわからない
  • サーバがサーバルームにない(執務エリアにある)
  • ネットワークが複雑なのに引継情報にほぼない
  • ネットワーク図の情報が古すぎる
  • 保守ってどうなってんの状態

このあたりでした。なので、社内をくまなく探索して何がどこにあるのかを把握してはメモしてまとめていくという繰り返しをしてました。

VPN構築の際にネットワークも刷新したので現在は資料として残っていますが、人の異動が激しいこともあって情報がなかなか引き継がれていかないのもあるせいかと思います。しかも仕事はなかなかに属人化されてしまっている。こりゃー大変じゃぞ。

 

幸い、ネットワークの基礎の基礎の初心者部分くらいはMCPの資格試験のときに勉強してたのでだいたいわかりましたけど、そこから先はいろいろ教科書を読み漁って勉強しました。一番よかったのはこの本です。


 

 

楽天ブックスで買って、KOBOをPCにインストールして業務時間中読んでました。空いた時間に技術書読んでる分には許されるかなと。当時まだ在宅勤務なかったし。でも紙の本で買っても良かったかなと思える良書です。わかりやすい。

最終的に更新の際に不足しているコンフィグを新旧UTMから引っ張り出して確認するところまでやってましたが、どう頑張って解釈しても派遣の就業条件からは逸脱してた気がします。本当にありがとうございました。

 

インフラについては本当にいままでの経験が生きたのと、システム上どう動いてるのかを推測する力があってよかったなと思ってます。でなきゃコンフィグなんて見てもさっぱりわからん。

あとは、ただただ隣の部署のエンジニアさんたちのおかげだなぁと今でも思う。足向けて寝られねーなって毎日思ってた。

 

 

さて、今回はここまで。次回はサーバの管理運用とか、PCのセットアップについても話していきます。

 

【SCHOO授業メモ】PHP開発環境構築(Windows)

SCHOOでPHP開発環境の講座を受講したので、勉強用に作成した環境の構築方法とメモ、ざっくり記載していきます。

SCHOO PHP入門 開発環境構築(Windows
https://schoo.jp/class/1572
※有料会員になったので録画授業です。月980円かかります。

目的

webサービスを作りたい
PHPを学びたい
MySQLを学びたい

こういった人向けの授業ですが、MySQLは前職でかじっているのと、SQLの基本はだいたいわかっているので、主に上2つが目的ですね。

そもそもPHPとは何ぞや?

PHPとは、Webサーバ上で動作する言語で、HTMLを動的に作成してくれる。Web開発に主に利用される。

HTMLそのものを記述した場合は静的なページを作成されるが、動的にHTMLを作成する場合にPHPなどを利用する。

ASP.netはちょっとだけ触ったことありますが、PHPはほぼ初めてです。
PHPについて詳細を知りたい場合はkagoyaのサイトに詳細があったのでぺたっと貼っておきます。
https://www.kagoya.jp/howto/wordpress/php/

PHPで作られているサービス

Facebook
GREE
WORDPRESS
・SCHOO などなど。

XAMPPとは?

最も人気のあるPHP開発環境で、Web開発に人気のフリーソフト一式を簡単にインストールできる。(とはいえ、2014年の授業を見てるので今は違うかもですが・・・)

要は、開発に必要なソフトウェアを集めてインストールしやすくしたもの。
SCHOO紹介のダウンロードサイトhttp://goo.gl/hvmV8J

X    いろんなOSに対応
Apache Webサーバ
MySQL DBサーバ
PHP  プログラミング言語
Perl  プログラミング言語
これら含まれているソフトが名前の由来となっている。
LAMPとかもそうだけよなぁ。。。)

開発環境を行う

プログラミング言語を学ぶにあたって、開発環境の構築が一番難しいし壁になる。(VisualStudio使ってたときはまだ楽だったけど、その比じゃないなぁと常々思ってしまいます)

インストール(Ver.1.8.3.5)

多少古いかとは思いましたが、毎回バージョン違いとかで苦しむのでいったんは授業のバージョンに沿ってインストールしていきます。

①起動するとアンチウイルスソフトの警告が表示されるが気にせず「Yes」
 次も出てくるが気にせず進める。

画像1

②インストールウィザードが起動するので進める。
 Select Compnentsは、全選択の状態で次へ。

画像2

③Instration folderは「C:\xampp」のまま次へ。
 Learn more about Bitnami for XAMPPについてはチェックを外して次へ。
(各種サイトへのページが開かれるだけなのでついてても問題ないです)

画像3

④インストールが開始される。

画像4

⑤終わったら、コントロールパネルを起動する、にチェックをつけて「Finish」をクリックする。そうすると、コントロールパネルが表示される。

画像5

これでおそらくインストール自体はおわり。続いて動かしていきます。

⑥画面上部の「Apache」のStartボタンをクリックする。
 Module名がグリーンになり、ボタンが「Stop」に変更されていると、正常に動作している。

画像6

つづけてMySQLもStartボタンをクリックして起動する。

画像7

⑦起動したら、ブラウザ上で正常に動作しているかを確認する。
ブラウザ上で、「http://localhost」を指定してアクセス、起動していればXAMPPが正常に稼働している。

画像8

(ブックマークバーがめちゃめちゃあるな)

※ここで起動しない場合は、コントロールパネル上のポート番号を確認し、競合していないかを確認する。Skypeとか競合しやすいらしいので、確認してポート番号を変更する。

⑧ブラウザ上の「XAMPP」の「日本語」をクリックする。

画像9

この状態で、正常にインストールできている!

⑨コントロールパネルに戻り、画面右側の「Explorer」をクリック
 フォルダが開くので、「htdocs」フォルダを開く。

画像10

ここにファイル(html、phpファイル等)を格納することで、ブラウザに表示される。

⑩ファイルを置いて、動作確認する!
SCHOO配布のテストPHPファイルを格納して、動作を確認する。
中身はこんなかんじ。

画像11

ブラウザで「http://localhost/test.php」を叩く。

画像12

おめでとうございます、元気な文字化けですよ!
UTF-8で表示させるために、エンコード変更を行いますが、2020年12月現在、Chromeの設定からエンコード機能が消えているため、拡張機能をインストールします。
https://chrome.google.com/webstore/detail/set-character-encoding/bpojelgakakmcfmjfilgdlmhefphglae
インストール後、右クリックから文字コードUTF-8)を選択します。

画像13

正常に表示されました!

これ以降は、前述のhtdocsにファイルを入れることで、phpを動かすことができます!

<余談>プログラミングを学ぶ際の必修授業2本

■コンピュータのしくみ(SCHOO)
https://schoo.jp/news/2014/2014-11-14

PCがどう動いているのか?Webの仕組みについて?など。必修授業。
ほか、PHP入門用の必須項目があるので、それも後程受けておくこと。

・必修授業 2本
PHP入門授業 8本
Ruby入門授業 3本
MySQL入門授業 2本
スキルアップに繋がるオススメ授業

<余談2 XAMPPの便利なツール>

画像14

左ペインの「phpMyAdmin」をクリックすると、画面が遷移する。

画像15

便利ツールがいっぱいあるので、見ておくといい。

まとめ

開発環境の構築が一番難関なので、一つずつクリアしていくしかないですね。XAMPPはめちゃめちゃ楽でした。。。

Python3.7.*とかLinebot作ったときはめちゃくちゃ難航したし面倒くさかったので、これはものすごく楽な方だなぁと実感しました。

以前の転職の際にネット掲示板を作ること、という入社時の課題に取り組んだことがあるんですが、そのときはASP.NETで作ってましたね。そのあと「C#で作り直して」って言われたときはだいぶかかった記憶があります。
オンプレ開発ばっかりやっててWebアプリケーションの開発がほんとポンコツなので、少し勉強していければと思います。

開発編もまたやっていったらnoteに残していこうと思います!

【ACCESS】クエリ実行時に「メモリ不足です」とエラーになる件

仕事でACCESSを使わざるを得ないという状況があって使ってるんですが、毎月そこそこデータ量が増えていくせいでついに、2GBを超えないにもかかわらずACCESSでSELECTの結果を返してくる前に「メモリ不足です」と怒られるようになってしまったので、対処をメモしておきます。

ACCESSの概要

たぶん、そこそこデータ量が多いんですよね。 4万~5万行×70フィールドくらいなんですけど、ACCESSだと多い方なんですかね。2GB 超えてないのと、ちょくちょく最適化は走らせてるのでそこまで重いということもないと思ってはいたのですが。

ツールの概要

・基幹システムからExcel形式でデータを取得(これが約4~5万行) ・ちょこちょこUPDATEで加工しながら、必要な資料作成のためにSELECTをバンバン実行する

というだけの、まぁ基本的なツールです。

実行環境

・Windows10Enterprise 64bit ・Intel Core i5-8400 2.80GHz2.81GHz ・メモリ8GBから16GBに増設したが駄目だった ・ACCESS 2016(Office Professioinal Plus 2016)

エラー発覚時に試したこと

いろいろ試してみて、やっぱりいまいち上手くいかなかったということと、忙しかったので急遽、緊急回避的にSQLServerに乗せ換えて乗り切ってしまいました。 それで年度末を乗り切っちゃうとデータがまた少なくなるので、最近になるまで放置してしまってました あたためてました。

・メモリを8GBから16GBに増設 → ダメでした ・MaxLocksPerFileの値を変更 → ダメでした ・他のPCを使ってみる → なんと、うまく動いてしまった…!  この時使ったのが、16GBメモリを乗せたCore i7windows7のマシンでした。  もう一つ、Windows10Enterpriseで、バージョン1909にアップデートしてない1809だったかと思います。  なぜこれらがうまくいったのか…いろいろ調べてみてもよくわからず…。。。

解決法①ACCESS.exeのプロセスのCPUマッピングを1つに限定する

調べてみた結果、メモリ不足と言われている割にCPUマッピングが原因ではないか?ということがわかりました。 参考: https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/d3042c09-2235-45d3-bc6b-b2434ab347c6/access?forum=officesupportteamja マイクロソフトの公式ドキュメントにあるの見逃してたのは内緒

Access はマルチスレッドで動作することを想定していないエンジンを利用しています。 この動作が影響してメモリ不足が生じる場合があります。

回避策 : 1. 現象が発生している Access ファイルを開きます。 2. [タスク マネージャー] を起動します。タスクマネージャの [プロセス] タブで “MSACCESS.EXE” のプロセスを右クリックします。 3. [関係の設定] メニューを選択します。 4. [プロセッサの関係] ダイアログ ボックスで、任意の一つの CPU のみチェックをオンにし、その他の CPU のチェックをオフにします。 5. OK でダイアログを閉じます。

これ~~~~~!これが知りたかった!!!!!!

MSのDoc:複数コアの CPU 環境で実行中の Access が応答なしになる 結局のところこれが原因のようでして、アクセスのデータベースエンジンがマルチコアCPUで正常に動かないことが原因のようで、手動でシングルにしてあげることで解消できるようです。

がしかし、問題点があり、この方法だと毎回、該当のAccessファイルを起動するたびに変更しなければならないという若干のめんどくささがあります。 これを回避するには、もしかすると特定のファイル、もしくはACCESSファイル起動時にシングルコアCPUで起動する、みたいな対処をすべきかもしれないのですが、どうやらもう一つ対処ができたようで、私はそちらを試しました。

解決法②SELECT句の修正

参考: https://blog.goo.ne.jp/itachi-yang/e/08f8919673e7b84615caf449133ed071

どうやら抽出時のクエリのWhere句にNULL許容のフィールドを対象に比較演算子を使った条件を使っていると、どうやら発生することがあるようです。 マルチコアCPUに戻してNZ関数でNULL置換をかけたうえで条件自体はそのままにしたところ、バンバン出てたエラーはなくなりました。 (NULL許可の項目自体についてはちょっといろいろあって修正ができないのです)

毎回CPUの設定を変更するというのも面倒ですし、クエリをさくっと修正して対応完了。

余談

そもそもACCESSをやめたいなァと思いSQLServerでクエリをまとめてみてはいますが、最終的に私以外がツールを触ることになる可能性も捨てきれないので当面はこのままいくのだろうなと思うとちょっと切ないです。 後任がVBA触れるとは限らない

超初心者向け!ACCESSとは?エクセルとの違いをわかりやすく解説

こんにちは、四ツ屋です。久しぶりの投稿です。

 

最近仕事でMicrosoft ACCESSに触れる機会が多く、またその業務のなかで意外と

「エクセルはわかるけどアクセスはちょっと」

という方がいました。

たしかにエクセルと見た目が似ている分だけはとっつきにくい印象があるのかもしれませんが、使ってみるとデータベースとしては利点もあります。

今回はアクセスについて少し紹介したいと思います。

 

■アクセスとは?

Microsoft社のファイル形式データベース管理ソフトです。

表計算ソフトであるエクセルとは異なっていて、こちらはリレーショナル・データベースです。そのため、ワークシートという概念とはまったく異なっています。

データベースは表計算ソフトとは違い、格納するデータの内容や形式を列(カラム)ごとに先に決めています。

たとえばエクセルではセルごとにデータ形式を変えられますが、アクセスではセルではなくフィールドという概念になるので、一箇所だけデータ形式を変えるというようなことはできません。

※フィールドとはなんぞや?ということについては詳しくはこちらの記事をごらんください。 

 

エクセルに慣れた方が初めてアクセスを使うときに戸惑うのはそこだと思いますが、データベースを始めるにあたっては機能の一つ一つを理解していくことで、親しみやすいのでは、と個人的に感じます。

 

■アクセスのメリット

アクセスを使う利点としては、大容量のデータを集計したり検索するのが楽であること、それからデータベースであるので集計やピボットが楽にできることかと思います。

※楽、というと慣れによって個人差はあるかもしれませんが…

また、テーブルの列ごとに形式が決まっているため、作業をルーチン化するにはもってこいです。エクセルファイルはCSVファイルのインポートもあまり考えなくてもできてしまう。すごい。

何より、セルの結合ができないぶん、逆にデータの整合性は増していきます。エクセルは自由度が高すぎて、好き勝手にデータを入れられてしまうケースが多いのです。

 

一方、SQLServerなどと比較すると、様々な機能が安価で手軽に使えることがメリットとして挙げられます。エンジニアではなくてもライセンスさえあれば使えますし、環境構築するという面倒な手順が必要ありません。

また、アプリケーションを実際に稼働させる際にはSQLServerだけでは難しく、データの入力、編集、削除といったインターフェイスを使いたいと思ったときに、ACCESSならVBAが利用できます。

 

何より、バックアップの手間が必要ない。ファイルをコピーするだけ。そこに気づいたとき、「もしかしてアクセスって初心者向けの間口広めツールとしてはそこそこ優秀なのでは?」と感じ始めました。

 

個人的にはSQLServerVB.NETに慣れていたので最初は「アクセスクソだな~~~」と思うことは多々ありました。今もときどきあります。

 

しかし初心者向けに作り、自分以外がメンテすることになる、という制約の多い状況では「意外とアクセスも捨てたものではないかも?」と思うケースもしばしば。VBAなら少しプログラムをかじった人なら通る道なので、間口が広い。

 

■アクセスを使うデメリット

とはいえ、ですよ。頭を抱えることもしばしば。

データベースとして廉価版だし、Office製品だから書籍も山のようにあるし使ったことある人も多いし、SQL書けなくてもクエリ作れるし、クエリ保存しておけばなんとでもなるし、帳票作れるしVBAでフォームも作れるし、意外といいやつじゃねぇか?と思ったけれど。

でも、でも!

腹立つことは意外とあります。

ファイルサイズが2GBを越えるとファイルが使い物にならなくなるとか。

SQLをきれいに書いても改行コードがなかったことにされるとか。

SQL書いてても予約後や関数が色分けされないとか。

そもそもSQLに癖があって使いづらいとか。

ROW_NUMBER関数も使えないし、CASE WHENはSWITCHで読みづらいとか、そもそも結合できるテーブルに限りがあるとか。

※ROW_NUMBERもSQLServer2000じゃ使えませんでしたけどね。

ちょっと長いクエリを書くと、「クエリが複雑すぎます」って怒られたりとか。

VBAだと文字列の全角半角を認識してくれないとか。

※実際あった話です。全角カンマと半角カンマを認識してくれなくてハゲるかと思いました。

 

 

■じゃあ結局、アクセス使ったほうがいいの?悪いの?

こう書くと「やっぱりオメー、アクセス嫌いなんじゃねーか!」と思われそうですが、そうではないのです。いや好きでもないですけど。

どのツールにもメリット・デメリットあります。

エクセルでもできる、アクセスでもできる、RDBMSでもできる。

じゃあどのツールを使うか?となったときに私が重視したのはメンテするのが誰か?運用するのは誰か?ということです。

別に、一人で作って一人で使う、自分ひとりで完結するなら何を使ってもいいんですよ。ぶっちゃけ。

 

でも、自分以外が関わる状況で、

 ・運用する人

 ・メンテする人

これが誰で、どういうスキルがあるのか、どういう制約があるのか?ということを考えながらツールを作っていると、存外アクセスも悪くないんだなぁと感じます。

でもやっぱり同時に、アクセスでは出来ないことにブチ当たって悶絶もしますけどね!

 

 

【雑記】水没したiPodが10日間かけて復活したはなし。

こんばんは、四ツ屋です。今回もSQLの話はちょっと置いておいて。。。

 

年末のことです。

なんとズボンの尻ポケットにiPodを突っ込んだまま脱ぎ捨て、挙句の果てにそれを拾って洗濯機へインしてしまい、気付いたのはベランダで干そうとしたその瞬間であった。

デニムの尻ポケットが、、、かたい!!!

 

 

マジで?と二度見をしたのはいいけれど既に水浸し。

しかもご丁寧に脱水までされている。見事に洗濯しちゃった!

 

やべーーーーーーーーやっちまった!!!!!やっちまったな!??

慌てた。なにせその数日前に、キッチンで二度ほど水没させていたのだ。

洗い物するのに音楽かけようと置いた瞬間に手が滑ってコップへイン。

おいおい、即座に取り出せた状況ならまだしも。

 

ガッツリ洗濯機に一時間近く回してんじゃねーか。

 

これは死んだな、と思いつつ、とりあえず水気を拭いてみた。

そして、真っ先に電源を入れてみた。

(※ここで通電するとショートするので、本来はしないほうがいいです)

 

一瞬、アップルのロゴが表示されたが、その瞬間に落ちた。

死んだな。その後はうんともすんとも言わなかった。

折角なのでPCにもつないでみる。

認識がおかしくなっているせいか、うんともすんとも言わない。

おまけにiTunesは機器接続でエラーになっていてデバイスが認識されない。

 

買い替えかぁ。。。と5年以上お世話になったiPodを弔い、新たに音楽プレーヤーを買おうかと検討したが。

そういえば昔、ケータイ(ガラケー)を水没させたら冷凍庫に入れろとか、いろいろ聞いたな…と思い出したわけです。

 

冷凍庫へイン

だがしかし、何も起こらなかった。うんともスンとも言わねぇ。

 

タッパーに乾燥剤を入れてイン

…しようとおもったら、そんな都合よく乾燥剤がなかった。だめだ。

 

ジップロックにお米を入れてイン

ちょっと前にタルトを焼こうと思って、重石がわりに使った生米をそのまま放置してたことを思い出し、ちょうどよく転がってた飴の袋に全部投入して、半日ほど放置してみた。

 

 

な、なんと!電源がつく!!!

なんだってーーーー!!!と言わんばかりに喜んだ瞬間、落ちた。

どうやら電源系が死んでいるようで、充電器にさしてみると、充電しながらならぎこちなく動くようだ。とはいえ、PCに接続しても認識されない。困った。

日常的に使うのにさしっぱなしというわけにもいかない。

通勤のときに使いたいのだ。

 

これはもしやワンチャンあるのでは?と再びジップロックにお米まみれにしてやった。この時点で画面は光るが、操作がうまくいかない。

画面上も妙にラインが入っていて、液晶が若干死にかけている。

 

充電ケーブルの穴にお米が入るのを哀れに思いながら放置することさらに数日。なんと息を吹き返したiPodは、音を出すようになったが、イヤホンの再生ボタンは効くのに、操作用のボタンがウンともスンとも言わない。

 

まぁでも、音が出るしな…と(強引に)使い続けること更に数日。

なんと、いつの間にか操作ボタンが効くようになっているではないか!

PCにつなげてみると、なんと認識するようになった!

 

こいつまさか…自己修復機能でも備えてるんじゃねぇか?

と思いながら、なだめすかし使っていた年末年始…そしていま3月に入ったが、充電の減りが若干早いことを除けば十分に使えるまでに回復したのである。

 

とりあえず、水没させたときは慌てず騒がず乾燥させるのが大事だなと思いました。

それ以来、絶対に尻ポケットには入れないようにしてます。