tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルDo Loop 内のtextbox入力
記事No12342
投稿日: 2008/05/23(Fri) 11:39
投稿者せんさん
指定した文字列をTextに入力しますが
間違えた文字列の場合文字を消してもう一度
入力する用にしたいですが自動で照合・削除
するにはどのようにすればいいですか?
宜しくお願いします。

[ツリー表示へ]
タイトルRe: Do Loop 内のtextbox入力
記事No12358
投稿日: 2008/05/26(Mon) 08:13
投稿者花ちゃん
やりたい事を誰にでも伝わるように、もう少し詳しく5W1H を入れて説明して
頂かないとレスが付きません。

いつ、どのような場合に、間違えた文字と間違えていない文字の判断はどのように
するのか、自動でとは、どの部分を自動で行いたいのか?
それで、貴方はどこまで実現できてどこが解らないのか?

# 1〜10まで教えて下さいは、質問ではなく作成依頼となりレスも付きません。

[ツリー表示へ]
タイトルRe^2: Do Loop 内のtextbox入力
記事No12363
投稿日: 2008/05/26(Mon) 10:45
投稿者せんさん
すいません。
やりたいこと
1.QRコードをリーダーで読み込んだ文字列をTextに張り付ける。
2.あらかじめ決められた文字列(例:EXT123)
3.Textに入力した文字列と決められた文字列の照合する。
4.間違っていればTextの文字列を消す。
5.合っていればText表示はそのままで終了。
6.間違っていれば1へ戻る。(Loop)
Do Loop,Changeなど試しましたがうまく出来ません。
Private Sub Text1_Change()
    Dim aa As String
    Dim bb As String
    aa = Label1.Caption
    bb = Text1.Text
    If aa = bb Then
        Exit Sub
    '** text1.textを消す **
    Else
        text1.text=""
    End If
End Sub
このようなプログラムでは入力できませんどのようにしたらいいでしょうか?
宜しくお願いします。

[ツリー表示へ]
タイトルRe^3: Do Loop 内のtextbox入力
記事No12364
投稿日: 2008/05/26(Mon) 10:52
投稿者
> Private Sub Text1_Change()
>     Dim aa As String
>     Dim bb As String
>     aa = Label1.Caption
>     bb = Text1.Text
>     If aa = bb Then
>         Exit Sub
>     '** text1.textを消す **
>     Else
>         text1.text=""
>     End If
> End Sub

Chengeイベントは入力の度に動作しますから
1文字入力 → 判定 → 違うから消す を繰り返しちゃいますよ。

LostFocus や 一定桁数の入力、「判定」ボタン等で入力が確定したことが
判別できないといけないと思います。

[ツリー表示へ]
タイトルRe^4: Do Loop 内のtextbox入力
記事No12371
投稿日: 2008/05/26(Mon) 15:00
投稿者せんさん
>PCモニター上に表示された資材名と資材箱の中の資材(QRコード)とが同じか
を照合します。違っていた場合,ブザーを鳴らして同じになるまで繰り返します。
繰り返すのに必要な条件は張り付いた違った資材名を自動で消すことです。
この自動で消すプログラムがどのようにすればいいのか解かりません。
手順
1.QRコードをリーダーで読み込んだ文字列をTextに張り付ける。
2.あらかじめ決められた文字列(例:EXT123)
3.Textに入力した文字列と決められた文字列の照合する。
4.間違っていればTextの文字列を消す。
5.合っていればText表示はそのままで終了。
6.間違っていれば1へ戻る。(Loop)

Do Loop,Changeなど試しましたがうまく出来ません。
Private Sub Text1_Change()
    Dim aa As String
    Dim bb As String
    aa = Label1.Caption
    bb = Text1.Text
    If aa = bb Then
        Exit Sub
    '** text1.textを消す **
    Else

[ツリー表示へ]
タイトルRe^5: Do Loop 内のtextbox入力
記事No12372
投稿日: 2008/05/26(Mon) 15:03
投稿者せんさん
> >PCモニター上に表示された資材名と資材箱の中の資材(QRコード)とが同じか
> を照合します。違っていた場合,ブザーを鳴らして同じになるまで繰り返します。
> 繰り返すのに必要な条件は張り付いた違った資材名を自動で消すことです。
> この自動で消すプログラムがどのようにすればいいのか解かりません。
> 手順
> 1.QRコードをリーダーで読み込んだ文字列をTextに張り付ける。
> 2.あらかじめ決められた文字列(例:EXT123)
> 3.Textに入力した文字列と決められた文字列の照合する。
> 4.間違っていればTextの文字列を消す。
> 5.合っていればText表示はそのままで終了。
> 6.間違っていれば1へ戻る。(Loop)
>
> Do Loop,Changeなど試しましたがうまく出来ません。
> Private Sub Text1_Change()
> Dim aa As String
> Dim bb As String
> aa = Label1.Caption
> bb = Text1.Text
> If aa = bb Then
>     Exit Sub
> Else
>     text1.text=""
>endif
>end sub

[ツリー表示へ]
タイトルRe^6: Do Loop 内のtextbox入力
記事No12373
投稿日: 2008/05/26(Mon) 15:39
投稿者
QRコードを読んだときには、ENETERキーは発生するんでしょうか?
するならこんなのではだめですかね?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
 Select Case KeyCode
      Case vbKeyReturn '改行  
          If Labek1 <> Text1 Then
              Text1 = ""
              Beep
              Text1.SetFocus
              Exit Sub
          End If
  End Select
End Sub

[ツリー表示へ]
タイトルRe^7: Do Loop 内のtextbox入力
記事No12374
投稿日: 2008/05/26(Mon) 16:03
投稿者せんさん
有難う御座います。
残念ながらありません。
ほかの方法ではできませんか?

[ツリー表示へ]
タイトルRe^8: Do Loop 内のtextbox入力
記事No12378
投稿日: 2008/05/26(Mon) 16:47
投稿者
> 有難う御座います。
> 残念ながらありません。
> ほかの方法ではできませんか?

違ったら消すのではなく合ってたら貼り付ける。
って発想の転換はどうでしょう?

[ツリー表示へ]
タイトルRe^6: Do Loop 内のtextbox入力
記事No12382
投稿日: 2008/05/26(Mon) 19:07
投稿者K・今川
>1.QRコードをリーダーで読み込んだ文字列をTextに張り付ける。
Text1.Textへどのような方法でQRコードを入力しているのかわからないので
とりあえず手入力として考えてみました。

Private Sub Text1_Change()

    Dim aa As String
    Dim bb As String

    aa = Label1.Caption
    bb = Text1.Text
    '------------------------------------追加
    If text1.text=""   Then Exit Sub   '<=====テキストを消したときに対応。
    If Len(aa)>Len(bb) Then Exit Sub   '<=====あらかじめ決められた文字列と
                                       '      同じ文字数になるまで比較しない。
    '----------------------------------------
    If aa = bb Then
        Exit Sub
    Else
        text1.text=""
    EndIf

End Sub

Text1.Textへの入力がプログラム上で Text1.Text=QRコード とか
ctrl+V などで貼り付けるのなら二行目のIf文は不要です。

[ツリー表示へ]
タイトルRe^7: Do Loop 内のtextbox入力
記事No12386
投稿日: 2008/05/27(Tue) 08:48
投稿者せんさん
有難う御座います。
TEXT入力文字列はLABELに張り付いている文字列より
少ない場合があります。
資材缶が沢山ありLABEL表示の資材を取り出すのに
間違いを無くします。
キー入力でなくQRコードスキャナーで缶に張り付いて
いるQRコードを読み照合します。
合ったいれば資材計量に行く
間違っていればTEXTの文字列を消しもう一度
番う資材缶QRコードを読む
以上です。

[ツリー表示へ]
タイトルRe^8: Do Loop 内のtextbox入力
記事No12387
投稿日: 2008/05/27(Tue) 12:59
投稿者K・今川
>Text1.Textへの入力がプログラム上で Text1.Text=QRコード とか
>ctrl+V などで貼り付けるのなら二行目のIf文は不要です。

最後にこの様に書いていたのですが読まれなかったのでしょうか?

    '------------------------------------追加
    If text1.text=""   Then Exit Sub   '<=====テキストを消したときに対応。
    '----------------------------------------

この様にすればText1.Textの内容が変更されたとき、
文字数が0でなければ、比較をします。

で、ふと思ったのですが
QRコードとあらかじめ決められた文字列を比較してから
text1.textに書き込むのはだめなんですか?

If Label1.Caption = QRコード Then
    text1.text= QRコード
Else
    text1.text=""
endif

[ツリー表示へ]