成语大全网 - 汉语词典 - vb6.0 拼音检索代码

vb6.0 拼音检索代码

刚才给你写了一个汉字转拼音的例子.你可以这样.用我的那个函数将你数据库中的记录的第一个字符转换成拼音,然后再和你输入的字母对比,如果符合就列出来.代码如下,具体的操作数据库的我就不做了

Public Class Form1

Private Function GetPY(ByVal strParmeter As String) As String

Dim intTmp As String, i As Long

For i = 1 To Len(strParmeter)

intTmp = Asc(Mid(strParmeter, i, 1))

If intTmp < Asc("啊") Then

GetPY = GetPY & "*"

ElseIf intTmp >= Asc("啊") And intTmp < Asc("芭") Then

GetPY = GetPY & "A"

ElseIf intTmp >= Asc("芭") And intTmp < Asc("擦") Then

GetPY = GetPY & "B"

ElseIf intTmp >= Asc("擦") And intTmp < Asc("搭") Then

GetPY = GetPY & "C"

ElseIf intTmp >= Asc("搭") And intTmp < Asc("蛾") Then

GetPY = GetPY & "D"

ElseIf intTmp >= Asc("蛾") And intTmp < Asc("发") Then

GetPY = GetPY & "E"

ElseIf intTmp >= Asc("发") And intTmp < Asc("噶") Then

GetPY = GetPY & "F"

ElseIf intTmp >= Asc("噶") And intTmp < Asc("哈") Then

GetPY = GetPY & "G"

ElseIf intTmp >= Asc("哈") And intTmp < Asc("击") Then

GetPY = GetPY & "H"

ElseIf intTmp >= Asc("击") And intTmp < Asc("喀") Then

GetPY = GetPY & "J"

ElseIf intTmp >= Asc("喀") And intTmp < Asc("垃") Then

GetPY = GetPY & "K"

ElseIf intTmp >= Asc("垃") And intTmp < Asc("妈") Then

GetPY = GetPY & "L"

ElseIf intTmp >= Asc("妈") And intTmp < Asc("拿") Then

GetPY = GetPY & "M"

ElseIf intTmp >= Asc("拿") And intTmp < Asc("哦") Then

GetPY = GetPY & "N"

ElseIf intTmp >= Asc("哦") And intTmp < Asc("啪") Then

GetPY = GetPY & "O"

ElseIf intTmp >= Asc("啪") And intTmp < Asc("期") Then

GetPY = GetPY & "P"

ElseIf intTmp >= Asc("期") And intTmp < Asc("然") Then

GetPY = GetPY & "Q"

ElseIf intTmp >= Asc("然") And intTmp < Asc("撒") Then

GetPY = GetPY & "R"

ElseIf intTmp >= Asc("撒") And intTmp < Asc("塌") Then

GetPY = GetPY & "S"

ElseIf intTmp >= Asc("塌") And intTmp < Asc("挖") Then

GetPY = GetPY & "T"

ElseIf intTmp >= Asc("挖") And intTmp < Asc("昔") Then

GetPY = GetPY & "W"

ElseIf intTmp >= Asc("昔") And intTmp < Asc("压") Then

GetPY = GetPY & "X"

ElseIf intTmp >= Asc("压") And intTmp < Asc("匝") Then

GetPY = GetPY & "Y"

ElseIf intTmp >= Asc("匝") And intTmp < 0 Then

GetPY = GetPY & "Z"

ElseIf (intTmp >= 65 And intTmp <= 91) Or (intTmp >= 97 And intTmp <= 123) Then

GetPY = GetPY & Mid(strParmeter, i, 1)

Else

GetPY = GetPY & "*"

End If

Next

End Function

Private Sub Form_Load()

End Sub

'这里的事件改一下.你输入的时候就触发事件,不用单击

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'这里你注意一下.你把textbox1.text换成数据库里面的所有查询的某一列(如姓名列)的内容,(查询数据库应该会的吧).申明一个变量MyChar来接收你输入的内容,然后做一个循环,

for i=0 to rs.recordcount

DChar = GetPY(rs("**"))

if MyChar=DChar then

显示该行的查询内容

end if

rs.movenext

next

End Sub

End Class