忍者ブログ

2024-05-17(Fri)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2006-09-17(Sun)

Access テキストボックスの行数のカウント

 はい電算室です。今日はなにがおきるのでしょうか。

 今、「お姉ちゃん」が困っていること。それは、Aceessのテキストボックスに入力してある一定の行数を超えると警告メッセージを出すというもの。

 そんなの改行コード(CrLf)をカウントすればいいことじゃん。

 と思ったのですが、実はそう簡単ではありませんでした。

拍手[2回]

 改行コードを数えるのでもいいのでしょうが、最大5000文字入力できるテキストボックス。一字ごと検索して改行コードと一致したらカウントアップというのはあまり実用的ではありません。

 あるサイトで見つけたのは、Enter キーを何回押下したか数えるというもの。しかし、それは新規入力では有効でしょうが、修正の場合はあらかじめ登録されている文字があるので正確とはいえません。
 さらには、改行だけではなく、折り返しでも一行増えるわけで・・・。

 どっかのサイトでは、座標軸を取得していたなぁー・・・・。Apiはあまり使いたくないし・・・

 結局遅くまであーでもない、こーでもないと試行錯誤したのですが、有効な手はありませんでした。

 が、家に帰ってからひらめきました。

 なんだこんな手があるではないか。

 では、紹介します。Aceessで、テキストボックス内の行数をカウントする方法。

 考え方はこうです。

 テキストボックス内のテキストを、一度テキストファイルとして出力します。そして、出力したテキストファイルを今度は一行ずつ読んでいくというもの。
 一行あたり半角80文字入力できるテキストボックス(txt_記録)の行数をカウントします。改行コードなしの折り返しも考慮。

    Dim i As Integer
    Dim x As Double
    Dim y As Double
    Dim work_txtu As String      'Unicode用
    Dim work_txta As String      'Ascii用

 'テキストファイルのoutput open
  Open "記録.txt" For Output As #1
     Print #1, Me![txt_記録] 
    Close #1
   
'テキストファイルのinput open 
   Open "記録.txt" For Input As #1
    i = 0
    Do Until EOF(1) = True
        Line Input #1, work_txtu     'テキストファイル一行ずつ読む
        work_txta = StrConv(work_txtu, vbFromUnicode) 
        x = LenB(work_txta)    '一行の文字数(バイト数)カウント
        x = x / 80            '一行あたりの文字数(バイト数)で割る。
        y = Fix(x)            '小数点以下切捨
        If y >= 1 Then
           i = i + y
        End If
        If x = 0 Or x <> y Then        'ちょうど割り切れる場合も考える
           i = i + 1
        End If
    Loop
    Close #1
    MsgBox ("行数は" & i) 

ここでのポイントは、まず、テキストボックス内のデータを「記録.txt」に出力。それを、一行ずつ読みます。
(Line inputがミソ)
Access2000から文字コードはUnicode対応になっているので、すべてが2バイト1文字。全角半角の
判断がつかないので、これをAsciiコードに変換します。それが、

work_txta = StrConv(work_txtu, vbFromUnicode) 

 ですね。それを、一行あたりの文字数で割ってやって折り返しの場合の行数を算出。

 あとは、ちょうど割り切れる場合のことなどを考慮してやればOKというわけです。

 

 

 

一度テキストファイルに落とすなんて

 

 

邪道ですか?

 

PR

この記事にコメントする

Name
Title
Mail
URL
Comment
Pass
Pictgram
Vodafone絵文字 i-mode絵文字 Ezweb絵文字

この記事へのトラックバック

この記事にトラックバックする

Amazon

PR

情報サービス

楽天

ソフト関連

メーカー直販PC

周辺機器

ランキング

プロフィール

HN:
NORI
性別:
男性
趣味:
車でどこへでも
自己紹介:
文学部卒業ながら、ひょんなことからシステム会社に就職。
しかしながらあまりの激務に退職。もうシステム系はいやだと思っていたが、ひょんなことから企業の電算室に勤務することとなる。

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ブログ内検索

Google
Web ブログ内

最新TB

アクセス解析