So-net無料ブログ作成

なんちゃって EXCEL ACCESS VBA ブログトップ
前の30件 | -

遅い病(^^)? 感染しちゃった?対処方法 EXCEL VBA [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-22 ---


寝た、ネタ?

おはようございます

(^^)?

チョ〜早起きなのです

(^^);


知らなかったですが、

サッカー話題が一部で満載?

(^^)?

サッカーの年ニャのですネ

(^^);

知りませんでした


誰か凄い選手?居るのかナ?

(^^)?


---

昨日ですが、リリース直前

チト最終確認で?

何気に印刷してみましたョ


ポチっ!

(^^)?

終わらない?

昨日まで、30秒も有ったら

終わってた、エクセル帳票が

クルクル病です

(^^)??

ヤっちゃった?

(^^);

しかぁ〜し、特に修正したつもりも無いし?

何故ニャのか?

(=^^=)?


チト焦り気味で、あれコレ?

PC もしつこく再起動しましたが?

一向に改善しません

(^^);

仕方ないので、アレして見ました

(^^)?

改善?


もぉ〜ヤダ!

このPC が変ニャのか、

ここ入れてるメーカの遅い病に感染した?模様?


エクセルの印刷ひな型も、

適宜バージョンアップをしています


Office2010 でのメモリ肥大化による

イベント待ちの不具合系?

とか、、、?


今回も、凄く下らない?

2ステップ追加しました

(^^)?

次回にでも、住所検索のデータベースを使って、ひな型、ふりがなセット、など入れてアップしますかネ


ボタンを押したらエクセル印刷

印刷と言っても

エクセル作るだけですが、、、

(^^)


で、、、無事解決!

ここに存在するアレこれシステムの帳票系!

(^^)

100本くらい?

(^^)?

まるっと、ゴリっと、修正しました

時間だけは掛かりました

(^^);

修正は、殆ど目視のみ!

不具合が出たら、個別に対処するとの事で!


もうアレね?

一応、ひな型に改版履歴を入れていますが、

Office2010 のメモリ的な問題も5年前でした

(^^);

久々に修正を加えましたが、、、


まっ、多分と言うか、キッとと言うか?

PC にも?

問題が有るのです


リリース前に気が着いて良かったですが、、、

最初、

余りの遅さに、ループな処理を間違えたかと思って、1件づつデータを調査してました

(^^);

だって、昨日まで、普通に動いていましたので!



まっ、こう事も有りますョ

ニャンコ言っても、

開発してるとは言え、末端ユーザと同じですからネ

高級言語は?!


は、は、は、?

(^^)?

このカキコ読んでも殆ど意味不明でしょ?

(^^)??

そのくらい疲れました

1日、潰れてしまいました


な、、、昨日の出来事でした



今度、アップ予定で!

メモしておきます


---

明日見むら

村長さんでした

(^^)/ Excel VBA


タグ:Excel VBA 遅い病
nice!(3)  コメント(0) 

確信しました(^^)v Access Runtime 起動!ライセンス不要です [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-19 ---


2016年モデル? 日本メーカ製

Windows10 Pro x64

Office2010 Home & Bussiness



今日、別のPC、Windowd10 Pro に

Access Runtime2016 だけで実行出来ました


多分、これで、

私の作成するアクセスは、ランタイムだけで起動できます

(^^)


これ、オフライン環境のPC だと

インストールする事自体が、

普通の人には難しいのですョ


ms は、ライセンス認証が有りますので!

今までは?

どうしていたかと言いますと?


PC 毎に正規のアクセスを購入していました

(^^);

ワード、エクセル、パワーポイント、などはセットで必要な事が多いのですが、

アクセスは、単体で購入すると高く付きます


しかも、オフラインなので、インストールが大変でした

(^^)

この認証が不要になるので、配布が非常に楽になります


拠点になるPC 1台か2台には必要ですが、

全てでは無いので非常に楽ちんです

(^^)v


私の作成方法、手順であれば、

間違いない!

っと確信しました




---

明日見むら

村長さんでした

(^^)/ Access Runtime


タグ:Access Runtime
nice!(2)  コメント(0) 

VBA など(^^)明示的、暗黙の了解?触りだダケね 解説 編 [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-17 ---


チョットだけョ(^^)?

あんたも好きねぇ?

(^^)?


VBA だけでは、ござらんです

エクセル足し算などでも同じ!


---

1) 明示的

その名の通り、キチンと宣言します、の意味

これ、数値ですョ、日付ですョ

的な?


2) 暗黙の了解

明示的に宣言しなくても?

ここまでは?こう言う風には?

計算させて頂きマンモス!な意味?

(^^);


例えば)

数値2 xかける 文字3 = 答えが数値なら6です


とか、こう言う感じ


例えば)

3 / 2 ... = 6

あれ?

(^^)?

なんか違うし、、、?


な事が良く有ります

計算途中が、全部、整数で計算されてる時です


明示的に!その1

1.0 xかける 3 / 2 ...


1.0 を掛ける事に依り、小数点の計算になります

変数の時、普通は全部変数ですョね、

データが、4 / 2 ...=、3 / 2 ...=

の時に、答えが正確で無い時があります


明示的、その2

変数の宣言を、小数点付きにする

これは、VBA などでしか出来ません


エクセルは、その1、だけデス



こう言う、ビミョ〜な違い

明示的、暗黙の了解

他にも有ります


普通に、OA だけだと、計算方法だけで良いと思います


リカちゃんして、記憶に留めておくだけでも、随分違いますので!



簡単な、四則演算のウンチクでした




---

明日見むら

村長さんでした

(^^)/ VBA


nice!(4)  コメント(0) 

宿題ね(^^) エクセルの桁合わせ、数値 編 [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-12 ---


通勤時間をカキコしてたら?

実用的な宿題を思い付きました


(宿題)

エクセルのセルに数値が並ぶ列

よく見かけます

が、、、

中々キレイに並んでる、光景は見ないのデス


1) 整数を右側に少し余白を入れたいデス


2) 小数点もキレイに並べてみたい

   12.34

   99.2

 100.8

こんな感じ


答えは、1つじゃ無いです

1) は普通にも出来ますが、別の方法も考えて見ましょ


答えは?

週末にでも書きますかネ


取り敢えず、な、暇つぶし



(答え) 2018-06-17

△=空白ね


1-1) セルの書式設定、数値、0_△

1-2) ユーザ書式、#_△

1-3) BOOKのオプション、ゼロ非表示

    これ知らなかったデス

    ユーザさんが作ってたエクセルでした

    最初どうしてゼロが見えなくなるのか不思議でした


1-4) ユーザ書式、@_△、右づめ

    @=文字列です


1-5) 関数、=TEXT(Z1, "# ") & ""、文字セル、右づめ

    Z1 に表示の数値を入れています


    VBA=FORMAT(Z1, "yyyymd(aaa)")

    Excel=TEXT(Z1, "gggee/mm/dd")、な感じ


2-1) 左づめ

    %など、100%以上、10%未満がほぼ無ければ、これだけデス

    小数点以降は、勝手に、1桁、2桁になります


2-2) 関数、=LEFT("△" & Z1 & "△△△", 6)

    △は、適宜

    有効桁数のあの関数や、MID などで、小数点以下を切ったりします


    ★VBA=MID(Z1, 5)、桁数は省略できます

     エクセル=MID(Z1, 5, 99)、桁数LEN が鬱陶しい時は、想定Max 桁でも良い

    99=正確で無くても良い


2-3) 書式インデント数=1


2-4) セル分離、整数部、小数点を分離、右づめ、左づめ



左づめ、右づめ、空白文字は注意が必要、@、文字列書式を使うのが良いです


文字列書式には、罠が有りまして?

=SUM(xxx)、は標準書式、その後、文字列書式

この手順になります


一旦、文字列にすると?

=SUM(xxx)、など修正すると文字列になります


合体させると色々できます

空白も、余計なお世話機能で勝手にサプレス(消去な意) されるので、キレイに揃えるのが意外と難しいです


文字列変換、=T(xxx)、多分T だったと思います

これも、=数値 & ""、でも文字列に変換されます

属性、暗黙の了解、型変換は重要です

よく理解しておきましょう


念押し?しますが、

日付=実数型、999.888、数値で有って

#2018/6/17 6:48:59#、では有りません


---

明日見むら

村長さんでした

(^^)/ Excel


nice!(7)  コメント(0) 

Excel Technic (^^) 操作 編、併せてエクセルなプロパティ周りを書いてみる? [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-09 ---


そろそろ、so-net チンも落ち着いた?

もうネ、カキコが消えるのだけは勘弁ね

(^^);

イクラちゃんでも、秘奥義でもネ、消えるのデス?

(^^)?

秘奥義ね?

(^^)??

アレですか?

(^^)???

な、い、し、ょ、!


既に、バレバレ模様でございます

(^^);

真面目に書かなきゃ!

お出かけまでのヒトトキでなるべく沢山、書いてみる!


---


エクセルの操作系、そう言う感じの纏めるメージです


(操作編)

<<フィルタ操作で更に加工したい>>

データ-->フィルタ(じょうご?見たいなの!)


で、随分、楽チンSIM になりました

これOffice2007 からなので!

それ以前は旧型ネ、まぁまぁデス

必要な人には便利です

私は?どちらでも?な感じ

普通の人にアドバイスする時は、楽チンです

フィルタだけなので!


で、、、本題は、抽出後の加工です

普通は、番号をキレイに揃えたい!

な、、、感じでしょ!


でも、打ち替えられないし、?、

(^^);

な、事がありまして、伝授したので、こちらにも!

(^^)?

??? 止めとこう、真面目に書かなきゃ!


範囲選択でも、左上の一括選択でも良いです

その後、別のシート、It's New ね

コピペで終わり!

あとは、好きにしてちょうだい!


(^^)?

それだけかい!

(^^)??

それだけネ



<<コピー先の様式が同じじゃ無い>>

Office2016 でした

昨日は確かに出来ませんでした

(^^)?

これネ、良くある使い回し、とか、

最初から変だった、とか、

変なオブジェが入っている、とか、

或は、バグ、仕様変更?

も考えられますが、、、


これで考えてる様ではダメね

出来ぬなら、ヤラシテ見るぞ、ホトトギス?

(^^)

ピッタリですか?国語な先生さま?


縦列コピー、で、シートへ貼り付け

横行コピー、で、シートへ貼り付け

(^^);

普通はコレでOK です

しかし、昨日の物体は?手強いでごJAL


下のシート名の所、

右クリック-->コピー

要チェックオン


コピー後は、そのシートを空っぽにして

再度、

元のフィルタから、値の貼り付け!


はい、終わり!



<<連番を振りたいデス>>

セルNew 追加の列でも、消して良い列でも好きにしてぇ〜〜〜

(^^)?

想像は控えめに?


1番上は、1ですネ、次が2、、、

1のセルを選択

四角い枠の右下カドの辺りに?

何やら不穏な影、忍者かい?

プラスになるョ、マウスポインタ!


見つけたら?

ビョよぉぉぉ〜ん、と引っ張ります

更に、

手を話すと、別ニンジャ?

▼っぽいマークね


見つけたら?連番、連続?オートナンバーっぽいのをポチっ!

ワンワン吠えたら完成ネ

(^^)

ホントは吠えないので!



も1つは?

=前セル + 1

これを、コピー

シフトで選択

貼り付け!


細かい所は、基礎的な最初の方を見てください

カキコ済


ただのコピーと侮るなかレ?

奥が深いのダョ

(^^)

名付けて??? おしまい


思い出したら追記します



--- 2016-06-10 ---


<<合体セルのコピペ>> 結合セル


一度はヤった経験あるでしょ

コピペしたのに連結が無くなっちゃうの!

この何ちゃらは?どぉ〜やらデス!

な、メッセージの後、普通のセル単体に戻されました

的な?

(> <)

折角、キレイにクッつけたのにぃぃぃ〜!

(^^);

時間を返してぇぇぇ〜!


そニャにゃな経験です、そだね?

(^^)?


さすれば、合体不能の秘奥義か?

(^^)??

でも、無いので普通に切り取り

そして空いた所へ一旦、貼り付け


再度、切り取り

所定の変更位置へ貼付け!

(^^)?

それだけかい?

(^^);

それだけネ



<<関数ありなシートのコピペ>>


行に不穏な影たくさん?

(^^)? 忍者か?

そんなハズはござらんデス

関数ね


こてにもコピペが有るのダョ

(^^)


さすれば伝授?


合計をsum してる? っとしましょうか?

明細行の最後

合計行の手前を行選択します


行を右クリック

--> 挿入 --> 明細行のコピペ


削除は?

削除前は一旦、保存

業務削除して見る


ダメっぽかったら、諦める!

その時は?

他のブログを探すか、自分で修正いたしましょ!



--- 2018-06-11 ---


データベース

エクセル --> アクセス へ、取り敢えず簡単に作りたい


マスタ系とか、複雑怪奇なテーブル、とかネ

取り込んだ後に、考えたい!


そんな時も、有るのダョ

秘奥義でも無い?

(^^);

ただのコピペ!


本当か?

(^^)?

さすれば伝授いたしましょ!


エクセルと同じテーブルの項目を兎に角、文字列で作ります

項目数が合ったなら?


エクセルを、範囲指定!

アクセスのテーブルへ、コピペ!?

(^^);

略し過ぎ?


エクセル=範囲指定でコピー

アクセス=ペースト、貼り付けネ


コレだけです!

(^^)v

ポイントは、範囲指定!


伝授しました

(^^)

インポートも有りますョ

でも、

セル調整できるコピペの方が楽な気がします



csv のインポートも、ひな型っぽいのも有りますが、

チト長いので、、、

ご要望が有れば?


雰囲気は?

フォルダに、csv、ぽいっ!入れる

そこ表示

ファイルを選択したら、インポート!

テーブル完成

処理済みフォルダへ、csv、移動

そんな感じです



<<外字登録>> 2018-06-16

ご注意!系で以下3つ


例)

山田さん、木崎さん


田、崎、が外字だったとしましょうか?

使った事ないですが?

コピーできる時点で、コード体系が共有ぽっく出来ると思います


PC1=x050001=田、x050002=崎

PC2=崎、田


これ、エクセル交換すると?

山崎さん、木田さん

別人ね(^^)?


たまたま、登録方法を聞かれたのでした

(^^); 使わないので!

キッパリ!


ってか、ネット、ヘルプで調べれば分かる程度の事は、自分で調べて下さい

(> <)


教えて貰う方が早いと思った?

遅いから!

手が空いたら教えて下さい!なんだろ?翌日配送明日楽にゃので!



<<文字コード>>

データベースで検索してたら?

住所が出てこなかったり、

変な並びで出てきたり?


有りませんか?

それ、文字コードが違うので!


黒の組織の仕業です

世界標準、UTF-8 の一点張りネ

(^^);

世界に公開するのか?

個人情報?


以前もカキコしてますが、

日本では、Shift-JIS です

これは、他の国に行っても同じ事です



<<丁名>>

一丁目、二丁目、、、

1丁目、2丁目、、、


これは、並びが違います

いち=い、に=に(読み方順)

1=1(数値順)、2=2


文字コードの並び順です

最初の人が決めたルール

変えられないので、数値な感じで統一する方が良いかもです


不特定の住所検索だと意外と探しづらいです

公的なお仕事で無い限り?

数値がオススメでございます



---

明日見むら

村長さんでした

(^^)/ Excel Technic


タグ:Excel technic
nice!(3)  コメント(0) 

ちこっと変わった(^^)? Excel、Access 作ったもの テクニック編 [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-30 ---


ポイントは、殆ど、エクセルです

Access は、データベース

データを管理するツールね


Excel は、実際に目に触れる物!

普通の人が、Excel 使うのは、これが理由です

表なので、当然データベースなのダョ


しかぁ〜し、

コピペで言った通り、エクセルは簡単なのですが、

ホントにスキルに依るので、あっと言う間に壊しちゃうのネ


あ〜あ、どのデータが壊れたか分かりませんョ

(^^);

っとは言いつつも?

Access でも、壊す人は居るのダョ


一応ネ、テストとか練習入力とか、出来るようにしておきます

っと言っても、別環境ではござらんデス


削除ボタンを作れば良いです

テスト入力して、その後、削除

又は、ホントに2重入力して間違えた、など用です

(^^)


例えば、在庫管理ね

いつ、何を買った、資産的な物も有るので基本的には消してはダメです

色んな履歴も有るし、、、


キチンと廃棄日や、削除データですョなフラグを作るのですが、、、

これ、あれだけ基本的には消しちゃダメだから!

って言っても、普段、使わない人が使ったりすると?


これ廃棄だから、削除!!!

何度も何度も言ってるけれど削除してしまう人も居るのネ


で、、、

最新のバックアップから戻すのですが、

今日、入力したデータ、全部、打直しだから!

っと言う、ケース以外は、基本的には壊れません

データベースの良い所!


---

(過去に作った変わり種?)

<<丸印>> --> 2018-06-03 Up

エクセルで、ある程度、情報表示させたら?

最後は自分が確認して、まる したりする帳票ありますョね

担当部署、性別、とかのアノ丸です


デジタル的にはあの丸、中々難しいのでございます

なので、

四角なエクセルに、普通に罫線で枠作って丸っぽく!

■、□、で有無っぽくして見たり!

これでも凄いの? (^^)?

ですが、やっぱり、丸印には叶いません


さすれば、作って見ましょうか?

VBA 関数、あとはExcel で関数指定

チェックボックス作って丸ネ



<<選択したら内容表示>> --> 2018-06-03 Up

これは、普通にエクセルだけです

例えば、日付をコンボで選ぶと、日報でます

在庫のチョコを選ぶと、在庫数、履歴が出ます

的なやつ


Access と連動させると更に便利

エクセルにある程度の情報を別シートに出力させれば、

あとは、エクセルのコンボで選ぶだけ


グラフなども、コレね

データをエクセルシートに入力しておけば、

年間、月間グラフが出ます


グラフの範囲は当然、固定

ここへ、コンボの日付で抽出したデータを貼るダケね

簡単なテクニック



<<時間推移なグラフ>>

車などの移動、時間的な在庫の推移


データをデータベースから抽出

刻み(分)、1分、15分、30分、60分、など

これでセルに色付けします


どうしてコレを作ったか?

以前も同様の雛形エクセルを作りましたが、

やっぱりスキルに依りますので面倒なのかな?


基本、データコピペで、基準軸の基点を指定するダケです

グラフの基点?

(x, y) 座標、の基点(0, 0) です


普通に作って見れば分かりますが、

日本人的には、分単位でも、例えば、6:00〜、12:00〜にしたいのネ


これ自動では出来ません

最初のデータが、6時3分15秒とすると?

基点が、15秒、増減値が、10分ごと、、、


スゴク見辛いグラフの完成!

外国の人は気にしないのネ

JR 的なアレと同じ

時刻表通りに出たり、到着したりするから、時刻表の意味が有ります


バスみたいに、交通状況に応じて、早くなったり(たまに)、遅くなったりでは通勤や待ち合わせに困ります


ですが、その遅れ、まっ!秒単位の遅れを発表するのもどうかと思いますが、待ってる方からすると、その情報は有り難いです

更に、翌日以降も発生する様な事態なのか、たまたま遅れただけなのか?の把握も出来ます


これ、外国では通じないと思います

(^^);

いつも、ビックリNEWS 的な報道してますからネ


な、、、感じのエクセルグラフ

それなりだったら、それなりに簡単に出来ますが、

細かい日本人的には、細かい所も気になります


良い所であり、悪いところです

失敗が少ないのも、こう言う見易さ的な事も考えるので、同じ手順の資料マニュアルを見ても失敗が少なくなるのだと思います


まっ!黒の組織には通用しませんが、??

そもそも、資料を作りません

(^^);



<<大きい名札>>

これは作ってはいませんが、謎のタックシールのエクセルを参考にすれば作れます


エクセルのセルは、90度、まで

あ   か

い   き

う   く

が、横書きで、見づらい作りになります


テキストボックス挿入で、セル参照もデキますが、

オブジェクト系は、

コピペにひと工夫、必要なのネ


普通の人には意外と難しいです

(^^);

コピペも奥が深いのダ、北斗神拳?天翔ほん列?


コピー技、有るのですが、覚えておりません

伝授不足?

(^^)? 今度、読み直しておきます?

それまでは? 天翔ほん烈、1択です?



別シートに普通に入力

それを参照するだけネ

向きが、横な変向きにならないので

首が痛くなりません

(^^);

作ったの見た事あるけど、

横向きに入力なので、

字が間違えて無いかは、やっぱり横向きか印刷しないと分からないのですョ

(^^);

疲れるので、作り変え方、教えて上げましたが、、、

多分、そのまま?



<<発表会>>

Access から、Excel、ネ


発表会っぽいのお仕事系でも有るでしょ

点数つけて、順番だすだけ!


でも、エクセルだと、

いちいち並び替えしないとイケなかったりするのネ


例えば、

発表順にセル入力

結果は、得点順とかネ


これもスキルに依るので、

作った人は、それで良いけど、

担当者が変わったら、いきなり動かない!


しかもVBA だったりするとお手上げなのネ

作るなら、

入力シート

計算シート

帳票シート(色んな並び順ごと)


帳票シートは、手動で並び替える作り(フィルタ ソートなど) も可能ですが、必要なので有れば、最初から、その並びのシートを沢山、作ってた方が楽です

シートを選んで印刷するだけ!

シートを切り替えて、順番を確認するだけ!


Access を使うのは、

入力がし易い、確実と言うのも有りますが、

画面表示が有るので、

ソート順は、基本形

項目をダブルクリックすると、その並び(手動でも右クリックで可能です) が出来るからデス

★ダブルクリックの所はとうぜん、VBA で組んでいます、標準機能ではございません


エクセルでは、中々使い易いまでには作れません


あとは、縦横の行列数、発表する人、審査する人

固定でも良いのか、無限な可変が良いのかは、それぞれです


普通は固定で割り切れば良いと思います

いつも発表が、10人で審査員が5人なのに、無限なロジックを複雑に作っても意味が有りません


そもそも、エクセルを可変帳票にするのは、結構、難しいです

特にクロス集計的な場合は!


なので、少し多めで、20人づつ、とすると

エクセルも作りやすいです

固定なので!


それとSQL などのクロス集計(ピボット?) 的なのは、思う様にできない可能性が有ります


例えば、いつも、何かをタイトルに出したい

固定の行列なのですが、

データが全く存在しないと出てきません


なので、集計には、関係ない方のタイトルにデータを作ってクロスさせる

などのテクニックが必要になります

固定の場合は注意が必要です


みかん の在庫数と思っていたら、りんご だった!

あり得ますので!

みかんとリンゴなら良いですが、

イチゴと梨だとデータ的には有り得ます


出荷時季が違うからデス

こう言う想定もSE の作業になります

しっかり注意事項に記載していないとPG はコーダなので、知ってるコードで簡単に書いてしまいます


---


普通に使えそうなのは、こんな感じでしょうかネ

ぼちぼち、ポイントを押さえた感じで、

謎のページにアップしておきます



--- 2018-06-03 ---


<<住所、文字をキレイに表示>>

等角フォント


あいうえお

かきくけこ


な感じでキレイに印刷したい

的な関数ね


下関市しものせき町10-20

方書き300号室


的な!


入力=下関市、、、10-20△方書き300号室

印刷が上記


ルール=ブランク、空白△1つで区切りで改行

入力通りで、データ的に改行したまま

な感じ


これ、見つけたので、今度アップしておきます



--- 2018-06-04 --- 2018-06-04 のパック / 2018-06-10 Up

パックにも簡単な説明と、下記以外もいくつか入れてみました


<<四則演算>> 2018-06-04 のパック

普通に計算ロジックです

有効桁数に応じた切り上げ、切り捨て、四捨五入

思わぬ計算結果の違いが発生しない様に、未だにどこへ行っても自分で作ります

特にAccess の場合

Excel = RoundUp、RoundDown、Round、などと同様?



<<起動中のフォームかチェック>> 2018-06-04 のパック

これは、標準関数を更に共通化

例えば、サブ的フォームを開いていたら、メインを閉じた時に一緒に閉じる

Main=検索条件フォーム

Sub=検索結果一覧

条件が多い時などにメイン、サブ画面を分離します


更新した後に開いてる画面も一緒に再表示させた方が良い時などに使用

意外と使用頻度は高いです



<<表彰状の名前>> 2018-06-04 のパック

これルールが有る模様!

姓名、各5文字まで

計算すれば出来そうですが、面倒ニャので、ベタなコーディングです

が、テスト時は、間違いを発見しやすかったのでベタなまま

こんなルールが有るって知りませんでした

(^^);

年長者さま(ユーザ) にお聞きしました

(@_@)?



<<画面項目のクリア>> 2018-06-04 のパック

入力値をダブルクリックなどでクリアします

共通化させてます

ロジック=クリアのみ

テキスト、数値はOK、日付は駄目

デフォルト値(既定値) を入れるのも組みましたが、無理っぽい事が多く一部しか利用していません

クリアは、慣れると無くてはならない感じになります



--- 2018-06-11 ---


<<ふりがな 編集>>

標準ツールも有りますが、上手く出来ないのは分かってますョね

(^^)? 答え

同じ漢字で読み方が違う


これは、時代背景も有るので一律にするのは、そもそも無理ね

ms ちゃんはイケると思ってる様ですが、、、


ふりがな

指名


これを、1セルにキレイに出したい

(^^)?

意外とキレイ? 割りと良く使います


Access --> Excel ひな型に、少しロジックを追加するダケ

変数=セル位置だけです、次回アップ予定



<<セルの範囲指定>>

やっぱり、Range じゃなくて、

Cells で指定したい!


そんな時の、コーディングです

只の、書き方 講座


チト長いので、これも次回にアップします

解読するのに、結構、時間が掛かりました

頻繁に使用する事も無いですが、書き方だけなので!


いつも、このひな型で変数だけ変えております



<<クロス的な画面>> 2018-06-16

エクセルっぽい画面

資格、免許、表彰、備品、などです

これと、コレ、一緒にチェックしたい


エクセルに出力してフィルタやセルを変えてチェックする

Excel の良い所です

データベースは、クロス的な項目設定には殆どしません


例)

ITEM1=りんご

ITEM2=みかん

ITEM3=チョコ?


一見、便利そうですが、結局、それぞれに番号が必要です

結合する為

しかも位置が固定されてると?

りんごダケ抽出するのが大変な事も多いです

1レコードのサイズも大きくなります


通常は?

ITEM=商品コード


これを逆用して、クロス画面を作成します

一時、テーブルを作成、ローカル側です


これで、表示は可能ですネ

しかし、固定なのは、チョットね

で、、、

画面に、ITEM1、ITEM2、、、ITEM5


これをコンボでマスタ表示

更に、チェックボックスを付けます


これで、表示は最大5つの列

チェックON のみデータを抽出


このチェックON/OFF は無くても良いですが、

いつもチェックする項目は決まっているけど、

比較する項目は、違う場合に便利です


比較パターン=りんご、いちご

りんご、チョコ

車の免許、社内資格の車系

などです


画面で比較で、チョイ見なので、項目自体がスグ横列の方が確認し易いのです


他にも、小技が有りますが、工夫して見て下さい


これ出来ますか?

が、、、有ったら遠慮なくコメントへ

余程で無い限り?多分解決できると思います



---

Link な説明、ブログ内です



---

明日見むら

村長さんでした

(^^)/ Excel


タグ:access Excel VBA
nice!(7)  コメント(0) 

Access を快適に! 暫くココに気が付いた事を書き溜めます [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-07 ---


3度目のアタックチャンス?

(^^);

グルグルの開発サービスかも知れませんが、

so-net か?

相変わらず、この時間帯はカキコしちゃ駄目ね



--- 2018-06-04 ---


色んな、事を追記していきます

画面系を中心に!


(画面系)

<<画面を広く使いましょ>>

Form プロパティ

   PopUp = ON


(^^); これだけネ

アクセス自体を小っこくして下さい

で、フォームが画面全体で動かせます

広々ネ



<<フォームの中のサブフォーム>>

サブだから、サブフォームではござらんです

条件画面が1つのフォーム

一覧画面がもう一つ別フォーム

これ分離型ね


通常なサブフォームのカーソル移動

![Fsub].SetFocus

![Fsub].[Item1].SetFocus


2回するって事ね

因みに、VB は、1回でOK

上位な言語だから?



<<基本的には1画面>>

余程の事が無い限り、入力画面は1画面

スクロールなし、Tab も作らない



<<Codeゼロ>>

マスタなどにゼロを使う人が良くいます

私も使いますが、他の人とは意味が違います

必ず、1以上の整数値を使いましょう



<<モーダル、モードレス、システムモーダル>>

モードダル禁止、入力中に他の画面の確認が出来なくなります

もしもモーダルが必要だったら基本的な考え方が間違っています

システムモーダルとの違いも一応、知っておきましょう



<<入力は非連結>>

これも基本的な事

データベースに連結させてる人が殆どです

これだとExcel 以下です、そもそもな事が分かって無いからこう言う事が出来るのネ

何が駄目かは良く考えましょう



<<履歴な一覧入力>>

グリッド的な方法です

別途、ツールが売っていますが、普通の環境では購入出来ません、凄く高いし、似たものも標準搭載されていますが、極めていませんが使えるレベルでは無いです

どうするか?

一時テーブル入力用を作成し、ここで編集、その後、本番へコピーする



<<Option丸ポチ、トグル?>>

VB = 項目(x) 配列可能、Frame 範囲もOK

Access = 1つづつ


★回避方法

![Fxxx].Controls("項目" & ix) = "1234"


ix = 数値

項目名を、項目1、項目2、などにする


これは、レコードなどでも同じ

配列的参照は良く使います


Cells(x, y) な感じです


アタックチャンス?

(^^); お願い、保存



<<配列的チェックボックス>>


テーブルを作るな方法も有ります

レコードにNo、CheckBox、10個とか

サブフォーム表示、意外と楽チンSIM ね


注意点、DoCmd とかで、変更時保存をする

これが無いと、即保存とはなりません

意外とハマった物件情報(^^)?



<<項目の上に項目を重ねる>>


VB = 最前面で出来る

Access = 上手く画面の上に実行時は重ねられない


計算は、Height?、Width、で計算できます

一覧の上に重ねて、エクセルみたいに表示と入力が切り替えできる

メリットは、視覚的に入力可能


Access は、入力行を表示させ、非連結でチェックした後に行登録

これが1番、確実です

一覧に全ての項目を表示させる事は出来ないので!

エクセルみたいに全部表示させると見辛くなり一覧表示のメリットが無くなります


(^^); アタックチャンス?



<<フォームの起動時指定>> 2018-06-10

オプションに有ります

通常メニューは、SwichingBord


これ、ms 分は、小さ過ぎニャので、

左10個、右10個で加工して使ってます

フォーム、ロジックの配列変数だけ修正


他は、各フォーム画面の余ったところをダブルクリックでメニューが表示される様にしています


アクセスの場合、小さい画面にしても、それぞれがタスクバーに表示されません

小さくすると、メニューバーの文字も見えません

ニャので、結局、メニューは閉じる事が多いです


メニューを閉じると、ボタン表示で、各画面に付けるか、上記の方法か?になります

ボタンをそれぞれ配置するのは面倒なので、共通マクロを作って、そこでメニュー表示、フォームにダブルクリック時のイベントにマクロを指定するダケです


本格的に業務系を作るのであれば、メニューやフォームの最小化時の事も考えた方が良いです


ms が、もう少しフォームのバーを大きくすれば良いのですが、黒の組織が担当ニャので言っても意味が分からないと思いますので諦めています

(^^);

使える範囲で工夫して使う!ms 使用時の大原則です

期待しちゃ駄目って事です



<<MSGBOX のデフォルト>>

必ず、No、キャンセル、です

これ絶対です


セブンの人に多い傾向!

レジでお金を扱ってるのに、良く確認もせずに、

パ、ぱぁ〜ん、ってEnter Key 的なキーを叩く人がいます


業務も同じ

それがカッコイイと思ってる様です

必ず、間違えてエンターを叩いても、更新させない様にしましょう



<<Access からExcel へ>> 2018-06-11

アクセスから制御するエクセルのコードが分かりませんネ

これは、

Excel 側で、マクロの記録で確認します


必要な所だけをコーディング

注意点は、定数です

Excel は、エクセル用の定数なので、コード(数値) を直接数値で指定します


調べ方、F2 これで検索して下さい

コメントなどに転記しておけば後で、分かり易いです


因みに、

Shift F2 で、Call しているサブルーチンが参照できます

滅多に使いませんけどネ



<<画面の切替え>> 2018-06-14

![Fxxx].SetFocus


複数画面を表示していて、その画面も更新したい時

例えば、

一覧系の入力画面 --> ジャンルに特化した入力画面

の場合など


画面をモーダルにする人は、こう言う細かい作業が苦手な人ね、簡単に言うと面倒くさい

画面項目を削除 --> Insert、更新が確実で速いので!すると一覧画面が、Delete ???、みたいな感じになります


元画面をリクエリすれば良いですが、画面もセレクトして置きたい時などに使用します

別画面の時は、サブ画面的なので有れば無条件に

![Fxxx].ReQuery

これは、画面のクエリごと更新するので、最新になります


色々実験しましたが、無理な時は諦めた方が良いです

上手く出来ない的な例)

.Visible 切替え、フォーカスの関係で自爆する事も有る

.Select 系、Object 等どれも出来ない気がします

タイマで、最小化-->元に戻す

他、、、多数



<<Form 最小化時でも画面を元に戻す>>

これは、単純に、

DoCmd.Open Form xxx

で良いと思います

起動中でも問題ないです、起動チェックは不要



<<再表示後の画面位置>>

リクエリすると画面が初期状態になります

画面一覧の位置がトップになります

例えば、クエリのソートであいうえお順

リクエリ後は、あ になります、入力作業中は、か行です


これを回避するには、

レコード保存です、チェックボックス参照


この違いを理解できるまで検証しましょう

上手く出来ないケース、PC スペック的な部分な場合も有るので、その時は、別の方法か?諦める!


ナゼ、スペックかと言うと?

タスクの切り替えが速かったり、グラボの性能?って感じる事があるからです

高性能なPC が多いので、気にならない事が多いですが、古いPC でも単純入力は出来ますから、端末が複数ある方が便利な事もあります

そして古いPC も近くに置いてる!で、2つで作業、的な事

又は、

忙しい時だけ、古いPC で応援して貰う、など


ms 流の出来ない時は諦める!も必要です

でも、簡単に諦めてはダメです

大体は、解決できますので!


実践は?

例えば、分類コード順、商品コード毎に表示している

ソート順=分類、商品

分類コードは、画面制約上、非表示です


リクエリ前に、分類コードを退避(一時ワークへiX)

![分類].Visible = True

![分類].SetFocus

DoCmd.xxx iX サーチかファインドを使って下さい

![分類名].SetFocus

![分類].Visible = False


大体、こう言う流れです

DoCmd は、エラーが発生すると面倒なので、この前後あたりだけ、エラートラップしてた方が良いです

On Error ReSume Next... ★別途、記載参照


この後、入力フォームが別画面だとすると?

上記の画面切替えが必要になります


当然ですが、

画面をサーチする訳ですから、アクティブ状態で無いと動作しません

画面切換えが先に必要です

その後、戻す!


これも考え方で、登録ボタンを押したら?

自分の画面を閉じるのが、入力が楽なのか、

表示させたままの方が良いのかは、その時々で考えましょう

一律、閉じると不便な時が有ります

そう言う画面は、最初から、一覧画面に入力項目を作っておく方が良いです

レコード単位の処理なのに、サブ画面がイチイチ開くと入力作業に時間が掛かります


あの、1件の入力に5分かかるソフトと同じです



<<右側から画面が左へ戻らない>>

これは、右列にフォームの項目が隠れている場合です

沢山の項目が表示しきれないので、見えない位置にある

エクセルみたいな感じです


一旦、右側へ行ってしまうと?

画面を再表示させても、そのままだったりします

検索だけの画面だと、これはコレで便利です

表示項目の位置がズレないので!


でも、入力画面の一覧だと、

一応、右端の細かい方も確認はしますが、やはり、元の位置、左へ戻って欲しいです


当然、スクロールバーでユーザ側に戻して貰えば良いですが、、、多分、不便です

(^^)?


回避させるには?

左の端に、横スクロールさせる為だけの、テキストボックスを作ります


![ITEM1].Visible = True

![ITEM1].SetFocus

これだけネ(^^)


あとは、非表示にするだけです

上記の注意点も踏まえて、手順は確認しましょう



<<サブ画面付きのリサイズ>>

ReSize です

サブ画面は、自分で調整しないと出来ません


メイン画面の高さ、幅、

サブ画面の高さ、幅、で計算し、フッタなどと共に、プラスマイナスしましょう


これは、かなりイベントが発生するので、エラートラップは必須で!


難しくは無いですが、

コードが長いので、謎のページにアップ予定で!

ロジック自体は簡単です

フッタが有る時は、増減値は計算せずに、直接、変更しながらテストした方が早いです


VB は、普通だったと思いますが、VBA は、計算通りでは動作しなかったので、直接、数値を適当に変更しています

一度、合わせてしまえば、項目が増えて、サイズが変わらない限りは、修正する事は有りませんので!



<<画面のクルクル、更新一時停止>>

これも、適宜、使用しましょう

画面を更新しない方が、見た目も良いですし、処理もはやいです

が、、、更新的な事の場合は、メッセージを出したりする事が有れば、画面の更新はそのままが良いです


イベントでキャンセルを拾う時など!

DoEvents

をループに入れれば、拾えます


なるべく、1分以内で処理が完了する様に作りましょう

別途記載の台帳的なエクセルリンクだと、帳票自体がNo.xls なので、印刷も一覧画面から選択印刷が良いです


10件くらいならリンクを開いて、エクセルで印刷

閉じて、又、開く!

でも良いですが、100件だと、疲れますョ

(^^);

普通は、変更分、一括印刷だと、1000枚以上にはなると思いますので、頑張って作りましょう


ペーパーレスの時代ですが、

やはり大切な部分は、紙として持って置く方が良いかもネ

(^^)?

停電時でも見れますから!



(データベース系)

<<オートナンバ不要>>

確かに有ると便利な時も有りますが、不要

設計が間違えています



<<リレーショナル>>

不要、こう言う所を楽しようとすから動きが遅いSQL が発生します


私のAccess が、どのバージョンでも動作するのは、こう言う所を使わないからです



<<唯一、動作しなかった事象>>

win7、Office2010Pro

自らが重くなり過ぎて? メモリ不足な感じになりました

駄目OS の所以です

256メモリ、壊れかけPC のXP でさえ快適に動作してました


イベント待ちを解消させて終わり

DoEvents



<<レコード項目の記述の違い>>

多分、初めてだと?こう言う違いが分からないんですョね


SELECT [ITEM1] FROM TBL1 AS [MF]...

REC = OPEN ...


<ロジック>

REC![ITEM1]

REC("ITEM1")

REC(0)


<SQL 内>

[ITEM1]

[TBL1].[ITEM1]

[MF].[ITEM1]


これ全部、同じです

ロジックなREC(0)、多分、これが高速です

REC!("ITEM1")、きっとコレが遅い

普通が、最初の書き方ね、分かり易い


遅いと言っても、分かるレベルでは有りません

(0)=項目の順番、0〜 ネ、PCのアドレスはゼロから

アドレス参照的なので、考える事もなく、ソコ指せるのでPC も簡単なのです



<<SQL 条件文>> 2018-06-12

多分?多くの人が勘違いしてると思うのネ


ex) FLG=Boolean スペル合ってる?ON/OFF ね

WHERE [FLG1]

WHERE [FLG1] = True

WHERE [FLG1] = -1


どれも同じです

更に?


WHERE [ITEM1] = "りんご"

WHERE ([ITEM1] = "りんご") = True


これ同じネ!

条件文は、真True -1 が抜けるのです

イコール =、が抜けてる気がするかも知れません

が、、、ビミョ〜に意味が違います


ここ重要!

抜けるのは、真の条件で有ってイコールでは無い

True は省略可能な暗黙の了解!ニャのです


更に、

WHERE [FLG1] = False

WHERE NOT [FLG1]


は、同じ意味です


WHERE NZ([ITEM1], 777) = 777

WHERE ISNULL([ITEM1])

WHERE [ITEM1] IS NULL


これも同じ意味ね

NULL の時は、IS になります


WHERE NZ([ITEM1, 0) > 0

だったら?

入力ありの項目が抜けます


ゼロの用途が違います

っとカキコしたのを読みましたか?

ゼロは、例えば、外部からのインポートで、

通常であれば、文字列の りんご、みかん、が入ってるハズの分類的な項目が、未入力の場合に設定したりします


元々入っていませんでした

っと言う事ね

ユーザ側の登録では、分類は必須入力にします


しかし、

見ず知らずのシステムやエクセル加工では?

この様な事が普通に発生しています



<<クエリなどのOpen>> 2018-06-14

テーブルのレコードをレコードセットで開きます

この時点で、一時的にその時点のレコードを取得しています


なので、追加、変更が有っても、更新はされません

画面でクエリを指定しますが、これは、タイマ的に表示されます

速ければ、即反映、遅いと一定時間後です

その為に、画面の場合はリクエリが必要になります

即反映させたい為です★上述の項目参照


スクロールできるのは?

内部テーブルを持っている、なイメージが良いかも知れません

一旦、その時点の情報を内部で読み込むので、その後、変更したとしても内部テーブルの配列項目は変更されませんョね

レコードは更新されていますが、、、!


ここは、分かり辛い所かも知れません

納得いくまで、テストしましょう



<<違うテーブルだけど、一緒に合体>> 2018-06-16

これは、滅多に無いですが、台帳などではたまに有ります

帳票制限があるので、出来れば、この欄に一緒に表示したい

例)

資格情報と講習会の情報

国家資格的な物と内部的な資格


テーブルは別々ネ、多分そうかな?

分類コードで分ける場合も有りますが、

コレ結合させる時に意外と面倒です

例)

分類=1、国家資格

分類=2、内部資格

VBA などコードを書けば簡単ですが、

Access だと、結合コード1だけ結合が難しいケースが有ります

出来なくは無いですが、プライマリが複数あり、しかも、抜きたいコードが限定してる

意外と面倒、キーで無ければ良いのですが、、、


取り敢えず、結合です、△=半角空白

SELECT ITEM1, DATE1 FROM TBL1

UNION△

SELECT ITEM5, DATE5 FROM TBL5


項目数は最初に依存します

5個なら、次も、5個です


それぞれに、JOIN、WHERE 条件は指定できます

但し、ソート

ORDER BY

は注意が必要です


最初のテーブル名が、全体のSQL、テーブルのレコード名になります


なので、使える名称は、ITEM1、DATE1 です

この場合、ソートですが、違うテーブルなので、

キーと言っても重複する訳です


日付だけで、ソートで良いです

で、有れば簡単ですが、

TBL1、5、の順にしたい

又は、

同じ日付の時は、最初が1、次が5、にしておくと

キーがユニークなので、

帳票を作る毎に順番が変わってしまう事が無くなります


例)

SELECT 1 AS [SORT-KEY] ... FROM TBL1

UNION

SELECT 2 ... FROM TBL2


1、2、が自分が決めた順番です

更に、コードも一緒に付加したい

キーは、1000も絶対有り得ません!

ニャらば?


SELECT ITEM1 + 1000 AS [SORT-KEY]

ORDER BY [SORT-KEY]


又は、1番目なら、

ORDER BY 1


になります

慣れれば簡単ですが、マニュアル通りなのにエラーが出る!

書き方、下手ね?私のも(^^)?

まっ、自分が分かる書き方の人が書いた本を探すしか無いです

後は?自分で納得いくまで実験する!



他の方法は?件数が多ければ、キーだけ、一時テーブルに書き込んだ方が高速です

帳票作成用、ローカル側に作ります

サーバ側では有りません

人それぞれに、作れる様に、ローカルです



(その他諸々)

コードを書く場所、標準モジュール

クラスやイベント処理に書くのは、VB などの開発専用環境ね

ここを信じ過ぎると自爆する

更には、メンテナンス性も悪くなる

VB なども同じかナ

結局、自分が開発しているつもり?かも知れませんが、誰かが決めた環境下で、作ってるダケね

末端のユーザで有る事を忘れない事!

大元がコケたら自分もコケます、全く悪くないですが!



<<インデックスキー自動作成>> 2018-06-10

オプションに、ID、番号、などデフォルトが組む込まれています

絶対に、クリア(空白) にしておきましょう


これ、知らずにデータベースをあれコレ作っておりました

遅い、と言う事は無かったのですが、、、

重複キーとなり引っ掛かり、自分がボケていたのかと思い、全部を見直した経験が有ります

(^^);

要らないので! 他は、環境依存させない様に、なるべくデフォルトで使う様にしていますが、コレだけは絶対にハズします


例) 分類番号は重複します


---

明日見むら

村長さんでした

(^^)/ Access


タグ:access VBA
nice!(4)  コメント(0) 

Access Excel Report編 帳票作成方法、あれコレ!テクニック [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-12 ---


エクセルのレポート作成編ですョ

(^^)

一見、同じ様な事でも、ビミョ〜にカキコが違うので?

それぞれ読んで下ちゃい

同じ事、書いてる事もあるかも?ですが、、、


ここは、アレです

出来そうに無い!

って思われてる帳票のアドバイス的なテクニックです


上手く、応用して頂ければ、

エクセルしか使わない!

な、感じの意味が分かると思います


それと、どこかでカキコしてると思いますが、

テンプレで、エクセルバージョン指定して無いでしょ!

気が付きました?


アレは敢えて指定していません

どのバージョンでも動かす為ね

古いコードと言うのも同じです


新しい機能を数ステップ削るだけで、そのバージョンしか使えないソフトにしてしまうかが決まって来るのです


そう言う所の労力は惜しまない!

それと、ms Help などでは、バージョン指定の方が高速ですョ!

とは書いていますし、理論的には、そうだと思います

が、、、

検証しましたが、めっちゃ古い256M メモリのシングルCore でも、そんなに違いは有りませんでした

(^^);

まっ、キチンと組む方が、重要って事ね

体感的には、全く違いが分かりませんでした


---

(レポート作成編)


<<改ページ>>

絶対に、1ページ、20明細のレポートだとします

最初から、

20行分のエクセルを作れば良いです


ひな型は、1行のコピーで、データ分、貼り付けですが、

変数で、範囲指定が可能な様に加工して見て下さい


一応、コピペのペ、の部分だけ修正すれば、

1行のパターンと複数業のパターンが作れます


2つ有れば、かなりナ応用が効きますョ

更に?

この1ページの変数を?

エクセルひな型のシートに設定シートで取り込む様にしておけば、1ページ、20明細、縮小させるので、30明細

など、帳票作成時に適宜、修正可能です


アクセス側の画面で、コンボで指定でも良いかもデス

選択以外での入力可能なテキスト的なコンボね

好きに打てるので!


エクセル側だと、そこだけ教えておけば、アクセスを全く修正する必要は有りません


ex) エクセル設定シート

1ページ目のスタート行位置、明細数、終わりの位置(フッターをエクセルシート側で印刷する時など)

2ページ目以降、上記と同様

こんな感じかナ


ページ数=件数 / ページ明細数、切り上げ

1ページ目と2ページ目のタイトル部分が違うケースが多いと思うので、2ページ分、作る想定です


普通に、ページ設定で可能な感じの作りだと?

1ページ目も2ページ目以降も同じニャので、

ページ計算も更に楽です


エクセルで!

の設定は、アクセス側に余りに複雑な設定項目があると?

ユーザ側が迷ってしまうからデス

使えるレベルの人だけ用に、出来ない事は無いですョ!

的な方が分かり易いです


結局、スキルに依るので、敢えて縮小など想定する必要は無い!って事ね


エクセルに出力するメリットは?

プリンタに依る、余白調整が出来るからです

固定にしちゃった、2枚でる?空白用紙!

これが無くなります

黒の組織は、無理ニャので、諦めましょう

(^^);



<<分類で改ページ>>

これも、よく有るパターンですネ

どうします?

先程のを更に、細かく計算しながら制御しますか?

(^^)?


面倒ニャので止めましょう!


シートで分割で良いでは無いですか?

リンゴのシート

みかんのシート

イチゴのシート


解決ね(^^)



<<小計、合計の印刷>>

これも良くあるパターンです

面倒な、クロスな感じをSQL で実行しますか?

キット上手くいきません


そもそも遅くなるし、

自爆した時に、バグを発見し辛くなります


では、どうするの?

一時的な帳票専用のテーブルを作れば解決ね


分類的なコードを持たせ、

例えば)

10 = 未集計のそのままデータ

20 = 日付単位の集計後のデータ

80 = 月別合計

90 = 年合計

など


こう言う感じで、上手くソートできる様に考えます

帳票作成前に、

一括SQL で、ドカン!

っと作れば、印刷は楽チンSIM ね

一括更新のSQL、

利点はコレだけと言っても過言では有りません

納得いくまで、実験しましょう



取り敢えずは、こんな感じで、ほぼアクセスのレポート機能は必要ないです

一見、良さ気なレポート機能ですが、結構、振り回されますョ


一応な感じで、突破しておりますが、

エクセルの方が、簡単で修正し易いです

何より、プリンタが違っても余白調整も出来ますし、

エクセルなので、更に、セルに何かを書いても良いのデスからネ


アクセスレポート系では、

抽出、作成後の加工は当然できません

エクセルならでは、な便利な部分は最大限、活用しましょう


コレっ!

って感じを思い出したら、追記します



<<台帳な感じの個別帳票>>


これも多いです

例えば)

人の履歴、商品の履歴、資産の履歴


こう言うものは、1Book で出力します

専用フォルダで、機械の番号でBook を作成します

名前が分からないので、番号だけだと困りますネ


ニャらば、

入力、一覧画面などに表示可能な、テーブル項目

ハイパーリンクで良いのダョ


簡単ね、ルールが決まっていれば、後から更新する事も可能です


注意点は?

ユーザちゃんが、ニャぜか、エクセルを触ると?

データベースが変更される!

っと思う様です(^^);


スキルに依るのネ

ただのエクセルなので、変更しても変わらない

変更するのは、アクセスの入力画面から!


不思議ですが、ホントに多いので!

(^^);

それエクセルなので、そっち変えてもデータベースは変わりませんョ

(^^)?

ホントの本当!のお話しです



<<クロス的な帳票>> 2018-06-16

1行目、1列目、それぞれに数値のコードを指定します

これだけです

(^^)?

CountIf で、集計します


集計キーは? 複合文字列

例)

商品コード & - & 支払先コード


どちらも、数値なので、- で区切り


集計キー

例)

1-1001

*-1001

1-*


米印のワイルドキーが使えます

ワイルドキーは、使える関数とそうで無いのが有るので確認しましょ


拡張型の、CountIfS ?

沢山、条件が指定できる関数ですが、

使わない!

どこかのバージョンで追加されましたが、

こう言う機能を安易に使うので、他のPC、別の会社

などで、使えなくなりエラーがセルに表示されます


使わなくても、集計キーを合体させれば、集計可能です


Access と連動させれば、想定範囲の件数ニャらば、集計範囲を指定できます


集計範囲=名前の管理?

これで、名前と範囲を設定しておけば、

仮に1000件の想定で有っても、

簡単に2000件に変更できます

参照範囲を変えるダケね


---

明日見むら

村長さんでした

(^^)/ Excel Report


nice!(3)  コメント(0) 

Access などの関数全般、注意事項(^^) エラー回避? [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-12 ---


四則演算

ゼロ除算、エラーが発生しますョね


他のも、そうですが、、、


エラートラップ回避

Error Resume Next


エラー表示へ戻す

Error GoTo 0


これ、テストや絶対にエラーが発生するケースが想定される場合は、コレでも良いです

テスト中とかネ


しかし、

一律、入れてる人も居ます

これは流石に止めましょう



例えば、四則演算です

ゼロ除算をトラップすると?

普通は、計算不能ニャので、ゼロを返す以外ありません


しかし、

そのゼロ自体がオカシイとしたら?どうですか?


自分のロジック、分母が間違えてる!

可能性も有る訳です

(^^);

個別の処理で、エラー回避でゼロ除算の回避ならば、それで良いですが、共通モジュール部分では、エラーが出た方が良いのです


特に、演算系だと、正確なルールの基に計算したい訳です

こう言うのは、

お金、財務省的な数値、税金なども、そうですネ


計算自体が間違っていて、エラーも出ない

完全に全ての条件でテストがいつも出来れば良いですが、

そうも行きません

勘違いも有りますからネ


そう言う意味で敢えてエラーを回避しません

作成直後のテストの時は、エラーが出やすいので、トラップするのは良いですが、テストが終わったら、必ず、エラーが発生する様にした方が良いです


Access 程度なので、重要な事はしませんョ

で、有れば、それも良いですが、

元々エラーが発生するのは、何かが間違ってる可能性が有りますので、安易に停止させない様にしましょう


エラーが出ないのが普通なのです

(^^)


な、、、感じのスタンスで作成しております

簡単な、注意事項でした



---

明日見むら

村長さんでした

(^^)/ VBA


nice!(2)  コメント(0) 

XY座標な参照値?のお話しネ、どうしてゼロ〜、何故1〜 な素朴な疑問? [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-09 ---


先ほど追記してましたが、そこへは長くなりそうなので!


ユーザさんからすると?

不思議ちゃん?

(^^)?

まっ、ソフト屋さんでも不思議ちゃん?な事もありますが、、、


素朴な疑問

どうして1〜では無くて?ゼロからですか?

項目0、項目1、、、


まっ!こう言うのは、設計さんの問題です

ソフト屋さんが分かれば良いお話しです

が、、、

コレ直接、編集させる?

的な事があるでしょ

最近は?


アクセスで、メンテさせたり、EUC なるヘンテコ名で操作させたり、、、


普通は見る事が無いデータベースの構造を見る事も多くなりました

(^^)?

良いのかコレで?

壊れたら?知りませんョ?

的な?


で、、、

項目ゼロ、項目(0)

そう言う感じネ


ユーザさんがコレ見ると?

1からの方が、分かり易いのネ

連番振ってる時点で、1〜20 とかおなじ名前で有ったりします


何故ゼロか?


ex) 100m 走

よぉ〜い、ドン!

ゴール?


もし、1〜だったら?

99m 走です


違いは分かりますョね

行っても居ない場書をイキナリ指して、1ですか?

1m先は1です

今、ここは?ゼロ地点

まっ、そう言う事ね


HDD の容量が少ない!

これもある意味同じです?

人が何かをする時は、10進数の方が分かり易いからです


例えば、チップ1つが1G です

100個つければ、100G ね

これ、正確に?

2進数的表現で、製造とか市場に出たら?

100G 付けたいとする?

1024M だから?チップは、102?103個?

(^^)?

ってなりますョ


しかもコンピュータが2進数なので?

言うなれば?

ms が悪い!っとなる訳です


一般人に使わせるなら、10進数の表記で良いのデス?

それホント?

ユーザさん、専門家ではござらんです


見る人が見れば、2進数の方が便利なのです

例えば、ディスク障害

コンピュータは2進数なので、そのbit の位置が分かれば、そこさえ触れない様にできるとしたら、HDD は正常稼働できますョ


腐ったリンゴのクサった所を食べません

お腹こわすので!

な感じの作業が有ります


普通の人は、そう言う事しないでしょ?

で、、、

参考程度に知っておいて貰えれば良い情報を

絶対コレ、何か変、不良品?

ってなる訳ね


これキチンと勉強しないと意味が分かりません

黒の組織が正にソレ!


ニャので、ゼロの違いや、10進数の表記の違いの意味が分からないのです


確かに、このケースだと、1〜 に出来ますが、

プログラムに書いてる時に、

これを配列に保管して、あ〜ダ、こ〜ダ、な処理も有ります

この時に、同じゼロから配列の方が確認し易いです


コレも、配列(1 to 2) だったかナ?

忘れましたが出来ます

VB だと、配列そのものを、1〜 表記なオプションも有ります

1行目にコードを書けば!


ですが、そもそもコンピュータは、そう言う物で、そう言うコードを普通に書いています


自分が遊んでる程度で有れば、1〜だろうが、2〜で有ろうが好きにヤっちゃて下さい


でもネ、一般の人に触れさせるソフトだと?

そのひとが書いたコードだけが、1〜だと非常に分かり辛いのです

バグ発見する時です

修正も同じです


3番目の項目と思っていたら?

4番目?

これ、どのコードで書いてるか、イチイチ確認しないとイケません

非常に複雑、逆に面倒くさいです



そもそも的な事を言いますと?

それぞれの分野の専門家さんが居た訳ね

ソフト屋さん、修理屋さん、ネットワーク屋さん、使うの教える人

イロイロね


で、、、

普通の人は、別々なモノも一緒に、コンピュータって括ります


エクセルの事を聞かれます

確かに普通の人よりは、知っていそうな気がするかも知れませんが、私の場合、バージョンアップはしないので、製品は変われど使い方は、余程の事が無い限り機能アップはいたしません


更に言えば、普通のユーザさんの方が、色んな機能を知っています

ようは使い方なので、そうしなくてもコレで十分、面倒くさくも無いですョ、な使い方しか覚えていません

必要十分、って事です



話し戻って、

コンピュータの括りが余りにも大きいのに1つで括るから話しが出来なくなるんデス


全部の仕組みが分かる人だと良いですョ

でも、そんな人、絶対に居ないので!


自分の分かる範囲の事は知っています

でも、それ専門の人に比べたら?

お子ちゃま程度の事ですョ


プリンタのネットワーク接続などもそうですネ

プリンタの知識が有ってもネットワーク接続は上手く行かない事が多いです


それを回避する為か?分かりませんが、色んなソフトが同梱されています

それ無いと繋がりません!

みたいな感じネ


キチンとIP 設定すれば終わりなダケなのに、IP が分からない人がネットワークプリンタで使おうとするから、余計に面倒になるのです

で、、、

結局、繋がらない!

ソフトのバグかwn か、PC 設定自体が変か?イロイロです

逆に複雑にさせています

分かってる人からすると!



な、、、感じで、ちと長くなりました

座標、レコード、等も書こうと思いましたが、

また、いつか、機会が有れば?


っと言う事で!

(^^);

スマホにゃので、指が疲れました



---

明日見むら

村長さんでした

(^^)/ x y

タグ:XY 座標
nice!(2)  コメント(0) 

Access VBA 的な? 補足です(^^)? 謎のページ 補足 [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-04 ---


は、は、は、?

的な?

ワードに入れて見ました

登録されるかなぁ〜〜〜

(^^)?

検索Go はほぼ皆無!

ニャので自分で遊んでるダケなのです

(^^)?



謎のページの? 6/3 Up 分

(補足)

Range は、関数にコピペだけ

標準マクロにコピーして下され!


使い方も、テキスト上に書いているので、多分、分かると思います


---

チェックでまる印

これは、マクロ有りのエクセルです

マクロ使うョ!

で、動作します


チェックボックスのON/OFF ね

意外と楽しい?


参考までにと思った、■、□、の切り替えは?

入れるの忘れました

(^^);


簡単に説明すると?

エクセルのセルに、

IF(A10="1", "■", "□")

です

マクロ不要ね!



四角なセルに、点線罫線は、マクロになります

上と似た感じで、

データが有れば、四角を書きます

バグかOffice のアップデートがされていない為か分かりませんが、セルオブジェクトの参照で、動作させるのは上手く出来ない事があるので、直接マクロから参照させた方が良いです


例えば?

受け渡しのパラメータ=1、A1 セルの書式を触る

=2、A5 セルの書式を触る

な感じネ


当然、マクロの中での、Range、Cells(y, x)、は共通化できます

Range でコードを書きたい人は?

Range 変換のマクロも参考にして下さい



もう1つの選んだら?表示する

は、チョコ履歴ですが、

チョコだけで無く、リンゴ、みかん、いちご、など

種類も選べるコンボでも良いのダョ

大体、考え方は同じなので挑戦して見てネ

上手く出来なかったら、コメントへ


複数な選択は?少し難しい?

方法論はイロイロね、1つじゃ無いです

答えを見れば、そういう事か!っと思うハズ

そう言う思考になれば、もう無敵のガンダムなのョ

(^^)?

ある意味、JP POST も同じ事です

まっ!少し考えて下ちゃい、簡単です

楽ちんSIM で無かったら?間違いでは無いですが、正しい!とは言えないかもネ

スピード編 も読んで下さい

私が組むから速い?じゃ無いので!考え方、基本が大切、それだけネ



他は?

Access で組む形なので、ひな型自体は簡単ですが、

ひな型だとテストし辛いので、

具体的なご要望が有れば作ってみます


元ネタは有るので、完璧バージョンでは無くて、なんちゃってバージョンなので、それなりに使う事、作るのも簡単です


キッちり業務系となんちゃてVer.は、なんちゃっては、バグを作ろうと滅茶苦茶すれば、上手く動きません?

かもネ

な感じです

普通に使って貰えれば、普通に動きます


そんな感じです

当然、キリっ!な作りもできます

要は開発時間が違う!って事です


多分、使う側は、何が違うか分かりません

(^^)?



な、、、感じで!

予約な投稿に再挑戦!なカキコでございます

予約だよぉ〜(^^)



---

明日見むら

村長さんでした

(^^)/ TekiNa


タグ:access VBA 的な?
nice!(1)  コメント(0) 

SQL プログラミングの高速化(^^) 考え方編 ウンチクね [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-03 ---


意外とネ(^^); 予約投稿は難しいのダ

慣れてる人は簡単なのネ

それと同じな、スピードアップなお話しデス



例えば、ソート、関数、で遅くなる

Format してから抽出は、パフォーマンスが悪くなる

的な、ウンチク言ってる人もいます


確かにそうデス

しかし、高級言語しか触った事が無いからそう思うのョね

そのレベルでは無いのダョ


あの2進数の問題解きました?

アセンブラで、めっちゃ修正しましてチト怒られ気味でした私ですが、、、

それでも、ひと目、難解で放置した物件なのネ


あれな感じのレベルです

ステップ数(文書の行です) も最小なチョ〜高効率なロジックです


高級言語な方が気にするレベルではございません

それを気にするのなら?

それ以外を見直した方が簡単に高速化できます

(^^) キッパリ!



次は初歩的な事ね

読込み処理が1番速いと言いました

これには訳が有りまして、HDD な時代から、1件読んでるつもりでも、実際はブロック単位な塊で読まれています


1件読めば、10件読んでる!そう言う感じ

2件目以降はアドレス参照のみ

メモリ上に展開されていれば、11件目までは、HDD にアクセスしません

っと、言う事は?

速いと言う事です


ネットのオプションで良く見る先読みしますか?のアレね

古いPC だと、そう言う記述や、アロケーション(ファイルを新規作成する事です) で指定が出来たりします


データベースは、そう言う事も継承しつつデフォルトでそう言う仕組みになってると思われます

なので、高速ネ


っと言う事は?

データベースに書き込む時に、自分が読みたい、プライマリなキー順に、明示的に並べて上げれば必然的に高速化されます


こう言うのは、ハード屋さんの領域でも有るので、疑ったりする所では有りません

コンピュータの基本な所、OS 部分なお話し?な感じです

ここのお仕事をされているので有れば、もっとキチンと知らないとイケませんが、普通のプログラマが高級言語(VBA などの事です)を使っていて知るレベルのお話しでも有りません

時間があれば、書籍などを読むのは良いと思いますが、、、有るかは不明!


っと言う事は?

順次処理、シーケンシャルが1番速いのです

ソート(並べ替え) して読み込むのが効率的なら

最初からORDER BY で書き込む際に並べておけば良いのです



例えば、条件分岐

ある女性誌でアンケートを取りました

集計するのは、一括クエリでは難しそう(実は可能です)

1件づつ処理して複雑な条件をまとめた集計値が欲しいとします

例えば、アンアン


どうするのが適切か?

別に何も考えなければ来たまま1件づつですネ


ターゲット=20〜30代?

キャンキャン=10代中心?

アゲハ=ミドルな感じでしょうか?


前提条件は出ています

例えば?集計するのに、性別は必要です

どれから条件?


(答え)

性別=女性、その他、男性、の順

年齢別=20代、30代(ここまでは適宜)、10代、40代、、、

な想定が正しいと思われます


女性誌なので、女性が圧倒的に多いハズ

次が答えたくない

次が男性、ゼロじゃ無いです、必ず見る人は居ます


年齢別も同様です

仮に、条件を1つ1秒で計算して見て下さい


何も考えずに、

男性、女性、それ以外

10歳未満、10代、20代、30代、、、


計算しなくても少し順序を変えるだけで、どれだけ効率が上がるか分かるでしょ

(^^)?



先程できると言った一括処理です

一旦、中間ファイルへ分類と共に書き込めば、簡単にGroup By で集計できます


件数がそれなりならば、中間ファイル無しに、一時クエリを作ればできます



年齢別で、プログラムの内部テーブルを使用するとしましょう

Dim wAgeCnt(10) As Long


カウント wAgeCnt(x)

x=年齢/10 で格納できます、10=110歳以上ニャので考慮する必要は無いですが、ロジック的に、Else が、(10)になる様にすれば問題ないです


これでも良く見かけるのが、いちいち(1)、(2)、(3)、と計算させてるコーディングです

無駄ですネ

割って、参照、それで終わりです



ざっくりデスが、こう言う思考をする様で無ければ、SE とは言えません

ってか、コーディングレベルなので、それなりの所では敢えて書く必要は無いのです

以前、プログラマはコーダーです、って言いました

これ、もし書いていないと、普通の所だと、とんでも無く非効率な処理を書く人が多いです


業界な高速処理のお話しを読んで頂ければ分かると思います

ホント、駄目な人、多いので!



これからプログラミングを勉強したい!

っと思うので有れば、

作れば動く!な方から入るのでは無く、キチンとした基本から学ぶべきです


思考が固まってからでは、中々修正は効きません

出来ないクセに?頑固者?

って陰口、叩かれますョ

(^^);



面倒でも、処理をお絵かき、そして又、考える

が、、、

大事だと思います


慣れて来ると、お絵かきが、頭の中だけで出来る様になりますので!


急がば回れ!

近道なんて無いのダョ


な、、、アドバイス的な、お話しでした




---

明日見むら

村長さんでした

(^^)/ SpeedUp?


タグ:高速化 VBA SQL
nice!(1)  コメント(0) 

やっぱりネ(^^); SQL 笑えました [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-01 ---


どこの誰かは分かりませんが?

やっぱりネ

(^^);


それを見て、思わず笑ってしまいました


#2018/06/01 0:0:0#


抽出条件ですが、

これ変換の書式なのネ


日付であっても実際は?

実数タイプでございます

それは、文字列ネ


違いが、そもそも分かっていない様です

コンピュータは、ゼロ、イチ

ある意味、数値しか無いのだョ


パフォーマンスも、、、

嫌、もっとキチンと話すと長くなるので

これ以上は申しません

(^^)?


多分、そもそも的な所から、間違えている様です

(^^)??

素人さんでは無い様ですので、、、


どうなんデスかね

(^^)??? アレっ?


良いのか日本?


---

明日見むら

村長さんでした

(^^)/ SQL

nice!(3)  コメント(0) 

Access SQL な不具合(^^); こんな事しちゃダメだから! PCトラブル [なんちゃって EXCEL ACCESS VBA]


--- 2018-06-01 ---


PCトラブル(^^); 原因は?


もう1年以上は前の、ある日の出来事

自前のネットワークが管理されてて

上手く作業できません

な、環境は有りますネ


部署ごとは繋がるけれど、他部門はダメ!とか

有るには有っても、PC が離れた場所で、使うの面倒

な感じネ(^^);


さすれば、メールで良かろうモン(博多弁)

担当部署には、入力と簡単な提出帳票

データは、まとめて管理している部署へデータ添付


これで、オフラインな環境のLAN でも、OK

繋がってなくてもOK

ネットじゃないのでデータもほぼ安全!


で、、、

作っております.com


で、、、何故に?

昨日までは動いてた!模様?

何か変だし、エラーが出るとの事

エラーをテキストか画像で送って貰うと?

SQL の訳わかんないです、構文エラー?

な感じ?


バグなのか?

でも、こっちは動きます

他部門も動いてる模様!

???

以前、古いバージョンを使っていた事が有ったのを思い出し、メニューに付けてるバージョン代わりの日付を確認

合ってるし、、、?

(^^)?


原因不明

PC が(Windows) 壊れかけ?

色々有るので取り敢えず持って来て頂く事に!


まっ!バージョン確認も凄いでしょ

(^^);

新しいのセットアップしてるのに、ワザワザ古いの使うんだから!

(^^)?

そのスグ隣には、新型フォルダが有りました


Access の良い所で有り、悪い所です

コピーで使えるので、

作る人は、メニューの上にでも表示させてた方が良いです

標準SwitchingBord のデータベースに打ち込むダケね


で、、?本題の事象?

本当だ!

何故か、このPC だけエラーが出ます


新しくコピーしたAccess でもエラーになります

仕方ないので、

PC の設定部署へ再インストール的なコピーを依頼しようかと思っておりました

(^^)?

電源OFF

(^^)??

アレっ!

(^^)???

何か見えたし、、、


もう一度、電源ON

タスクバーの日付を確認!


和暦だし(^^);

しかもエクセルみたいに編集してるし、?、

(^^);;


ヘンテコ日付 --> 西暦 へ

通常通りに戻しました


再起動(OFF --> ON)


Access 実行

普通に帳票もエクセルで出ました

(^^);


原因は?

認識できないシステム日付

なのでした




誰が和暦でカスタマイズしたのか分かりませんが、

2日くらい潰れました

(^^);

やってくれます.com


こんな事、しちゃ、ダメ、だから!

(^^);;;

コラっ! なオチの巻



---

明日見むら

村長さんでした

(^^)/ Time

nice!(2)  コメント(0) 

計算順、ソート順、boolean ON/OFF の値はネ(^^)? SQL [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-30 ---


Boolean ON/OFF の値はネ?

OFF = 0 = False = 偽

ON = -1 = True  = 真


Sort 順に指定すると?

-1 ON = True

 が最初に来ます



同じ条件だったとして、目視で確認

どちらかを上の順位にしたい時などに使用します


例えば、同じ100点の人が居たとします

A さん、B さん


A さん、B さんの横にチェックボックスを付けてると?

B さん、チェック


これをソートキーに入れておくと?

B --> A の順番です


どうして、値は、-1、なのか?

こう言う理由が有るのです


逆に、ON を後ろにしたい場合は?

ABS(チェック項目)


★ -チェック項目 でもイケたと思います

   又は、チェック項目 x -1


となります

中々良くできております

Boolea


---


コンピュータの有効桁数=16桁

大型な特別高いVer.では、32桁まで有ります


通常は必要ないですが、

掛けたりすると一時的に桁溢れになり、頭のケタが落ちてしまいます


意外と落とし穴なのネ

(^^);


演算の基本は、

先ずは、✕ 掛ける

その後、÷ 割る


これが基本でございます

有効桁数の問題です

問題なく処理させるには、この順番です


頭落ちしたら、スグに気が付きますが、

小数点以下は気が付きにくいです


この順番は、考える事では有りません

この順番自体を覚えてコードを書きましょう


例) 面倒なので、有効桁数4桁とします

100 / 30 = 3.333

3.333 x 30 = 99.99


100 x 30 = 3000

3000 / 30 = 100


違いは分かりますョね

内部的には、こうなる可能性が出てきます


特に細かい% パーセント

売価の算出方法などです


この例だと四捨五入で切り上がり100 ですが、

上手く行かないケースが有るのも分かりますョね


計算方法にも順番が有るのです




---

明日見むら

村長さんでした

(^^)/ boolean

nice!(5)  コメント(0) 

VBA Access で使えるExcel Range セル変換(^^)? 作っております [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-29 ---


Access から帳票出力

最近は、便利でございます


昨年だったか、エクセルで自前なグラフをセルで作りまして、

その時に、

列のコピーが、どうしても出来なくて?


セル名の列変換を作りました

(^^);


行は、コピーできますが、

列は、Range で無いと多分、上手くコピー出来ません?


程々に頑張りましたが、無理と判断

関数作ったのでございます


列数の数値を入れると、ABC に変換するダケ!

意外と、難しかったのネ


ふと?

思い出しましたので、

今度の週末にでもアップします

(^^);


謎なページをご利用下ちゃい

週末まで、待っててねぇ〜〜〜


--- 2018-06-03 ---

謎のページへアップしました

(=^.^=) <--- 謎の Link です


---

明日見むら

村長さんでした

(^^)/ Excel Range


nice!(6)  コメント(0) 

Form 編、入力時の背景色を変えたいの!(^^) 出来ますョ [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-29 ---


最近では、殆ど見なくなりました

(^^);

以前は、見た気もしますが、、、

自分のソフトだけかもネ

(^^)



(Form) フォーム って読みます

ユニフォームと同じネ

PC なので、画面の事です


似たようなモノでは?

Skin 皮膚、肌、?(^^)? 外国の人って不思議?ちゃん



では、本題

入力してる最中に、今どこに?カーソル有るの?


カーソル=マウスポインタ な感じ

入力しようとしてるBOX などです


点滅しますが、小っこいです

パッと見、分かり辛いです


さすれば、どうするのじゃぁぁぁ〜?

諦める?

(^^)?


それも有りかもネ

(^^)??



基本的には入力は、テキストボックスになります

これに、背景色を付ければ解決ネ

(^^)v


カーソルが有る時に、背景色が、

白 --> 薄い黄色、薄いピンク

だったら、視覚的に分かり易いです


エラーの時に、エラーって赤くしてるソフトは見た事ありますが、、、

(^^);

だったら、全部やれョ!

的な?



先ずは、テキストボックスを選択します

上のゴチャごちゃアイコンで、

背景色の指定が有ります


色を付けましょ?

デフォルトは良く分からないので、タブ切り替えて、

まる● な色いろから薄い黄色を選択します

OK


変わりましたか?

そして、更に、透明に戻します!


これダケね!


これAccess なる物体が、どこもまで動くものなのじゃ?

って検証してる時に気が付きました

(^^); 偶然ネ


これをプログラムでやろうとすると?

イベント フォーカス来た時点

Got_Focus でヤらないとイケません


当然、色を付けるので、消さないと!

Lost_Focus も必要


共通化も出来ますが、

気軽にやると、

別の動作にも影響します


結局、項目ごとに個別に!

が、1番確実ですが、

ニャンコ言っても、項目数が多いのョ!


断念してる人は殆どコレね

(^^);

そんな事くらいで、大変過ぎな事したくない!!!

な感じネ


私がチョット触ったくらいで気が付く位なので、

諦めるの、早過ぎです

(^^);

まっ!黒の組織にゃのデ!



(使い方)

にゃ〜〜〜んにも有りません

TAB KEY でカーソルを移動して見てネ

(^^)

は、は、は、?

凄く簡単なのダ!


しかも、雛形1つ作っとけば、

次からは、それをコピーするだけ!


しかも、、?

先程、エラーの赤のお話しをしましたが、

そこへ、カーソルを飛ばしてやると?

色が付くのだ!

メッセージようのボックスを用意しとけば、そこへ、メッセージを書くだけネ


メッセージBOX ではござらんです

キチンとテキストBOX で、目立つ様に、背景色は薄いピンクを作っておくのだョ!

さすれば、

長いメッセージでも、実行時のログ(印刷時の処理時間など) 表示できて便利なの!


カーソル飛ばすは?

xxx.SetFocus

これだけネ!


エラーは一度に反転させれば良いけれど、

それ入力担当者が慣れて来るので、

実際は、1つづつセットフォーカスしても問題ないです


こう言う所を省略するのョ

大事な所は省略しない

これも、ユーザさんにアレこれ聞いていれば何れ分かります


SE な、お仕事ネ


ちょっとした事で、随分、使いやすくなると思いませんか?

(^^)?



---

明日見むら

村長さんでした

(^^)/ Form


タグ:access Form
nice!(3)  コメント(0) 

ついでなので(^^) SQL Query 作成のヒント、画面に表示 [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-29 ---


爆睡しておりました(^^);


こんな時間から起きちゃうので眠くなるのネ

(^^); 反省


暫くは、眠れそうに無いので、カキコしちゃう?

(^^)



ひと口にプログラムと言っても奥が深いのネ

で、、、

良く聞く言葉が、Access はネぇ〜?

なのデス

確かに皆さんが目にするアプリケーションは残念なのが多いです

それは、黒の組織が作ったソフトだからなのダョ

(^^)?



取り敢えず入力は置いといて、

入力されたデータを

ある条件に基づいて表示したい!


普通は、そうですネ

データは?

入力したら、表示し、印刷するから意味が有ります


入力したデータだけでは、それはデータが存在するだけで、自己満足以外の何物でも有りません

目に触れないのですから!


では、データを抽出するには、どうしましょ?

それが、Query クエリ って読みます


Access、SQL Server のツールでも同様の事が簡単にできます

しかし、SQL Server は個人使用では重いし、それなりの知識が必要になります

まず、起動させるのは、どのソフトか分かんないでしょ

っと言う事で?

簡易ツールなAccess の方が便利なのです


この抽出する、させるポイントだけを覚えておけば、

全く違う業務用のデータベース、

EUC ツールと良く呼んでいるみたいですが、これを操作する時も何となくデータの抜き方や操作方法が分かってきます

この何となく触れる!

この領域になるには、それなりの努力やカンが必要です

何でもかんでも人に聞けば教えて貰えますが、

一度でもホントに困った!

あれコレやって見たけど上手くいかなかった

そして誰かに聞いてみた!

そうすると、二度と忘れる事は有りません


聞けば分かる程度の事と、

忘れてはイケない事の違いは肌で感じるまで実践しましょ


いずれ分かって来ます

(^^)

ちとウンチクが長くなりましたが、、、



(ヒント)

抽出するとは言いましたが、

抜きたい項目は何でしょうか?


たまたま、JP POST の住所録をデータベース化しておりますので、それを例に!


郵便番号を探したい!


住所の何がしかが分かれば表示できます


検索項目の入力BOX=住所です

住所とは言いましたが、

県名、市町村名、などあります


JP POST も別れています

郵便番号と市町村を分かりやすく管理したいからです


しかし、これを個別に検索BOX を作ると、

都道府県、市名、町名、丁名、、、

分類されてたりすると入力する側が面倒です


1つのBOX で検索できれば、入力する側は、いつも1つのBOX に文字を入力すれば良いです


元々結合されていれば良いですが、分離されていたら?


(答え)

既に書いていますネ、結合

そう別々なら、くっつけちゃえば良いのです



(クエリ)

データの抽出項目

テーブルの、都道府県 & 市名 & 町名 & 丁名


抽出条件は、画面入力BOX をBOX として書いてみます

LIKE ”*” & BOX & ”*”


これだけネ、とっても簡単!

LIKE は、曖昧な検索、それっぽい検索な事

逆にスバリは、= イコールになります、= は省略可です


* コメ印は前回のワイルドカード

ワイルドカードは、トランプの何でもOK なババです

前後に入れているのは、入力BOX の文字の前後は何でもOK って事になります


入力BOX=下関、だったら?

下関と名の付く住所が全部でてきます


入力BOX=山口県、だったら?

県名の上には文字が有りませんが、山口県が全部でてきます


入力BOX=二丁目、だったら?

二丁目が全部です


これだと、検索する人がいちいち入力BOX を変えなくても良いですネ

こう言う一つひとつ、が使い易いかどうかが決まってきます


こう言う考え方が設計なのです

なので、設計する人、作る人に依ると言う事ネ

もう少し言えば、設計するSE が素人さんでも、

実際に作るのはPG プログラマです

この人が設計書がアバウトで明記されていなければ、

気を利かして、上記な作りにします

が、、、

そう言う人は滅多にいません

前回も言いましたが、

今プログラマと言ってる人は、残念ながらコーダです

機械の言語が書ける人

考えて作れる人では無いのダョ!



(応用編)

応用あるの?

有りますョ(^^)?

こう言う所をそのまま便利だ!ってコレだけマル覚えするのと、もう少し便利にならないか?

っと思うのは随分、違います


先輩の指導を疑わない!事と、もっと便利に!は意味が違います

応用できる事は、応用します



画面が、小さすぎて検索BOX すら増やしたく無い!

でも、郵便番号でも表示させたい!

どうですか?

先程の項目に、郵便番号を付加すれば良いです


この時も、郵便番号は数値です

750-1234 こう言う形式が良いのか、7501234 どちらが良いかも考えましょう

2つ必要か、1つで良いか?


例えば、1つだとして、どちらが便利かは、入力担当者に聞いてみましょ

これがSE のお仕事ネ

実際に使うユーザさんに聞く事です

自分が便利と思っても違う事は多いです

SE 的な事も数多くやっていると、いずれ分かります

ユーザさんは、どちらが便利と思うのか!

これを聞かないので使えないアプリが出来るのネ

分かります?

アプリとは?皆さんが使っているスマホの事です

万民に受ける政治が政策が無いのと同じで、

皆に良いと言われるソフトは無いかも知れません

それは、業務以外の部分、かわいい、とか、UI のセンス的な事を言われる事があるからです


言わせて頂けるなら、かわいい、センス、は使い勝手とは違います

人それぞれ、美的感覚と同じです

誰かが美人と言った所で、その人はモテるのでしょうか?

かわいい系な人、メガネっ娘、ひとそれぞれなのです



脱線気味ですが、、、元に戻って、

郵便番号です

これ結合する位置があるのが分かりますか?


数値でしょ?

なので、絶対に同じ項目にヒットしない位置

この例では、先頭でも最後でも同じです


普通の住所では、どうでしょう?

番地が入りますネ

100番200号、100-200、100-200-309、309号室


実際の住所検索だと、番地、番や号、方書き、が入ります

先頭でなければ区切りが必要です

方書きも同様です

番地の後に、方書きがあると前の文字と結合されます


100-200番地方しものせき300号室


検索では、地方と入れるとヒットします

地=番地の地であって、地方の地では有りません


分かるでしょうか?


これを回避する為には、通常では入力できないコードを区切り文字として使えば良いです


Chr=関数です、Excel=CHAR(xx) になります

Chr(13)...vbCr 改行コード

Chr(10)...vbLf キャリッジリターン、よく分かりません、改行とペアで使うそう言うモノだと思っています

逆?調べて下さい

   Excel では、セル内の改行コードは1バイトです、確か(10)だったと思います?(13)?


Chr(13)&Chr(10)...vbCrLf 2バイトの改行マーク、メモ帳などで、改行するとコレです


Chr(255)...HEX=FF ですネ、Max です、16進数、これは物理的に入力できません


こう言う文字で区切ってしまえば、地方で検索される事は有りません



(更なる応用編)

有るの?(^^)?

気が付いた人もいるかと思います


もしも?このワイルドカード、

検索BOX に入力したらどうなるの?


出来ます、禁止していなければ!

下関市*丁目


これで、下関市と丁目が付く住所が出てきます

仮に、郵便番号を先頭に付加したとしましょう


750*丁目


これが可能です



検索1つ、SQL 1つでも、これだけバリエーションが有ります

文字にすると凄そうですが、実際は、慣れると大した事は有りません


クエリの抽出条件も、メモ帳にまとめておけば、あとは、項目名が違うだけですので!



実際のデータベースなどの項目は、NULL 値、空白が入ってる事が有りますので、

関数 NZ、Trim、など適宜、必要となる場合も有ります



これ、SE 的、PG 的には、普通の事ね


---

明日見むら

村長さんでした

(^^)/ SQL Query


タグ:access SQL
nice!(1)  コメント(0) 

SQL 構文の違い(^^)? Access SQL Server Oracle [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-28 ---


お仕事ちゅぅぅぅ〜でございます

(^^)?

仕事しろョ?


お昼休憩でございます

(^^)



時間がないので簡単に!


Access、SQL Server の構文は?


SELECT xxx (FROM T1

LEFT JOIN T2 xxx)

LEFT JOIN T3 xxx


WHERE xxx

ORDER BY xxx;


違いはネ?

かっこ( ) で括るナ違いだけ!

SQL Server は省略可、Access は明示的に宣言が必要です

これだけネ、かんたんでしょ!



ワイルドカード

ms * コメ、% パーセント Oracle おらくる って読みます


結合

& あんど <--> + ぷらす


以前、長音ーマイナス記号を、と説明したのは、この辺りにも有ります

ms も結合は、プラスが使えますが、気を付けないと?

計算式として扱いエラーになります


他には、フリガナ、ふりがな、大文字、小文字

ms は、何故か変換検索します

便利な時もありますが、統一させたい文字など、

入力間違いを探すのに不便です

何かルールが有りそうで、上手く行かないケースも有ります

拘ると?自爆するので、ms Server は仕方ない!

って、割り切るくらいが良いです

すごぉ〜く調べて聞いたとしても、仕様です

の1言だったら悲しいでしょ!

使える範囲で使うのがms 流ネ


なので、キチンとしたければ?

UNIX 系、Oracle、で処理した方が良いと思います


ざっくり、こんな感じネ



(その他)

文字列は、シングルコーテーション A=’aaa’ くくる


日付は、シャープ A=#2018/05/28#


条件、ソートは、NZ(xxx) NULL が有るかもネ?な時は括って置くのが良いです、テスト環境とか、変なデータが入っているとSQL Error になります

NZ 関数、明示的に何かを入れたい時は?

NZ(A, 999) などにしておくと、A が番号だったら、入っていない項目は、最後の方に表示されます


Sort = xxx DESC 降順です、ASC は昇順ですが省略可

なので、紛らわしいので記述しません



(追記) 2018-05-29


明示的に括る癖を付ける

[TBL1].[ITEM1]

コンボ内も同様

ex) .ITEM-2 だと演算になります

    .[ITEM-2] だと名称です

なるべく、- マイナス記号を使わない名称にしましょう


Form などは、

With [Form]![Fxxx]

    ![ITEM1] = 1234

    ![ITEM1].ReQuery

End With


! ビックリマークと. てんの違いは殆ど有りません

ただ、自分が見て分かり易い様に!

例えば、SQL 文=. ドットです

画面、クエリなどは、! 、VBA も !


上記の様に、.ReQuery などだと、プロパティ参照や命令文なのがひと目で分かります



![Combo1].Column(0)

値を参照する時はゼロ


ですが、(1) からのモノも有ります



Excel,Cell(y, x) = 1234

Excel.Range("A2") = 1234


A2=x,y の表示

Cell=レコードを意識してるっぽいので、行, 列、Row, Col



Access SQL は、1 命令文のみ

SQL Server は、複数のSQL が実効できます、区切り=;



注意した方が良い事は、又、追記します

(^^)

普段からエラーが出づらい構文を書く癖が付いているので、中々思い出せません



--- 2018-05-31 ---


Access SQL


SELECT xxx FROM TBL1 AS [TR]

GROUP BY [TR].[xxx];


GROUP BY の時は、明示的に、テーブル名が必要です

1つの時でもデス



Form の構文、サブフォームの場合

   若干、違うのが分かるでしょうか?


[Forms]![FRM1]![Form]![Fsub1].OrderBy = "xxx"

[Forms]![FRM1]![Fsub1]![xxx] = 1234


これは、メインフォームに子供のフォームを挿入

メインのフォームが、検索条件で、

サブフォームが、表示です

連結キー = 1

いつもイチです、ここに通常はフィルタを書いてる様ですが、そんなムダな事、メンテナンスしづらい作りはしません


抽出条件は、サブフォームのクエリに記述します

これで、複雑な条件もあれコレ出来ます


ここの部分は、最初にかなり研究しました

こう言う、作りは見た事は無いです


JP POST も似た感じの作りです

こちらは、全くVBA なしで複雑な条件で抽出表示しています


結果は同じでも、全く作りは違います

こう言う感じがプロ仕様です

見た事ないって事は?

お金は貰っても、本当の意味でのプロは残念ながら居ないと言う事ネ

(^^);

気がついたら、又、追記します


--- 2018-06-01 ---

重要なの思い出しました

★時計の日付★長くなるので、別にカキコします

   変えちゃダメ!


---

明日見むら

村長さんでした

(^^)/SQL


nice!(6)  コメント(0) 

Access で困った?用語集(^^)? どれか分かんない? ホントのお話し [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-27 ---


ホントの話しは、あのねのねぇ?

(^^)?

ホントにほんと!


最近は、もう慣れましたが、

VB は、ソレなりに組んでいました

Access、Excel、は、VBA Aが付くのでございます

(^^);


しかも、日本語なので、便利かなぁ〜

っと思うとネ

違うのですョ

(^^)?


英語も確かに不明な感じも有りますが、

単語を翻訳するだけで、

雰囲気なんとなくで分かります

VB 開発環境ネ


VBA、Excel は、そもそもオモチャ的なので、

スゴク便利では無く、

出来るョ!的な要素が多いです


フォームもキレイに作ろうとすると?

アレが無い、これが違う、

色々有って、VB 以上に時間が掛かります


Access は、2万円くらいのオモチャにしては、

良く出来ています

普通に開発環境を整えたら、

ざっと、100万円は見てちょうだい!

な、感じです


なので、あちこちで働いても、

あの環境が有れば楽なのに!とか思う事はシバシバです

★しばしば=時々=しょっちゅう 的な?

   しょっちゅう ってスマホの変換でて来ません

   これって?方言ですか? (^^)? 疑問


で、、、Access ですョ

大体、何でも出来ますョ

大体、Excel は業務なPC では使っているので、

Access ダメって所は記憶に有りません


何故に?

既に入っている所も有りますが、

パッケージ版で使っていなかったりなのネ


やっぱり、DB 設計、SQL 文、フォーム、イベント処理の意味が分からないと上手くは作れませんからネ

少し、ハードルが高いです


軽く使うには便利ですョ

クエリとか画面で作れるので、

エクセルデータなどのインポート辺りだけ分かれば、DB は勝手に出来ますので!


クエリで欲しいデータ、集計値、チョチョイのチョイです


で、、、本題の?な用語

プロパティです、この中が日本語です


可視、Visible

   項目など見せるかどうか?なのですが可視!

   表示する、はいTrue、いいえFalse

   の方が普通に分かり易いと思うのですが?MS さん


他は、イベント全般

   読み込みなんとか、解除?

   とか、どのタイミングなのか分かりません


他にも沢山ありましたが、思い出せなくなりました

慣れました(^^);

そして知らない単語は使いません(^^);;;


これネ、因みに、どうしたか?っと言うと

英語と日本語が切り替えられます


そして、標準位置まで変わったと思います

(^^);

は、は、は、


画面をチマちまコピーして、エクセルに貼り付け

見比べます

それでも分からなければネット接続PC へイザ出陣?


ほんと時間が掛かるので!


不思議と思った項目を見つけたら追記します



---

明日見むら

村長さんでした

(^^)/ Access VBA




タグ:VBA Access用語
nice!(3)  コメント(0) 

高速化 DB SQL Program の作成方法(^^) 基本的な考え方です [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-26 ---


プログラミング

ひとクチにそう言ってもネ

色々考え方は有るのです

(^^)


例えば、実践的には?

無駄なインデックスを貼らない!

これだけでも違います


DB への書込み方法

仮に一括更新する場合、インデックスに合わせて書き込むだけでも違います


最適化、これも定期的にするのと、しないのとでは違います


SQL で言いますと?

Where 条件

この順番を変更するだけでも変わります


結局ね

色んなツールやゴチャゴチャした教科書なんて理論値なのョ

理論値だけで動作するなら誰も苦労は致しません


そして、この言うのはネ

基本的な事が分かって無いから誤解するのネ


例えば、

先輩さまと一緒に新人さんはするでしょ

方法とか、手順とか、

先ずは、そのままやってみる

大体、間違った事はしていないハズなので、そこをそもそも考える必要性は有りません

が、??

黒の組織が居るので、普通に先輩さまが正しいかは分かりませんが、、、


どうしても高速化できなかったとすれば、

前回言った様に、一時的な検索用のテーブルを作れば解決します


それでもダメなら?

そもそも的な設計や考え方が間違ってるので、もう一度、初心に帰り、お勉強です


学校へ行っている時は? 嫌々でも勉強してできますが、社会に出たら? 中々できません

そもそも頭に残りません


学生の頃、1回で覚えられた事が、10回くらい、100回くらい反復しないと覚えられなくなります


覚える事が、沢山あると言う事も有りますからネ

(^^); チト言い訳?



最近では?

MS しか、触れない人も多い様なので、

Windows SQL でプログラミング的なお話しを致しましょ


SQL と言っても、Oracle なども若干、書き方などが違います

似てはいるけどビミョ〜に違います


Windows も同様です

SQL Server と Access VBA でのSQL の構文がビミョ〜に違います


プログラムや設計をする時点で、どちらかは選択されています

しかし、

これをSQL Server だから、それで動けば良い!

っと思うのと、何か有ったら、簡易的でも使い勝手の良い、Access でも動くSQL が良いのかも考えておくのと、そうで無いシステムとは自ずと違いが出て来ます


因みに、下位互換

上位は、SQL Server

下位は、Access DB


っと言う事は?

Access で使えるSQL 文は、SQL Server でも動作します

上位互換は存在しません


全てのソフトウェアは同様だと思います


テストでは、Access DB でプログラミングし、テスト検証します

システムテスト前に、もう一度、動作可能かSQL Server で確認します


たったコレだけで、

どちらのデータベースも利用できます


かなり万能です



あくまでも、考え方です



私、本業は、大型コンピュータですので、PC 系な小さいコンピュータは分かりません


ですが、ここでも、システム屋さんで大きく考え方が違います


例えば、24時間くらい、ほぼ全て止められないシステムが有ったとします


IBM = 自信を持って止まりません

   殆ど、これです

別のある所 = 止まったら、素早く、切り替える、又は、再起動する


これネ、大型コンピュータでは難しいのです

色々複雑ですからネ

PC 系みたいな再起動しちゃえ!とは意味が違います


なので、絶対の自信を持って、落ちないシステム、環境も含めてですョ当然ですが、を作るか?


仮に落ちても、ユーザが分からないレベルで復旧させるか


で全く違う意味合いのシステムになります


私は、幸運にも後者の方でして、

先輩さま方にも恵まれました

日本でも、両手の指に入る人、メーカ系含む、が沢山いるョと言う事を聞いた事が有りました


おかげ様で、今でも普通に働く事ができますが、変な風な教えられ方、間違った考え方を教えられていると大変です


例えば、皆さんの肩書き、会社名を除いて下さい

どれだけの人が貴方を信用してくれますか?


全く同じ事をしても?

貴方を信頼している訳では無くて、会社を信頼しているのだと分かります



かなり脱線しましたが、

同じ様でも、何かが違う

でも、

どちらが正しいのかは結局わかりません


自分が正しいと思う方をなるべく極めて、ユーザさんに迷惑が掛からない様にしましょうネ



今度は、も少し、面白い業界的なお話しを致しましょう



---

明日見むら

村長さんでした

(^^)/ SQL

nice!(4)  コメント(0) 

INDEX 重複キーが有ると困るんです(^^); と チェックボックス 応用編 [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-22 ---


設計の基本形

あれこれござるが、重複キーなお話しデス


プライマリキー、Index が重複すると困りますよネ

どうやって、重複キーをチェックしますか?


Text File 系だと、Sort をかけてチェックする?

それとも、DB に登録しながら、チェックする?


結局チェックはしないとイケません

件数が少なければ、どちらでも良いのでしょうが、

一定件数超えるとなると、自分なりのしっかりした考え方が必要です


最終的にはユーザさまに迷惑がかかります

遅い! (^^); 一言です


私的によく使うのが、

重複キーにはプライマリキーを逆用します


具体的には?

P-Key を指定したテーブルと無いテーブルの2つを用意します


チェックや加工が必要な、.csv などのデータは一旦、キーの無いテーブルへ書き出します


その後、キーの有るテーブルへ、キー無しから一括インサートしちゃうのです


これだと速いし、2個目は普通に弾かれます

何かの基準で、並べれば、その順番に書いてくれます


ロジックも至ってシンプル

メンテナンスもし易いです



次がこの応用編

P-Key を上手く使えば、重複なしのIndex Table が作成可能です


これを使って、よく有るチェックON だけ、印刷する!

みたいなデータ抽出が可能になります


沢山の抽出項目から、必要なデータだけを印刷したい

そう言う使い方が出来るのです


例えば、日付の範囲で抽出し、

日付の範囲のP-Key とチェックOn/Off をテーブルへ一括して書き込みます


こうすると?

元のDB に100万件のデータが有ったとしても、

日付の範囲で一旦、抽出できるので、

それだけでも抽出件数は少なくできます


INSERT INTO ... SELECT ...

な感じの一括処理は速いです


DB は、極端に言えば、一括処理が出来る所にポイントが有ります


これを1件づつ処理するので有れば、

逆に、

テキスト系なファイルの順読みの方が遥かに高速です


文面だけでは伝えるのは難しいですが、

結局そう言う事なのネ


自分なりにテストして、

自分なりに納得できる方法を考えましょう


それが出来たら、

このカキコの意図が分かると思います



同じ様な事ですが、

2つな処理に応用できます

ちとプログラマなカキコでございました



(補足) 的な? 2018-05-23

少し言葉足らずな所も多数でございました


Access のメリットは?

DB がサーバ側、ローカル側、どちらでも簡単に作れます

なので、

同じ画面を複数で比較したいと思っても?

業務系なコンパイルなソフトでは中々簡単に出来ません

しかし、

Access ですと?DB、APP、それぞれ分離して作っていれば、APP 側のソフト(Access) をコピーするだけで同じ作業が可能です

非常に便利!

でもネ?

ソフト屋さんからすると?

コピペでソフトを複製されると困るのですョ

(^^);

考えて頂ければ分かりますが、時間を掛けて作っても複数売れれば元は取れます

でもコピペでイケるとなると、コピーするでしょ?やっぱりネ

ソフト屋さんは?ご飯が食べられなくなるのデス

(^^);

中々厳しい!便利なAccess だとご飯が食べられず、不便なソフトだと裕福になる

な感じです


それはさて置き、、、

分離なお話しです


先程のP-Key 有るのと無いのテーブルですが、どちらに作るべきかも有ります


(答え)

サーバ側: P-Key 付、元々のDB ですから当然です

ローカル側: P-Key 無、Access APP を置いてる側です


一時ワーク的なテーブルは、ローカル側、C ドライブ、D ドライブです

当然、ユーザ側に存在するので、このテーブルは高速です


しかも、チェックボックス的な使用だと?

同じ検索-->印刷でも、ユーザそれぞれで無いと困ります


サーバ側で1つのテーブルですと?

実質1人しか使えませんネ


コンパイルかける系な業務アプリでも、Access 的な使い方は当然できます

しかし、1つのテーブルに複数のユーザが存在しなければならないとすると?

端末ID、IP 的な、MAC ADRESS 的な固有の番号が必要になります

更に言えば、ネットワークにも負荷がかかります

大量のデータを扱う時は、どう使うべき物なのか?

これをキチンと分かっていないと、DB がサーバだから!な理由だけで設計するとユーザ側は只々遅い!結局、使えない!なシステムになってしまいます


ms は、Access DB は、あくまでもローカル側、ユーザ一対一な感じの使用を推奨してます

DB とは言え、Access ですから、細かい作業は難しいのです

同期的なCommit とかネ


これもプログラマ レベルで回避可能ですが、複数の人が開発すると、それぞれでレベルが違いますので、出来上がったシステムで、あっちは使い易いけど、こっちは不具合多発で使い辛い!な感じになります


そう言う事が無い様に、SE システムエンジニアの設計能力が試されます


SE でも、実際に1度もプログラムを組んだ事、まともにシステムを組んだ事が無い人がかなり居ます

私には信じられませんが、本当です


コーダ、コードが書ける人

プログラマ、考えてプログラムが書けるSE の前身、中間的な人

SE 設計できる、ユーザとの折衝的な営業みたいな事が出来る人


コーダさんは、ほぼ見た事ないですが、SE がPG の延長線上に無い様な業界になっております


名前だけは、それなりデスが、残念な大手が多いですネ

(^^)?


ちと長くなりましたが、

1つテーブルを増やすにしても、どちらが良いのか検討する必要が有ると言う事です


Access はDB の簡易版です

別に、Access なくてもローカル側で一時的に使っても、良いのダョ

素人系な? SE、PG さん達へ (^^)


おしまい!


---

明日見むら

村長さんでした

(^^)/ index

nice!(5)  コメント(0) 

win7 Access VBA 起動しない(^^); マジなのかぁ〜? ホントです [なんちゃって EXCEL ACCESS VBA]


--- 2018-05-22 ---


VBA?には、直接関係ございませんが、、、


折角、作ったAccess VBA

Access 自体がエラーで止まった事は有りませんか?


雰囲気ですが、

Windows7 Access VBA

エラー構文が出ると自爆な感じ


でも、

マクロだけならOK なのです

(^^)?


結構ネ!

研究しましたョ!これ!

ホント迷惑なんだから、、、



(回避策)

キチンとアップデートが掛かったOffice で起動させます

以上



は、は、は、、?

ホントなので!


多分な環境

win7、アップデート出来ないOffice 環境

VBA のエラーだけ!


エラートラップを入れまくれば回避可能?

要は、

VBA Editor で、処理間違いで止まるでしょ

あれで自爆します

でも、動く場合も有りますが、

何度もエラーで止まってしまうと

必ず、次回の起動で、、、

このプログラムは失敗しました!

みたいなメッセージで起動すら出来なくなります


最初の頃は、回避方法も分からなかったので、

ロジックをメモ帳などで、コピーしたり、

動作するバージョンをコピーして置き、新規で再取り込みして作り直したり、、、

っとアレこれしておりました

(^^);

凄く時間が掛かるし、疲れます



で、??ある日?

ふと、最新だったら、どうなるの?

って思いまして、動かすと普通に起動!


その後は、

オンラインで最新パッチが当たる環境に、アクセスを入れといて、起動させて、即、終了

それを、起動しないPC に戻す様にしました

(^^)v

いやハヤ! v じゃないし! みたいなネ


最適化、とか、標準のメニュー、をチト触ったりとかでマズくなる気が致します


閉じられた環境だと、勝手にアップデートも出来ません


更に言うと?

My PC を持参して、止まったら、USB にコピーして、

起動、終了、元に戻す

が楽チンです



Office っぽいバグな気がしませんので、

Windows7 特有の気がします

パッチがキチンと最新だったら問題ないのかも知れませんが、パッチを当ててくれない業者さんだと、只々、迷惑な感じな、、、

Access のエラーでございます



困ったチャンは?

私だけでしょうか??




---

明日見むら

村長さんでした

(^^)/ VBA

nice!(5)  コメント(0) 

Q/A クエリQuery で今年の干支のデータを抽出? [なんちゃって EXCEL ACCESS VBA]


Q/A クエリQuery で今年の干支のデータを抽出?

今年の干支のデータがチョット分からないのですが!

★Where 省略

1) 日付から今年を抜く

Year([TBL]![ymd]) = Year(Date())
又は
Format([TBL].[ymd],''yyyy'') = Format(Date(),''yyyy'')
又は
#日付# で範囲指定 > xxx < とか Between


2) 干支テーブルを作成

1:猫 2:牛 3:虎 4:兎 5:龍、、、
^ ^
で、日付の年を12で割った時の「余り」値に合わせる

余りの計算関数: Mod
自分で計算するなら: x=Year([ymd]) - Int(Year([ymd])/12)
CInt(Year[ymd]) の型変換が必要かも!


3) 2)を踏まえて!
日付の項目に干支コードを入れておく方法も有ります


ものに依るので、もチョット具体的で無いと答えにくいデス!

Excel シートだけでも干支だけ表示なら簡単です
複雑なテーブルでなければ、
Vlookup と CountIf SumIf などでクロス集結も可能!

---

明日見むら
村長さんでした
(^^)/~~~

asumi-mura
by. Access VBA


nice!(1)  コメント(0) 

今年は2015年?和暦と西暦の計算方法! [なんちゃって EXCEL ACCESS VBA]


今年は2015年?和暦と西暦の計算方法!

書類を作ったり、
ネットで登録したり、、、

表示、入力する際に西暦だったり和暦だったり
イロイロです

ネットの登録などですと大体、西暦?
今年は、
平成26年なので2014年になります
年度は一般的には国の会計年度を指すので4月が新年度になります
よって、
平成25年度(3月まで)
平成26年度(4月以降)

ネットで検索してると大きなイベントのページですが、
2015年XXXなんて見かける事も!
予定だったら分かるのデスが、、、
^_^;
中々覚えられません?!

で、簡単な計算方法を!

覚える数字は3つ
平成=★12、◆88 (足せば100です)
昭和=☆25

これを踏まえて!

【西暦和暦変換】
2014年: 14+★12=H26年
2001年: 1+★12=H13年
2000年: 100-◆88=H12年

1998年: 98ー◆88=H10年
1976年: 76ー☆25=S51年

【和暦西暦変換】
H25年: 25ー★12=2013年
H11年: 11+◆88=1999年
S49年: 49+☆25=1974年

【年度】
3月まではー1
4月はそのまま


2000年を境にこう言った+ーで計算します
大正、明治 も有るのですが、今では実質、計算する事は余りないと思います

西暦-->和暦の2000年を除けば、
必ず、
年の下2桁で換算します

計算出来ない時は、計算できる方法の数値を選ぶ!
そう言う覚え方で良いと思います


アプリで計算してくれるのも有りますが、
この位の計算は覚えておいて損はありません
9x9 より簡単!

覚える数値は3つと言いましたが、
実質2つ、12、25だけです
平成の12だけでも実際は問題ないかも!
昭和は生年月日を変換する時くらいでしょうから、、、

計算できれば正解!
出来なければ次を試す

それで良いと思います


色んな書類を作っていると
計算方法を覚えていないとサクっ!と作れない場合が有ります

和暦の書類は全て和暦
西暦の書類は全て西暦
併記する場合も有ります

コンピュータ的には基本、西暦!
トラブルが発生した場合には西暦の方が見つけやすいです
1つしか無いから!

例えば14年だったとして、目視でチェック!
14と言う数値を探す時に、
H14、S14、T14、M14 より
2014、1914 の方が間違えにくいデス

形も違いますし、、、
数値でも形で認識すると間違えにくくなります

この辺りが右脳と左脳の違いになるのでしょうかネ?


ちなみに、
EXCEL だと、書式設定で、
西暦: yyyy/mm/dd、yyyy.m.d
和暦: gee/mm/dd(aaa) など

y=年、m=月、d=日、aaa=曜日
g=和暦元号、e=和暦年

例) 2014/05/09、2014.5.9
   H26/05/06(火)


チト長くなりましたが、
ネットで見かけた不思議な日付 の巻でした


---

閏年(うるうどし)の計算方法

---

明日見むら
村長さんでした
(^^)/~~~

asumi-mura
by. Wareki Calc

nice!(0)  コメント(0) 

ACCESSからEXCEへ出力!VBA その8 アクセス講座 写真の挿入方法 [なんちゃって EXCEL ACCESS VBA]

ACCESS から EXCE へ出力!

VBA その8 アクセス講座

個人の管理台帳などに写真を添付したいと相談を受けまして、、、

1) Access DB 自体に写真を取り込む

共通処理フォルダ ¥PIC で外部参照 LINK させる

2) 管理番号.jpg

3) 管理番号.xls

など考えられます

どれが良いかはユーザーの要望を優先させます

が、、、

個人的には、3番目がオススメです

取り敢えずEXCELに画像を貼っておけば、画面からハイパーリンクで参照させれば簡単です

DB 更新 SQL では、

テーブル=リンク項目

クエリ="#" & PATH & "管理番号.xls" & "#"

で一括更新できます

両サイドに"#"を入れます

EXCEL だと、関数でHyperlink(パス+ファイル名)

 

意外と簡単に管理できます

DB で無くてもEXCEL のリンク機能でも同様に管理可能!

 

結局、今、有る台帳に¥PICから写真を所定の位置へ挿入する事になりました

EXCEL VBA だと

ブック("Sheet名").Select

シート.Cells(行, 列).Select

シート.Pictures.Insert D:xxx¥PIC¥001.jpg

これで追加挿入できます

 

写真のサイズなどは、別のソフトで所定の大きさを決めれば良いデスね

そして、名前を付けて ¥PIC へ放り込むだけ!

 

台帳印刷で作成し直せば任務完了!

楽チンです

 

因みに、全ての写真が全て揃わないケースがある時は

If Dir(D:xxx¥PIC¥001.jpg) <> "" Then

    挿入処理

End If

となります

---

明日見むら

村長さんでした

(^^)vba

asumi-mura

by. EXCEL VBA Pictures Insert

---

ACCESSからEXCELへ出力

  ⇒VBA アクセス講座(その1)ひな形

  ⇒VBA アクセス講座(その2)ひな形の補足

  ⇒VBA アクセス講座(その3)データ定義の違い

  ⇒VBA アクセス講座(その4)共通関数の作り方

  ⇒VBA アクセス講座(その5)システムファイル

  ⇒VBA アクセス講座(その6)EXCELコピペの方法

---


nice!(0)  コメント(0) 

閏年の計算方法 ACCESS EXCEL VBA [なんちゃって EXCEL ACCESS VBA]

閏年の計算方法 ACCESS EXCEL VBA

1: 400年に1回、閏年

2: 100年に1回、閏年ではない

3: 4年に1回、閏年

実際のプログラムは明日やりましょ!

宿題!!!

まんまだと思うでしょ

イロイロ有るのネ、これ又、不思議?!

---
明日見むら
村長さんでした
(^^)/~~~

asumi-mura
by. UruDoshi 4nen

nice!(1)  コメント(0) 

Q/A VLOOKUP関数で認識できない名前は何ですか? [なんちゃって EXCEL ACCESS VBA]

Q/A Vlookup関数で認識できない名前は何ですか?

1: 名前の管理 が登録間違いしている

2: システム上の名前を使用している

3: 使えない文字を使用している

4: Office 自体のバグなど

   Microsoft Update をして最新パッチを当てる

例えば、使えない名前だと

関数と同じ文字列、SUM、ID、END などはダメな気がします

文字は特殊文字、記号とか

・ % * ① ② など、これらの文字列は、Access などDB、SQL文、などで引っかかる可能性が有ります

特に ・ は気をつけて下さい

Access のSQL記述時にエラーになったと思います

データの場合だと、仮に今だけ良くても、Windows から Unix系へ移行した時に文字化けします

フリーのサーバ 例えば BOX などへ音楽ファイルをアップロードすると文字化けするのはこの様な事があるからデス

厳密には少々違いますが、大体そんな感じ

でも、画面操作のクエリ は通ります

区切るのであれば、アンダーバー、_ を使用して下さい

カタカナ日本語も好ましく無い

英数字は半角、空白はダメ

例)としては、極力、半角英数字にして下さい

N001_Key xUSR集計

予約後として絶対に使われそうに無くて自分が分かりやすい名前にします

Windows のログインユーザ名も半角!

プログラムは半角英語圏のモノでしょ

だから機械は半角が基本

これは絶対に変わる事は有りません

マズそうかなって思ったら使わない

数をこなさないと中々難しいデスが、、、

---
明日見むら
村長さんでした
(^^)/~~~

asumi-mura
by. Q/A Excel



nice!(0)  コメント(0) 

(その5) かんたん家計簿 EXCEL なんちゃって、下関エクセル教室 [なんちゃって EXCEL ACCESS VBA]

なんちゃって、下関エクセル教 第五段

(その5) かんたん家計簿 EXCEで作ってみましょ

=================
Sheet名: DAT データ入力シート
EXCEL.05-005.jpg

 

 

 

 

 

 

 

年月、のセルを分けて見ました!

こんな感じのを作りたい、、、とします







、、、











=================
Sheet名: MF マスタファイル

  |A|B |C       |D        |
 2| |No|購入先名|コンボ   |
 3| |1 |【繰越】|1【繰越】|
 4| |2 |スーパー|2スーパー|
 5| |3 |コンビニ|3コンビニ|
 6| |4 |薬局    |4薬局    |
 7| |5 |外食    |5外食    |
 8| |6 |        |6        |
 9| |7 |        |7        |
10| |8 |その他  |8その他  |
11| |9 |【計】  |9【計】  |


B列=購入先No  1桁
C列=購入先名 10桁
D列=セルのコンボに使用する名称

D列 =B3 & C3


EXCEL.05-004.jpg

 

 

 

 

 

 

 

 

=================
Sheet名: DAT データ入力シート

(入力)
B列 書式設定=yyyy年m月、入力は年月日
D列 コンボで選択★
E列 書式設定=#,###

(表示のみ)
C列 =IF(B2 = "", "", B2)

F列 書式設定=#,##0
F2  =E2
F3以降 =IF(E3 = "", "", F2 + E3)

これで、残高もキレイに出ます

★D列 はコンボで選択型の入力になります
EXCEL.05-011.jpg

 

 

 

 

 

 

 

データ-->データの入力規則

   入力の種類: リスト
   ドロップダウンリストから選択する:ON
   元の値: =MF!$D$3:$D$11

Office2007 以降はコレで良かったと思いますが、

それ以前は、シート参照が出来ません

上手く行かなかったら、、、

DAT と同じ、シート内に MFデータを作って参照して下さい

 


EXCEL.05-012.jpg

 

 

 

 

 

 

エラーメッセージ

   無効なデータが入力、、、:OFF

   チェックをかけるとかなり鬱陶しいデス、お好みで!


▼のマークをクリックすると、、、

コニャニャになります
EXCEL.05-013.jpg

 

 

 

 

 

 

実際に作る時は、このマスタ設定をよ~く考えてから作りましょう

データベースでは無いので、簡単には変更できません

最悪、置換で対応するって方法もありますが、、、

項目数を2桁にするか等など!

実際に使うのであれば2桁くらいは、必要なくても持っておいた方が良いと思います


今回は入力するシートなのでシートを保護してみましょ
EXCEL.05-030.jpg

 

 

 

 

 

 

 

セルの規定値ロックになっているので、OFF にします

   B2~B列、D2~D列、E2~E列
EXCEL.05-031.jpg

 

 

 

 

 

 

これでシートを保護すると入力可能なセル以外は修正できません
EXCEL.05-032.jpg

 

 

 

 

 

 

 

うっかり関数を消しちゃった、、、が無くなります

怒られると、、、

EXCEL.05-033.jpg

 

 

こんなのが出ます

(^^;汗

---

次回も、家計簿で日別集計をやってみましょう

---
明日見むら
村長さんでした
(^^)excel

asumi-mura
by. EXCEL CALC


nice!(0)  コメント(0) 

(その4) クロス集計、件数、金額 EXCEL なんちゃって、下関エクセル教室 [なんちゃって EXCEL ACCESS VBA]

なんちゃって、下関エクセル教室 の第四弾

(その4) クロス集計、件数金額 EXCEL

=================
Sheet名: DAT データ領域

  |A|B        |C|D     |E  |
 1| |         | |      |   |
 2| |2014年2月1日|1|みかん|  1|
 3| |2014年2月1日|5|野菜  |  1|
 4| |2014年2月1日|6|ごはん|  1|
 5| |2014年2月2日|1|みかん|  2|
 6| |2014年2月2日|2|りんご|  4|
 7| |2014年2月2日|4|梨    |  8|
 8| |2014年2月2日|1|みかん| 10|
 9| |2014年2月2日|2|りんご| 20|
10| |2014年2月2日|3|いちご| 30|
11| |2014年2月2日|4|梨    | 40|
12| |2014年2月2日|5|野菜  | 50|
13| |2014年2月2日|6|ごはん| 60|
14| |2014年2月2日|1|みかん|100|
15| |2014年2月2日|5|野菜  |500|


B列=日付
C列=食事の番号
D列=食事の名称(マスタから表示)
E列=金額
EXCEL.04-003.jpg

 

 

 

 

 

 

 

=================
Sheet名: RPT レポート印刷

 |A|B        |C     |D     |E     |F |G   |H     |
1| | 食事    |1     |2     |3     |4 |5   |6     |
2| |2014年2月|みかん|りんご|いちご|梨|野菜|ごはん|
3| |1       |5     |100   |      |20|600 |10    |
4| |2        |200   |      |20    |1 |40  |5     |

こんな感じのを作りたい、、、とします
EXCEL.04-051.jpg

 

 

 

 

 

 







、、、











=================

Sheet名: CALC 計算領域

又々前回とほとんど同じです

関数だけ知っていればOK!
---
B2 =IF(DAT!B2 = "", "", DAT!B2)
C2 =IF(DAT!C2 = "", "", DAT!C2)
D2 =DAT!D2
E2 =DAT!E2 ★

G2 =DAY(B2)
H2 =IF(C2 = "", "", C2 & "-" & F2)

★金額に変えただけ!前回と全く同じです
---
EXCEL.04-004.jpg

 

 

 

 

 

 

 

 

=================

Sheet名: RPT レポート印刷

---
EXCEL.04-052.jpg

 

 

 

 

 

 

 

C3 =COUNTIF(KEY, D$1 & "-" & $B4)
D3 =SUMIF(KEY, D$1 & "-" & $B4, KEY金額)
EXCEL.04-051.jpg

 

 

 

 

 

 

---
C3、D3 だけ記述しました

他は、ほぼ同じです、列が違うだけ
コピペでほとんど作れます

セル=ゼロサプレス、ゼロを表示しない様にしています

名前で管理しているので、KEY数量-->KEY金額の修正も簡単です

最近のOfficeは名前を変えると自動で変更されます

EXCEL.04-002.jpg

 

 

 

 

 

 

 

ちなみに、このエクセルを作ると、標準のエクセルで使用していると、エラーが出ます

 に同じのセルがあるとオカシイとエラー表示される

 余計なお世話ですが必要な人もいるのでしょう

そんな時は、、、

EXCEL.04-001.jpg

 

 

 

領域内の他の、、、数式 をOFF

---

テスト用のデータも判る人は判っていると思いますが、

私は、この様な作り方をします

金額の数を変えるて識別しやすい数値にしていると検証が楽チンです

件数の確認も金額を見るだけで判りますネ

実際は最終的に本番のデータでもう一度確認します

その1 は無いものを表示しない
その2 以降は無いもの表示させています

この違いが判るでしょうか?

実際の業務では色々有ります

いつも固定で出すモノと、有るものだけを出す場合

エクセルのツールでは、無ければ、出すことが出来ません

出そうとすれば、又、それなりの仕掛けが必要になります

何が自分で使いやすいかを考えてエクセルを覚えると良いと思います


基本的なパターンでこの様なケースは有ります

使っている関数もゴク僅かです

覚えていても損はありません
---

次回は、家計簿、年齢別範囲の集計、などをやってみましょう

---

(その1) 有るものだけを表示する EXCEL

(その2) クロス集計、名前の管理 EXCEL

(その3) クロス集計 EXCEL

---
明日見むら
村長さんでした
(^^)excel

asumi-mura
by. EXCEL CALC


nice!(0)  コメント(0) 
前の30件 | - なんちゃって EXCEL ACCESS VBA ブログトップ