パソコン困りごと掲示板
◇-?|Accessのフォームで行数を制限したい-cho(2004/6/18-11:58)No.141998
 ┗?!|Re:Accessのフォームで行...-龍矢(2004/6/18-14:54)No.142020
  ┗?!!|Re:Accessのフォームで・..-龍矢(2004/6/18-15:16)No.142027

▲このページのトップに戻る
141998?|Accessのフォームで行数を制限したいcho 2004/6/18-11:58

メーカー名:EPSON エプソン
OS名:Windows2000
パソコン名:VB-640E
ソフト関連: Access97
--
Access97を使用しています。
フォームのテキストボックスで、「Enterキー入力時動作」をフィールドに行を追加にして
入力させる方法をとっています。(データ型はメモ型)
この方法で入力していくと、どこまでも入力可能なので、行数を制限したいのですが、
方法がわかりません。
例えば、10行までの制限で書き込みできるようにし、11行目へ記入しようとしたとき、
「これ以上入力できません」等のメッセージがだせたらと考えています。
わかる方、どうぞよろしくおねがいします。

▲このページのトップに戻る
142020?!|Re:Accessのフォームで行数を制限したい龍矢 2004/6/18-14:54
記事番号141998へのコメント
入力データの中に改行コードを含まないことを前提に書きます。
テキストボックスは数行に渡って入力しているように見えてもデータ的には1行です。行数で指定することは不可能だと思います。
ですが、横の長さは決まっているので文字数で制限してはどうでしょう。

VBで処理する場合のプログラム例

If Len(Me!テキストボックス) > (横入力可能文字数×10(縦)) Then
MsgBox ("行数がオーバーしています")
End If


もしくは、テキストボックスを10行分に分けて作成する方法ですね。この場合、処理(プログラム)が面倒になります。使う側にはこちらの方が親切かな、とは思います。

#どのようなデータを扱うかによっても変わってくると思いますが……
#ちなみに、ACCESSは独学なので自信ありません。
#間違っていたら指摘お願いします(苦笑)

▲このページのトップに戻る
142027?!!|Re:Accessのフォームで行数を制限したい龍矢 2004/6/18-15:16
記事番号142020へのコメント
すいません。読み間違いをしてしまいました。
フィールドの追加って書いてありますね。失礼。
上記内容は無視して下さい。

で、方法ですがデータ内の改行コード数を検索するというのはどうでしょうか。

VBで処理する場合のプログラム例
Dim i As Integer
Dim gyou As Integer '文字数に応じてここは変更してください。
gyou=0
for i=0 to LAN(データフィールド)
    If Mid(データフィールド,i,1)=Chr(13) Then
        gyou=gyou+1
    End If
Next
If gyou>10 then
    MsgBox ("行数がオーバーしています")
End If

iはFor文のための変数、gyouは行数の保存する変数として宣言してます。
ちなみにChr(13)は改行コードです。