注册 登录
编程论坛 VB6论坛

如何将输入到第一文本框中的内容转移到第二个文本框中并校验是否有重复(请高手指教)

yj5678 发布于 2013-10-30 11:44, 2052 次点击
如题:如何将输入到第一文本框中的内容转移到第二个文本框中并校验是否有重复,如果有重复的就不加入到第二文本框
比如第一次文本框中输入123 ,第二个文本框就会显示123 ,然后第一个文本框清空
    第二次在第一个文本框中输入234,第二个文本框就会显示123,234    ,然后第一个文本框清空, 自动在第二个输入前加逗号
    第三次在第一个文本框中输入234,第二个文本框就会显示错误信息,234不会被加入到第二个文本框中

请问这个怎么做以下是我的代码,但怎么都去不了校验后的重复项,第一个框就是scan.text 第二个框是sn.text
Private Sub scan_LostFocus()

If scan.Text = "" Then Exit Sub 'keeps from doing anything if there is no scan

If sn.Text = "" Then
     sn.Text = scan.Text


 Else: sn.Text = sn.Text & "," & scan.Text  '& Chr(13) + Chr(10)
    ' Exit Sub
   
    Dim ii As Integer
    Dim Ccount As Integer
    Ccount = 1

If InStr(sn.Text, scan.Text & ",") > 0 Then MsgBox "Duplicate SN,please delete it and then re-scan"

For ii = 1 To Len(sn.Text)
If Mid(sn.Text, ii, 1) = "," Then Ccount = Ccount + 1
Next ii
cou.Text = Ccount

End If
      
      scan.Text = ""
      scan.SetFocus ' sets the cursor back to the smaller box to scan the next SN

End Sub

6 回复
#2
风吹过b2013-10-30 15:24
先验证重复,再决定是否增长上去。

验证重复时,可以这个做。

dim s as string
s="," & sn.Text & ","                     '把合并后的字符串, 前面,后面,各被一个分隔符
if instr(1,s,"," & scan.Text & ",") >0 then         '在合并后的字符串中,查找目标字符串是否出现,以分隔符引起,防止半出现         
    '含重复,处理 ,如提示
else
   '不含复复,处理,如合并
   sn.Text = sn.Text & "," & scan.Text
end if
#3
yj56782013-10-30 17:00
回复 2楼 风吹过b
有没有实际的代码注解一下,我是初学者,不知道怎么去写校验后如果是相同的字符就过滤。现在不同的是可以输入进去,相同的我也做到校验会弹出消息框,但问题是校验后相同的字符还是会加进去,所以有没有高手看看怎么搞法谢谢
#4
yj56782013-10-30 17:14
回复 2楼 风吹过b
谢谢你帮我解决了问题,还有一个问题就是你可以看见我代码里有个计数器,但我这个程序第一次输入的时候是从2开始的,能否指点一下怎么从1开始计数当每输入一个正确的字符的时候。谢谢
#5
yj56782013-10-30 17:21
回复 2楼 风吹过b
计数的问题刚刚自己解决了,但我想在错误时提示信息,这个我不知道加到哪里去
 if instr(1,s,"," & scan.Text & ",") >0 then  Msgbox"wrong number" 如果加到这里的话系统会报错
#6
Artless2013-10-31 11:10
if instr(1,sn.text,"," & scan.Text & ",") >0 then  Msgbox "wrong number"
#7
风吹过b2013-10-31 16:35
dim s as string
s="," & sn.Text & ","                     '把合并后的字符串, 前面,后面,各被一个分隔符
if instr(1,s,"," & scan.Text & ",") >0 then         '在合并后的字符串中,查找目标字符串是否出现,以分隔符引起,防止半出现         
    '含重复,处理 ,如提示
    msgbox 就写到这里
else
   '不含复复,处理,如合并
   计数就写到这   
sn.Text = sn.Text & "," & scan.Text
end if

----------------
你写到 then 后,那么这行就被当作 一行的IF ... then  ...   else ... 结构解析,
造成下面的命令中的  else 报错, end if 也跟着报错。
我用的是
 if   then
 ...
else
...
 end if

块结构。
这二种的区别就是 一个判断后只能用于一行或少数几行命令
另一个是 一个判断后可以 有一堆命令。
1