[三流君] −−>
[プログラマー業務の愚痴] −−>
[バックナンバー一覧]
−−> No.039 Ken3の悪いクセ、&””
Ken3の悪いクセ、&””
本文(発行内容)
<Ken3の悪いクセ、&””>
目次
1.はじめの挨拶
2.「 & "" 」、私の個人的なクセです。
3.操作者への心遣いって
4.おわりの挨拶
----------------------------------------------------------------------------
/*
* 1.はじめの挨拶
*/
こんにちは。
芸術的なプログラムが書けない、Ken3の独り言です。
お時間のある人は、お付き合いください。
では、3流君のグチ(今回は悪いクセ)、、、聞いてください。
/*
* 2.「 & "" 」、私の個人的なクセです。
*/
前回のメルマガに対して、
いろいろとお返事いただき、どうもです。
*もうヤメチマエメールなど、熱心に送ってくれる方、
ありがとうございます。
(いろいろ、面白いですよ、また、いっぱいくださいね)
自分へ一言、、、↑こんな書き方するから、変り者って言われるんだよ、、、
さて、いつものくだらない前置きは、これくらいにして、
私のソース記述の悪い癖について、今回は、書きたいと思います。
「 & "" 」について、質問メールをいただきました。
回答は、私の個人的なクセです。
後輩にも同様の注意されてるんだけど。なかなか、治っていない。
よく、空の文字列などをチェックするときに、
if len(strMOJI & "") = 0
とやり、
ソースを見た人が、なんだこりゃ、、
””+して文字数を見る、、素直にIs Nullや何かできけと言われてます。
*ストレートな表現になってないと、、、、
また、ファイル名作成処理(GetDBPath() & Me![画像ファイル名])
が数回使われているとのご指摘。
たしかに、、、頭で生成しのほうが素直だし、速いですね。
*これがループの中だったら、チリも積もれば山となるで、、、
書き方も三流らしく、個性的でイイジャン
なんて、開き直っちゃダメです(自分へ強く)
まぁ、同じ動作するプログラム、いろいろ書けますが、
シンプルなのが一番、わかりやすくて、速いと思います。
*ホントに思ってんの?なんて声が後輩から聞こえそうですが、、、
下記の指摘・参考意見メール、、、を見て、みなさんもいろいろ感じ取ってください
(テメエが一番感じ取れって、、はいはい。。。)
-------------------------------------------------------------------------
In message "Re: [ 三流 PG 番外編今日の一品 No.010] Acc97 Picture プロパティ",
>2月10日配信の
>>====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*=
>>[ 三流PG 番外編 今日の一品 No.010 ] 2000/02/10 木曜日 発送予定
>>=*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====
>から、Empty値がらみのエラー対策のように見える、「 & "" 」が
>ちょっと気になったのでメールさせて頂きました。
>以下チョット目を通してください。
>>----------------------------------------------------------------------------
>><Access97 Pictureプロパティ>
>>Private Sub 画像ファイル名_AfterUpdate()
>>
>> '入力データ無しのときは、処理しない
>> If Len(Me![画像ファイル名] & "") = 0 Then
> #If Me![画像ファイル名] = vbNullString Then
> #なんてことはできないのですか?
> #それに 「 & "" 」って必要なんですか?(Empty値がらみ?)
> #'**********************
> # Dim StrPictureFileName As String
> # StrPictureFileName = Me![画像ファイル名]
> #更にここをTrim$(Me![画像ファイル名])
> #として空白のみ文字列に対処したほうがよい
> #かと
> # If StrPictureFileName = vbNullString Then
> # ・・・・・・
> #'**********************
> #とすればEnpty値がらみのトラブルは起きないはずです・・
> #何度もデータベースファイルにアクセスする必要が減り
> #高速化するかと・・(可読性は変わらないと思います)
>> Me![図].Picture = ""
>> Exit Sub
>> End If
>>
>> 'ファイル存在チェック
>> If Len(Dir(GetDBPath() & Me![画像ファイル名])) = 0 Then
> #それにここを含め GetDBPath() & Me![画像ファイル名]
> #を2回使用しますが、上記同理由で変数に保存してそれ
> #を使用したほうがよいと思います
> #'**********************
> # StrPictureFileName = GetDBPath() & StrPictureFileName
> # If Dir$(StrPictureFileName) = vbNullString Then
> #'**********************
> ですね
>> MsgBox GetDBPath() & Me![画像ファイル名] & "ファイルが見つかりません
>>確認してください"
>> Exit Sub '途中で抜けます
>> End If
>>
>> '画像のセット
>> Me![図].Picture = GetDBPath() & Me![画像ファイル名]
> #Accessではこんな事できるんですね、勉強になります。
>>
>>End Sub
>>'--------------------------------
>AccessVBAを使用したことがないので、使えない関数を書いたかも
>知れません。
>また、根本的にVBAの流儀に反したコードなのかも知れません。
>そんな時は、鼻で笑って「馬鹿なメールだ」で済ませてください。
>とにかく、何のための「 & "" 」かが、解らなかったのでEmptyが
>らみではないか想像して、それならこの方がスマート(高速化副産
>物もある)とメールした次第です。
---------------------------------
どうですか?
いろいろと考えさせられましたよね?
(考えさせられたのは、私だけ?)
また、メルマガ読みなおしていたのですが、
No16でも、同じようなことやっていて、
Null関係、宿題にしたままでした。
(このへんの心が、悪い癖をそのままにしている原因?)
--------------------------------------
In message "[三流PG No.016] Access97編 質問内容 詳細と回答、、",
>/*
> * 3.気になったこと、、Null関係
>*/
>Null関係でメールをいただきました。
>----
>>「[三流PG No.014] 第二回 反省会? と クリック広告について」の
>Accessとか、VBAで関数の引数にNullを渡すと、
>エラーになるので、
>「moji & ""」とかNZでかわしますよね。
>(私、&””が好きです、NZはかっこよくて私には、チョットあわない)
>VBAのNullについて、機会を作って、書きたいと思います。
>Nullについて熱く語りたい方は、Ken3まで、メールください。
>楽しい毒舌まってます。(←また、日本語変だぞ、、、気にしないでよ)
---------------------------------------------
でも、、なんか、Nz関数や、Is NULL、、私の口にはには、あいそうも、、
なんて言ってるから、三流君なんだよね。キット。
自分へさらに一言、後輩の見やすいプログラムを参考にして、少しはやったら?
/*
* 3.操作者への心遣いって
*/
操作者への心遣いって、考えたことありますか?
(かっこよく言うと、人にやさしいシステム・プログラム)
*ムダなエラー印刷ばかりで地球にやさしくないプログラム
作成する人に言われたくないね。
そんなことを気が付かせてくれるメールをいただきました。
------------------------------------------------------
In message "ACCESS画像関係",
>>お知恵を借りたいのですが、AC
>>CESSで画像付き社員リストを
>>作りたいのですが、
>>サンプルファイル(Image.
>>jpg)のような帳票を作るには
>>どうすれば良いでしょうか?
>>このイメージにこだわることはな
>>いのですが、
>
>ということですが前回画像を取り上げてもらったときと同じですね
>
>あれからフォームで次の様にしました
>
>まづテーブルには各社員に対応する画像ファイルのファイル名を格納する
>画像file名というフィールドを設定しファイル名のみを格納する
>フォームにはイメージオブジェクトを適当な大きさにして貼りつけ[社員画像]としま
>す
>毎回表示するのは少し遅いのでボタンを押したときだけ表示する為
>社員表示というボタンを作りました
>ファイル名を呼び込む為の[画像file名]も表示しておいて・・・
>
>Option Compare Database
>Const PictPath As String = "C:\社員画像\" '画像ファイルパス名
>Option Explicit
>
>Private Sub Form_Current()
> Me![社員表示].Visible = False
> Me![社員画像].Visible = False
> If Not IsNull(Me![画像file名]) Then Me![社員表示].Visible = True
>End Sub
>
>Private Sub 社員表示_Click()
> If Len(Dir(PictPath & Me![画像file名])) = 0 Then
> MsgBox Me![画像file名] & "ファイルが見つかりません"
> Exit Sub
> End If
> Me![社員画像].Picture = PictPath & Me![画像file名]
> Me![社員画像].Visible = True
>End Sub
>
-----------------------------------------------
あっ、と思ったのは、
>毎回表示するのは少し遅いのでボタンを押したときだけ表示する為
>社員表示というボタンを作りました
の部分です。
確かに、連続入力・修正など、画像確認がいらない時、
表示が遅いと、気になります。
このへんの積み重ねが、良いシステムと悪いシステムの差になると思います。
わかった、変り者のKen3さん <--> はい。
少し前に話題になった、エラーチェックなども、
システムのできに大きく影響します。
オイ、聞いてんのかよ。。
/*
* 4.終わりの挨拶
*/
今回、いい指摘メール・参考メールをいただいたので、
プログラムの内面の気配り、外面(操作性)の気配り
をテーマに書こうとしましたが、なかなか、うまく書けませんでした。
回り道しないで、気配りってタイトルのほうがよかったかも?
なんて思いつつ、今日も逃げるようにサヨナラです。
感想・・・・ご指摘・・・・文句・・・など
気軽に掲示板に書いてください。
では、また。 三流PG Ken3でした。
フィードバック
愚痴系の→[掲示板]←を覗く、質問を書き込む
評価・感想
三流君の主なリンク先
[アクセスランキング]
[サイトマップ]
[リンク先・相互リンク先など]
Ken3の日記(weblog) --
[広告・副収入系]
[プログラマー業務の愚痴]
[VBA系の話題]
[ASP系の話題]
[コンビニ系ネタ]
[その他]
その他 宣伝広告