2005年7月のコラム
2005/07/02 「俺、マクロ使わねぇ」宣言
今日からブログ書くことにしました。
ホームページの更新はちょっと大変ですけど、
これなら空いた時間に更新できるので・・・ (^ー^;;
早速ですけどAccessネタで・・・
「Accessを早く覚えたいんですけど、いい方法ないですか?」と、結構聞かれます。
本だったり、ホームページとかお勧めできるものはあるのですが、それよりも先に「俺、マクロ使わねぇ」宣言をした方がいいっす
ウィザードやマクロ使っても、全然、思った通りに作れないですから。
それならVBAを少しずつ勉強していった方が、早く・確実に理解できます。
マクロでは出来ない事の方が多くて、ちょっと手を加えるにも悪戦苦闘させられます(−−;;
わからないながらも、VBAを使ってみると、Accessの面白さも倍増しますよ。
では、フォームにボタンを貼り付けてください。
そのボタンのクリック時イベントのイベントプロシージャを開いて、
MsgBox("「俺、マクロ使わねぇ」宣言します")
と書きます。
フォームを開いて、ボタンをクリックしてください。
これで、Accessを楽しみながら、覚えられます
2005/07/03 地区予選を勝つ
ラジオで聞いた話ですけど・・・
--------
「人間にとって外見というのは、高校野球で言えば地区予選みたいなもの。
内面こそが甲子園なんだ」
「つまり、内面を磨けということですね!」
「違う。地区予選で勝たないと、甲子園には出場できないということだ」
--------
なるほど、納得です
これって、プログラムにも当てはまると思うんですよ。
どんなに便利な機能があっても、見栄えやデザインが悪いと、
使う人は「使いにくそうだなぁ」と思いますし(^ー^;;
私が使っているブラウザ「Sleipnir」は、
便利な機能満載ですごいのですが、それ以上に見栄えがカッコいいです。
見た目から「すごい便利そうだなぁー」って感じがします(^ー^
Accessにしても、使いやすそうな画面で、
まずは地区予選での1勝を目指しましょう。
ウィザードが作る画面はダメダメっすね
地区予選の初戦敗退です(−−;;
2005/07/04 キレイな字と読みやすい字
昔から字を書くのが苦手で、ごにょごにょしたような字しか書けなくて、
相手に手書きで渡す時「ごめんです・・・(−−;;」と思いながら、
ヘタ字で書かれた書類を渡してます。
これでも、少しは上達しようと本を読んだりしたんですけど、
その効果は無いようです(−−;;
で、本に書いてあったのが・・・
「ヘタな字=読みにくい字」ではないということでした。
・文字の位置を揃えて書く
・漢字は大きめ、ひらがなは小さめに書く
こうすると、ヘタ字であっても読みやすいので、
そこまで字がヘタな感じはしないそうです。
未だに読みにくい字を書く私が言うのも何ですが・・・
Accessのフォームも似たようなものですよね。
微妙にでこぼこしてたり、大きさが不均一だったりすると
(?ー? ん?? って感じになっちゃいます。
手書きの文章に、
書式メニューの「配置」「サイズ変更」が使えたら便利なのに、
と思ってしまいました(^ー^;; 下揃えとか
2005/07/05 忘れちゃいけない組み合わせ
Accessでは、今のレコードの状態を把握することが重要です。
「普通は動くんだけど、データを修正すると動かない」といったエラーは、
このレコードの状態が原因です。
修正したデータというのは「次のレコードに移動」といった動作がないと、
レコードとして保存されません。
なので・・・ 画面で変更はしているけど、
テーブルには反映されていない、中途半端な状態となっています。
この中途半端な状態でレコードの削除を実行すると、
Accessのエラーがでます。(特に新規レコードの場合)
では、どうするかというと・・・
常に、削除を実行する前に「レコードの保存」を実行しちゃえばOKです。
ボケたら→ツッコむ
カレー→福神漬け
と同じように
保存→削除
忘れちゃいけない組み合わせですね。
ただし・・・
アイス→醤油
これだけは納得できねぇ(▼ー▼ なんで甘味に醤油なんだ
2005/07/06 騙されちゃいけねぇ そいつは偽物だ
昨日、レコードの状態について書いたので、その続きです。
レコードを修正した後に(保存されない状態での)削除でエラー発生、これは事前にレコードを保存することで回避できるってとこまで書きましたが、回避できない場合があります。
新規レコードに移動して、何も入力していない状態で削除すると、エラーが発生します。入力されてないので事前の保存も意味がなく、レコードとして存在しないものを削除しようとしているので、 Accessのエラーが発生します。
では、どうするか・・・
NewRecordプロパティという便利なものがあります。これは新規レコードの時はTrueを返すので、これを使って判断します。
このプロパティ、新規レコードで入力した場合、レコードが保存されていない状態では、 Trueを返すので、このプロパティを使う前には、必ずレコードを保存する必要があります。
削除の処理は、こうなります
@レコードの保存
AフォームのNewRecordプロパティをチェック(Trueだったら処理中断)
If Me.NewRecord = True Then
Exit Sub
End If
Bレコードの削除
これでOKです。
「何も入力されていない新規レコード」これを見破ることが重要です。なんとなく、インディジョーンズとかで見かける宝箱の罠に近い感じがします。
「待ちな、その宝箱は偽物だ・・・(´ー`)┌フッ」
で、下っ端が偽物の宝箱を開けて大きな石が転がってくるんですよ
(^ー^ あー やっぱり
2005/07/07 俺のは14徳だ!!
ちょっと懐かしいネタですが、10徳ナイフが小学校低学年のころ流行ってました。ガチャガチャ(がちゃぽん)ですけどね。
で、このナイフ、缶きりとか付いているから、そりゃ便利・・・かと思いきや、便利すぎると、逆に使う場面に出会わないものなのか、ほとんど使わないまま、新品同然の状態でどこかに失くしてしまいました
(−−;;
10徳ナイフという言葉が古いのですが、 Accessとどう関係あるのかと言えば、DoCmdオブジェクトです。これは10徳ナイフっぽい感じの便利さです。(10徳ナイフが便利だったかは、使ってないのでわからないですけど・・・)
よく使うところで
フォームを開く DoCmd.OpenForm
レポートを印刷 DoCmd.OpenReport
カーソルの移動 DoCmd.GotoControl
他にも、画面を最小化・最大化、メール送信、マウスポインタを砂時計に変更など、色々な事ができます。
ヘルプで調べてみると「へぇー こんな事もできるんだ」と関心します。ぜひ、DoCmdの機能を使ってみてください、メール送信とかなかなか面白いことができますよ。
確か10徳ナイフブームの終わりかけのころ、 11徳とか12徳とか、数で勝負するようになってきました。
で、クラスメートが14徳ナイフとか自慢げに持ってきたんですよ。かなり引きました・・・
「分厚すぎて使えねぇーだろ(−−;;」
無駄な機能ばっかりですよ、耳かきとか(^ー^;; なんでナイフに耳かき
何にしてもブームの終わりってのは、人を冷静にさせます。
300体集めたキン消し・・・ 処分に困りました。
DoCmdの後に . を入力すると入力候補がドロップダウンしますが、その様子が10徳ナイフっぽかったので、今日のネタにしてみました。
ただそれだけです(^ー^;;
2005/07/08 クエリーって何?と聞かれた時は
昨日はドラマ電車男が放送されてましたね。私は1日の活動時間の大半をパソコンの前で過ごしているのですが、電車男は2ch内で完結後に、まとめサイトで知りました、かなり電車に乗り遅れてしまいました(^ー^;;
さてさて、Accessネタですが、返事に困る質問って物は人それぞれあるもので、私の場合「クエリーって何?」と聞かれると、なんとも答えにつまります
(−−;;
同業者には「SQLを視覚化した物なんすよ」と言えば、何となくわかってもらえるのですが、 Access初心者にはハードルが高すぎです。「SQLって何?」から「リレーションって何」・・と具体的な説明だと、どこまでも説明が終わらなくなります。
少し話が変わりますが、うちには小さい子供がいます。ビデオデッキにバナナを詰め込んで再起不能にした、なかなか手ごわい相手です。次の対戦相手DVDレコーダーは、ローマ法王並みに厳重警備されているので、今のところは安全ですが油断禁物、緊張感あふれる戦いが日夜繰り返されています。
子供とつみきで遊んでて気付いたのですが、これがクエリーの答えにピッタリなんですよ。
例えば、一緒につみきで遊んでいると、それぞれパーツを半分づつにしますよね。
すると子供の手が伸びてきて、三角のつみきを横取りされます。また、手が伸びてきて、棒のつみきを横取りされます。そうすると、子供の方は最初は家を作ってたはずが、立派なお城ができあがるんですよ
また、全部できたと思ったら「あちょー」っていきなり壊します
(−−:: 自分のを壊せよ・・・
子供は気分屋ですから、四角つみきばっかり集めて、余った丸つみきは、こっちに寄せたりもします。
丸だけで何を作れと・・・ (TーT
こんな感じで、1人、または2人でつみき遊びしてて、それぞれ横取りしたり、必要なものだけ集めたりして、思った通りに組立てるのがクエリーです。
もちろん壊すのもクエリーです(^ー^;;
子供とつみき遊びすると、想像力が鍛えられるって実感しました。棒1つと、丸1つだけ残って、あとは横取りされましたから、足りない部分は想像力でカバーですよ(^ー^;;
幼稚園に通いだしてからは、しつけの意味で、「取るんじゃねー」と言って、日夜、子供と互角のつみき勝負をしています。
2005/07/09 見せない工夫
昨日、まだ梅雨なのですが、クーラー病にかかってダウンしました。 8月になるのが怖いんですけど・・・(−−;;
Accessネタですが、今日はちょっとした見せ方のコツです。
自分で作ったAccessのソフトって、少しでもカッコよく見せたいですよね。
カッコよく見せるにはコツがあって、使わないものは見せないようにするってことがポイントです。
例えば、カード型のフォームにはレコードセレクタや、スクロールバーはいらないですよね。最大化ボタン、最小化ボタンもあまり使わないと思います。
Accessのメニューバーもフォームを作って実行している時は、使わない項目ばかりなので、消した方がすっきりします。
個人的には、データが多いものは一覧画面と検索機能を作るので、入力画面、一覧画面共に移動ボタンは消してます。
これだけで画面はすっきりします。
使わないものがなくなると、部屋がすっきりするのと同じですね。
こう書いていますが、私は部屋のかたづけが苦手なんですよ・・・ 今も、あちゃー って感じで散らかった部屋の中でブログを書いています。見せないようにするために、とりあえず押入れに入れることにします
(−−;; 見なかったことにしてしまえ
2005/07/10 マジックで手に「給食ぶくろ」
子供の頃ですけど、クラスに忘れ物が多い子ってのは、何人かいますよね。私もその中の1人なんですけど、月曜日に洗濯した給食袋を持って行かなきゃならないのに、毎回忘れてました。
さすがに忘れ物が多すぎるので、マジックで手に「給食ぶくろ」と書かれました
(−−;; まじすか・・・
まぁ さすがに手にデカデカ書かれりゃ、忘れる訳もなく、きちんと持っていけたんですけどね。その後も「習字どうぐ」「連絡ちょう」とか色々書かれてました。
ここまで書かれる前に、どうにかしろって事ですけど、かなりだらしない子だったんですよ
(^ー^;; たぶん
まあ、忘れちゃいけないって事つながりですけど・・・、 Accessで言うところの、未入力をチェックさせたい項目(必ず入力させたい項目)ですね。こういう項目はVBAでチェックするのが面倒なんですよ。
テーブル項目にプロパティで設定できますけど、エラー発生のタイミングが制御面倒なんで、使わないです。
で、私はどうしているかといえば、忘れないように入力する前から値を入れてます、その項目を消されても自動的に値を再度セットするようにします。
コンボボックスで男性・女性を選ぶ項目だったら、初めから男性を選んでおいて、[DEL]キーで消されたら、男性に再セットします。
これなら、必ず値は入っているので、未入力でのエラーは無くなりますし、
未チェック用にVBAを書くよりも、ずっと簡単ですね(^ー^
2005/07/11 規定値プロパティの便利な使い方
昨日「未入力をチェックさせたい項目には、あらかじめ規定値として値を入れておく」と書いたので、今日は規定値プロパティの便利な使い方を紹介します。
主な使い方としては
・日付を入力する項目には、あらかじめ今日の日付をセットする
・男性、女性など選択項目が限られているものの、どちらかをセットする
これ以外にも便利な使い方として、
「キーを自動的に最大値+1でセットする」ということができます。これは入力画面全てに使えるので、かなり使う機会が多いです。
具体的には、規定値プロパティに Dsum でレコードの最大値を取得し +1 しています。
[SAMPLE1]では、こんな感じです
=NullToValue(DMax("tm01_KokyakuCode","tm01_Kokyaku"),0)+1
同じ様な動作はVBAコード(レコード挿入前・後イベント)で書けるのですが、規定値プロパティに書いた方がVBAコードを書かずに済むので、気楽に設定でき使い勝手がいいです
(^ー^
2005/07/12 気配りのススメ
ここしばらく、九州は雨続きです。
今日も天気がわるいですけど、今日外出する予定があります(−−;;
Accessネタです
画面は「見栄えも大事」と前に書いたことがありますが、見栄えだけではダメなんですよね(^ー^;; 当たり前ですが・・・
住所を入力するところで、IMEが自動で「オン」にならないとか、 TAB順がバラバラとか
見栄えが良くても、こんな所が出来ていないと、「見た目だけかぁ (−−;;」と思っちゃいます。
どちらかといえば、見栄えよりも先に、IMEとかTAB順をきちんとすべきだと思います。
こういった気配りは、見た感じだけではわかりにくく、使っていても気付かない目立たない存在ですが、そういうものです。
逆に、こういった気配りがされていないと「なんとなく使いにくい」と感じますから。
自分からガンガンアピールする気配りってのは、なんか嫌な感じですよね(^ー^;;
相手に気付かせない「さりげなさ」が重要です。
何かのランキングでしたけど、女性が男性に惹かれるポイントランキングで、ルックスはかなり下の方で、1位は、さりげない優しさ・気配りでした。
俺はそんなテレビ向けなコメントにだまされねぇぞ!!
(▼ー▼
2005/07/13 わたしゃ神様だよ
昨日、雨ですなぁ・・・と書いたのですが、傘も持たずに外出し、思いっきり濡れました。
出るときは晴れてたんですが「うっかり」という言葉では表せないほど、ずぶ濡れになってしまいました。
唐突ですけど、人は誰しも超能力に憧れますよね(^ー^
空を飛びたいとか、雷ドーンって落としたりとか、超サイヤ人になってみたりとか・・ まぁ、夢はふくらみます。
子供っぽいと思われるかもしれませんが、確実に超能力を身につけたい場面は、みなさんもあるんですよ。しかも、その能力は決まっています。
「データベースの形式 XXXXXXX を認識できません」
誰しも経験があると思います。 AccessMDBファイルの破損です(−−;;
とりあえず「時間よ戻れ(TーT 」です。
今日も日本のどこかで MDB破損 → 時間よ戻れ → 戻らない → 現実逃避
この流れが起こっていることでしょう。
残念ながら、あと少し神がかり的な力が足りないので、時間を戻せたことが無いのですが、とりあえずどうにか復旧する手段を考えます(−−;;
@とりあえず今の状態でバックアップ
Aデータベースの修復・最適化
これで治ってくれれば簡単です。
復旧後、すぐにバックアップですね。
→軽い障害
Bデータベースのインポート
修復・最適化で直らない場合は、新規データベースを作成し、復旧したいデータベースから全てのオブジェクトをインポートします大抵、どこかでエラーになるのですが、エラーで止まったオブジェクトが破損の原因です。
それ以外のオブジェクトを全てインポートした後、どうするか考えます。
開くこともできない場合
→ 諦めが肝心です(TーT
開けるが何かの操作でエラーが出る場合
→ 開けるうちに、全てコピーして別のフォームやモジュールに貼り付け
とりあえず、簡単にできそうな復旧はこれくらいですね
さらに深い部分を操作すれば、どうにかなる事もありますが、ほとんど復旧できる可能性は少ないので、さっさと諦めて涙を流しながら、記憶を頼りに作り直した方がいいでしょう(TーT
「あー バックアップしてれば・・・」という声も多いでしょう。壊れることがわかっていればバックアップも確実です。ただ、それができれば苦労しないっす(−−;;
「あと5分後に壊れるから、今バックアップしよー」って、それこそ神がかりな力です。
ということで、神がかり的な力が微妙に足りない私たちは、壊れた時は涙を流して復旧しないためにも、こまめにバックアップを習慣づけるしかないみたいです。
神社にお参りに行った時は、「わたしゃ神様だよ」「俺も神様だよ」って感じの神様に、色々お願いしてみます(^ー^
2005/07/16 かっこいい爺さんの見る新聞
昨日書いた、「わたしゃ神様だよ」からつながって・・・
「わたしゃ神様だよ」→「ドリフ」→「いかりや長介」→・・・→「モーガン・フリーマン」ってなことで、モーガン・フリーマンの映画見ました(^ー^;;
いかりや長介とモーガン・フリーマンって感じ似てません?
「ドライビング・ミスデイジー」という映画を見たのですが、モーガン・フリーマンが演じる老人は、かっこいいです。私も、あんな感じに年をとりたいですね(^ー^
その映画の中でモーガン・フリーマンが新聞を見てるんですよ。「読む」ではなく・・・「見る」
「字が読めないので、見た感じで内容を想像してます」って、ミス・デイジーに説明した時は、ちょっと悲しくなしました。
で、ここでの「見る」と「読む」の違いは、Accessでも関係があると思います。「読む」というのは、長い文章ですよね。内容を読んで理解するって感じです。では、見るのは・・・ パッと見るって感じですね(^ー^;;
どうAccessと関係があるかと言えば、フォントに関係があります。
名前や住所といった項目を並べて表示する時、フォントは等幅フォントの方が見やすいです。メモ・備考のような長い文章を各項目は、プロポーショナルフォントの方が読みやすいです。
ウィザードで作ると、全てプロポーショナルフォント(MSPゴシック)になってしまいますが、入力項目などは等幅フォント(MSゴシック)の方が見やすいです。
見やすさと読みやすさの違いって、英語にはないんですかね?(^ー^;;
ウィザードが作る画面を見て、ふと思いました
2005/07/17 現在出張中(^ー^::
昨日から新潟に出張しています。昨日は朝早くから夜遅くまでの作業だったので、blogも更新できませんでした。
新潟って、涼しいですね(^ー^
熊本とは明らかに体感温度が違います。
昔、沖縄にも仕事で行ったことがあるのですが、「沖縄って、カラッとしてて温度の割りに涼しいなぁ」と沖縄を体感した後、熊本空港に戻って空港を出た途端・・・ 滝のような汗がでました(−−;; あちーーっ
よそに移動すると、自分の地域の特徴ってのがよくわかります。
新潟で移動して気付いたんですけど、坂道ないんですよ、山もないです、ずーっと平坦な道ばかり自転車に優しい土地なんですかね(^ー^;;
熊本(天気悪い) → 傘持って行く → 新潟(雲ひとつ無い青空) → 傘じゃま
移動が多いから、傘じゃまになってます(−−;;
明日から、またAccessネタでコラム書きます。
2005/07/18 マクロを唯一使う場面
出張から帰ってきましたが、出張疲れで頭が働きません(−−;;
今日のAccessネタは、頭が働いていない状態で書いているので、
ちょっとした小技の紹介です(^ー^;;
最初のコラムでも書きましたけど「俺、マクロ使わねぇ宣言」をしているので、ほとんどマクロを使いません。
その方が作りやすいし修正も楽です。
マクロ嫌いな私ですが、メニューバーを消したい時はマクロの方が簡単なので、
そこだけは唯一マクロを使ってます。
フォームで入力画面を作っても、Accessのメニューバーが出てると、色々操作されて、ちょっとまずいって事ありますよね。
そんな時は、
@新規にマクロを作成
Aマクロに何も書かずに保存 名前は適当でOK
B「起動時の設定」のメニューバーにAのマクロ名を設定する
これで起動するとメニューバーが消えます。(バーの領域は残りますけど)
Applicationオブジェクトを操作して、バー領域ごと消す方法もありますが、
Accessの設定が変わってしまうので、他のAccessファイル開く時にも消えたままになります。
ちょっと使い勝手が悪いので、こればかりはマクロでやってます。
「俺、マクロ使わねぇ宣言」してますが、これくらいはOKってことで(^ー^;
新潟は熊本よりも涼しかったです、笹もち買って帰りました。
2005/07/19 そいつに手を出しちゃいけねぇ
出張疲れがまだとれません・・・
こんな状態でスターウォーズ3を見たので、速攻で寝ちゃいました(−−;;
ライトサーベルは、ハイテクなのか原始的なのか、よーわからんですけどカッコいいっすね。
えー Accessネタですね
オートナンバー型ってありますよね、勝手に連番ふってくれるやつです。
ウィザードで作ると、オートナンバーでテーブル作るので、使ってる人も多いと思います。
でも、オートナンバーは、あんまり使わない方がいいですよ(^ー^;;
・最適化すると消したはずの番号が使えるようになる
・コピペでオートナンバー型に貼り付けても、貼り付けた値にならない
(これはやり方ありますけど、気付かない人も多いです)
・オートナンバーを主キーにすると、そのレコードに関連する明細レコードをVBAで作りにくい
次の番号がわかりにくいってのと、勝手に番号をふれないってのが、使い勝手の悪さにでてきます。
また、最適化やコピペの問題で、後々のメンテナンスにも影響があります。
作るときは便利でも、後々面倒なことが多いので、できる限り使わない方がいいと思います。
オートナンバーも最初はハイテクな感じがして、便利だなぁーって思ってたんですけどね
「自動で連番をふって、なおかつ値の更新もできる」これがベストです(^ー^
SQL-Serverにはあるんですけどね
(^ー^;; identityプロパティがAccessにもあればいいのに
2005/07/20 ダヴィンチコード
ダヴィンチコードって本が売れてますけど、誰か要約して説明してもらえないっすかね(^ー^;;
自分で読むってところまで、興味がまだわかないので・・・
ダヴィンチコードとは違いますが、
「これ、なんの暗号だよ(▼ー▼ 」って思うことは、 Accessのヘルプを読むと、誰しも感じるところです。
ヘルプを読んでも意味がわからない・・・
ちんぷんかんぷんの文章が長々と書き綴られている点では、ダヴィンチコードよりも、エジプトとかで発掘された古文書に近い感じですかね
今はヘルプ読めるようになったんで、特に困ってはいませんけど、当時は、ヘルプのヘルプとか欲しかったですよ(−−;;
Accessのヘルプは解読できたのですが、今はDelphiのヘルプで悪戦苦闘しています。
ヘルプのヘルプをお願いします・・・
2005/07/21 21世紀ですよ SFの世界ですよ
みなさん忘れてるかもしれませんけど、21世紀です。
2001年宇宙の旅などSFの世界です。
21世紀になると「空飛ぶ車が便利だねぇ」って会話をしてると
小さい頃は思ってました・・・・ (−−;;まだ飛んでません
そんな21世紀の2005年ですが、 Access2003が最新バージョンですね。
で、私が一番使っているのはAccess97です。
ここから未来の予想なのですが、
2015年
・「ちょっと宇宙行かない?」って軽い感じで宇宙に行ける
・Access2015登場
・私が一番使っているのはAccess97
2065年
・宇宙人が「正直、隠れてるの飽きた」と言って姿を見せる
・Access2065登場
・私が一番使っているのはAccess97
2105年
・ギャル文字が古文として学校の授業科目となる
・Access2105登場
・私が一番使っているのはAccess97
ええ、はっきり言いますよ・・・
「Accessのバージョン上がるたびに、どんどん不安定になるのはやめてくれ(▼ー▼ 」
2005/07/22 書式プロパティは使える
07/21(木)
今日はサーバメンテナンスの為、早朝出動です
(−−;; 眠いっす
Access以外の言語を使うと「げっ、このプロパティないのかよ・・・(▼ー▼ 」って思うことが多々あり、Accessって便利なんだなぁーと改めて感じます。
その中でも「書式」プロパティは抜群です。
日付データを和暦で表示させたり、西暦で表示させたり、年月だけ表示させたりと、元データを加工・VBAで編集することなく、思った書式で表示できます。
これですね、Accessで普通に書式を使えることに慣れてると、他の言語で作るときに泣きますよ・・・
VBだったら、すべてVBAで一生懸命書くしかないです(−−;;
書式プロパティを使うと、色を変えることもできます。
数値でプラスの時は[黒]色、マイナスの時は[赤]色表示
書式はこんな感じです
0;-0[赤]
書式プロパティを使うとVBAで書かずに済むことも多いので、できるだけ書式を使うようにしています。
2005/07/24 今日はダメダメっす・・・
えー 昨日の早朝出動で寝不足な状態で、朝まで飲んでました。
ええ、かなり危険な状態です(−−;; 気持ち悪ぅ
頭まったく働かないっす
つーことで、ネタに困ったときのためにとっておいた、とっておきを紹介します。
RecordsetClone
(レコードセットクローン)
RecordsetなどはVBでもありますが、これはAccessにしかないもので、かなり使えます
(−−;;ううぅ 気持ち悪ぅ・・・
続きは明日。。。 すんません
昨日は何故かアクセスが倍増してましたけど、こんな感じで(−−;;うぷってなってて、それどころではないっす
2005/07/25 レコードセットクローン エピソード1
二日酔いと、たまってた仕事で昨日は更新できませんでした(−−;;
Accessネタです
えー RecordsetCloneですね
これはAccessを制御してるって気分になれるんで、ちょっと面白い機能です。
レコードの操作は、大きく分けて2通りあります。1つめはForm画面での操作、2つめはVBAによるメモリ上での操作(こっちは画面に見えません)
それぞれ操作の方法や使い方が違いますが、簡単に書くとこんな感じです
<新規レコード作成>
・From画面では「移動ボタンの新規」をクリックする
・VBAでは、RecordsetオブジェクトにAddnewする
ここまでは、それぞれ使い方が違うんだなぁーって感じなんですけど、 VBAの操作にあって、画面に無い操作ってのがあるんですよ。例えばレコードの検索 FindFirst は便利なんですけど、 Form画面では使えません。
で、使えないFindFirstを使えるようにするのが、RecordSetCloneです(^ー^
From画面も実際はメモリ上にRecordsetを持っています。それに対して「新規レコード作成」などの操作を行うと、 Form画面も連動して新規レコードに移動します。
使い所がピンとこないと思いますけど、私はこんな時に使ってます。
DoCmdの全レコード表示した後に、全レコード表示前の位置にレコードを移動させる
@VBAまたはクエリーで今表示しているForm画面にレコードを追加
(この状態では画面に反映されない)
ADmCmdの全レコード表示を実行
(カーソルが先頭に移動される)
B移動前のレコードにRecordsetClone.FindFirstを使って移動
CBookmarkプロパティで画面とRecordsetCloneの位置を揃える
SAMPLEで使うとしたら、こんな感じですね。
一覧画面→入力画面で新規入力→一覧画面の再表示(入力を反映)→FindFirstで元の位置に移動
具体的な書き方、構文は明日書きます。
今日のタイトルは、RecordSetCloneを何回にわけて書くか、まだ決めてなかったので、とりあえず流行り物っぽいタイトルにしてみました。
そういえば、スターウォーズVのラストで、アナキンがエピソードVの主人公に変更されてましたね。あまりストーリーについていけない私は「これ昔はオッサンじゃなかったか? ん?? なんだ?」と、そこだけ何度も巻き戻して確認したため、ストーリーを完全に忘れてしまいました(−−;;
次はヨーダがETとすりかえされるかもです
2005/07/26 レコードセットクローン エピソード2
暑いっす・・・ 熊本の暑さはハンパネェっす(−−;;
クーラーいれっぱなしだと、体だるくなるんですけど、入れとかないと、暑さでぐったりします・・・
体力が落ちてるんでしょうね
子供の頃は暑さで弱ったセミとか、いっぱい取って遊んでましたけど(^ー^;;
えー RecordSetCloneですね。
今日は書き方を書く予定でしたけど、 RecordSetCloneで使うBookMarkプロパティの説明をしないといけないので、 BookMarkの使い方を今日のAccessネタにします。
ブックマークってブラウザとかにある「お気に入り」もブックマークっていいますよね。お気に入りを選ぶと、そのホームページが表示されますけど、そんな感じの使い方です。
レコードにはそれぞれブックマークが自動的に設定されていて、
例えば・・
じゃがいも (ABCD) ←これがブックマーク
キャベツ (EFGH) ←これがブックマーク
@キャベツのレコードに移動
Aブックマークを取得(EFGH)
Bじゃがいものレコードに移動
Cブックマークに(EFGH)を設定→キャベツのレコードに移動する
このBookMarkプロパティをRecordSetCloneでどう使うかといえば、
画面上で2件目のレコードを表示していても、 RecordSetCloneは先頭のレコードになっています。
なので、画面と同じレコード位置になるように
RecordSetCloneのBookMark = 画面のBookMark
とします。
SAMPLE1だと
Forms![fm_Kokyaku].RecordSetClone.Bookmark = Bookmark Forms![fm_Kokyaku].Bookmark
これでForms![fm_Kokyaku].RecordSetCloneが画面と同じレコード位置になります。
ちょっと面倒ですけど慣れですね。
補足:BookMarkプロパティは文字列型です
2005/07/27 レコードセットクローン エピソード3
さすがに同じAccessネタを3日続けると、書くほうも飽きまてきます(−−;;うー
つーことで、急に打ち切りが決まった週間漫画のごとく、一気に終了させます。
画面に対して行えないFindFirstなどの操作を、 RecordSetCloneを使うことで実現するってところがポイントです。
ここでのFindFirstの書き方は SAMPLE1で顧客コード100を検索する場合
Me.RecordsetClone.FindFirst "tm01_KokyakuCode=100"
If Me.RecordsetClone.NoMatch <> True Then
Me.Bookmark = Me.RecordsetClone.Bookmark
Else
Beep
MsgBox "そんなデータないっす(−−;;"
End If
こんな感じですね。
FindFirst以外にも、Addnewだったり、MoveだったりとRecordsetで使えるものは一通り使えるので、
いろんな場面で使えると思います。
2005/07/28 連打! 連打!
昨日までのレコードセットクローンが難易度高めだったので、今日は簡単なAccessネタです。
トリビアの泉での「へぇー」ボタンらしきものを作ってみましょう。
ピッピッって音が出るだけですけどね(^ー^;;
フォームを作って、適当な大きさにボタンを貼り付けます。
で、ボタンのクリック時イベントのイベントプロシージャに
Beep
と書きます。
これだけで完成です。
後は連打してください。単純なんですけど、とりあえず連打したくなります(^ー^
VBA入門として、 "Hello"とメッセージ表示するよりは、少し楽しめると思います。
2005/07/29 あえて不便な方がいいことも
えー 夏ばて大会の真っ最中で、かなり白熱した夏ばてを日々送っています。最近は夏休みなのに小学生が外であそんでいるのを見ないですね、コンビニに置いてあるムシキングに群がって・・・
「お前ら樹液に群がる虫か(▼ー▼ 」
コピーとかFAX送るのに邪魔なんすよ、外で遊べってことです。
小さい頃は、ミヤマクワガタとか、アカガンとか取ってたんですけどねぇ
いまじゃヘラクレスとかスーパーで売ってあるし
(−−;; 外国人枠は規制してほしいっすよ
あー Accessネタですけど、まったく関係ありませんけど、テーブルの項目名について書きます。
Accessは日本語もOKなんで、[顧客コード]だったり、[得意先住所]といった名前を付けることができます。
でも、個人的には日本語名はあんまりお勧めしないっす
一つは、文字化けする可能性があります。
AccessのデータをWebだったりLinuxだったりと、まったく想定していない拡張をすることがあった場合、どこかで項目名が化ける可能性があります。
私も「そんな使い方しないからいいや・・・」と日本語名使ってましたが、案の定、ODBCドライバ部分で項目名が化けました・・・ 必死に作り直しですよ(−−;;
もう一つは、日本語の難しさですね。
例えば、[顧客売上高]という項目があるかと思えば[売上高顧客]という項目もある(^ー^;;
かなり混乱します、英数だけで項目名をつけると、かなり制限されるので、名前の付け方にも自然とルールができると思います。
今では日本語名対応のDBが多いですけど、あえて英数だけの方が不便な分だけ、作る時にはスッキリすると思います。
ずいぶん前の話ですけど、 [顧客売上高][売上高顧客]だけでなく[得意先売上]という項目名が1つのテーブルにありました
(−−;; すんません
2005/07/30 クワガタの方が強い
昨日に引き続きムシキングネタなんですが、 CMで「カブトムシVSクワガタ」みたいな感じで対決してますよね、どっちが強いのかって
ムシキングに夢中になってる子供たちも「ヘラクレス強えー」など言ってますが、大人の私からはっきり言わせてもらうと「クワガタの方が強い」これは実際に虫取りしたことがある人の中では常識です。
ゲームのように、K1っぽい戦い方ならカブトムシも1回くらいは押し出しできるかもしれませんが、カゴの中にカブトムシ、クワガタを一緒に入れて一晩過ごさせるとわかります。
中は時間無制限のデスマッチですよ
小さい頃はカブトムシの方が強いと思っていたので、一緒に入れてても安心かと思っていました。で、翌朝、その状況に呆然とした子供は全国に何千人以上いたと思われます。
冷静に考えれば、カブトムシの武器は「つつく、押し倒す」ですよ、かなり平和的です。対するクワガタは「切り裂く、噛み付く」危険な香りが漂いすぎです(^ー^;;
小学校低学年の頃、度胸試しに「ヒラタクワガタに噛まれてみる」というのが流行りましたが、洒落にならない痛さです・・・ あれは危ないっす(^ー^;;
ということで、ゲームに夢中になってる子供たちの夢をぶち壊す大人の意見として、「クワガタの方が強い」と言わせてもわいます。
忘れない程度のAccessネタになったのですが・・・(^ー^;;
えー ちょっとした小ネタです。
テキストボックスを貼り付けるとき、入力文字数ピッタリに幅を調整したいと思います。その時は、テキストボックスのサイズ変更中にステータスバーの左側に今の幅で表示可能な文字数が表示されます。
(プロポーショナルフォントでは、この文字数は参考になりません)
画面作るときに、サイズ広げる→Form開いて確認→サイズ小さくする・・・を繰り返す手間が少し減ると思います。
今日はAccessネタの方がボリューム小さかったです(^ー^;;
2005/07/31 アメフラシに見えねー?
「なんじゃこりゃーーーーーー (▼ー▼ 」
いきなりですが、なんじゃこりゃーな訳です。
何がなんじゃこりゃーなのかと言えば、 Access2003ですよ(−−;;
何でこんなに強制終了ばかり何度もさせられるんだって事ですよ。
「大変ご迷惑を・・・・[送信する]」という画面を何度見た事か、もうね、開発者から言わせてもらうと、5分に1回強制終了させられたら、仕事にはならんのですよ
[送信する]に怒りのエネルギーを込めて何度も送信したのですが、もちろん送りっぱなしで、反応なんてありません。
でも、実際問題、Access2003が安定して動いているところって、見たことないんですよ、大丈夫なんすかね??
で、意味がわらかんのが、
「Accessは前々からOffice製品と相性が悪い」
これは業界内では定説なんですが、 AccessもOffice製品なんじゃねーのってことですよ
わかりやすい例えだと・・・
ナメクジ君「俺さ、こうやって海に入ってるとアメフラシに見えねー? マジすごくね?」
くらげ君「お前、溶けてるぞ」
場所を考えろってことです
(−−;; 体を張ったネタは笑えるけど Access2003はネタじゃないから・・・
Office製品から切り離すことは無理っぽいんで、だったらOffice製品との相性はどうにかして欲しいっす。
今使っている「会社」「個人」のメールを、そのまま携帯に転送!! 外出先でも会社のメールが読めて、そのまま会社のアドレスで返信できます。 詳しくはこちら → FlyMailもっと詳しく FlyMailサイトはこちら → 携帯メール転送 FlyMail |
![]() |
Contents of This site
過去のコラム
ダウンロード
月平均3000ダウンロード!!
SAMPLE1
・顧客管理サンプルソース
・作成手順書付き
・スクリーンショット
入力画面
一覧画面
SAMPLE2
・一覧検索サンプルソース
・作成手順書付き
・スクリーンショット
リストボックスでの検索
サブフォームでの検索
Accessで100マス計算
・スクリーンショット
画面
印刷プレビュー
質問は掲示板、メールまで
Access関連サイト
アクセスアップ関連
