啊不好意思,代码是这样的:
 Dim Name_Sarch As String,Found As Integer,RecNum As Long,TmpPerson As PersonInfo
 Name_Search = InputBox("范围:","查找")
 Name_Search = UCase(Name_Search)
 Found = False
 For RecNum = 1 To LastRecord
  Get #FileNum,Recnum,TmpPerson
   If Name_Search = UCase(Trim(TmpPerson.Name) then
    Found = True
    Exit For
   End If
  Next
  If Found = True Then
   ...
  Else
   MsgBox Name_Search + "Not Found!!"
  End If
End Sub如果在“InputBox”中输入中文,则激活MsgBox;如果输入英文则显示正常的查找结果。

解决方案 »

  1.   

    没听太明白。
    不知道asc(UCase(E_word))是97-122或asc(Lcase(E_word))是65-90管用吗?
      

  2.   

    要知道中文是两个字节的啊!
    你这样取值会得到乱码的!
    呵呵…………
    不信你在代码中插入这一行:
    msgbox TmpPerson.Name
      

  3.   

    呵呵,想容易了.
    不过 mid("中国",1,1)的确是显示的"中",并且mid("中a国,1,2")="中a"
      

  4.   

    for l = len(New_Search) to 1 step -1
        if asc(mid(new_search,l,1))<0 then exit for
    next
      

  5.   

    Asc AscW 对中文处理都会出错,你难道不能使用其他方法吗?
      

  6.   

    Asc 函数
    返回一个 Integer,代表字符串中首字母的字符代码。
    语法
    Asc(string)
    必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
    说明
    在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
    注意    AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
    这个问题,如果你有王国荣的api的那本书,可以看一看,上面有专门的讲解