以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 用姓名的拼音首字母定位记录 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110181) |
-- 作者:刘林 -- 发布时间:2017/11/28 14:27:00 -- 用姓名的拼音首字母定位记录 Dim txt As String = e.sender.Text If txt > "" txt = "\'%" & txt & "%\'" Dim dr As DataRow Dim po As Integer po = Tables("初中上分_table1").FindRow("[考号] Like" & txt) If po >= 0 Then \'如果找到 Tables("初中上分_table1").Position = po \'选定 Else Tables("初中上分_table1").Position = 0 MessageBox.show("该考号在所选学生范围内不存在") e.sender.text = "" End If End If 老师,上面代码是输入考号的几位定位学生记录,我想同样在这个文本框中如果输入表中的某个姓名的拼音首字母来定位学生怎样做?
|
-- 作者:有点甜 -- 发布时间:2017/11/28 15:13:00 -- 1、用一列记录拼音首字母
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103586&skin=0
2、查找条件改成
po = Tables("初中上分_table1").FindRow("[考号] Like " & txt & " or 拼音 like " & txt)
|
-- 作者:刘林 -- 发布时间:2017/11/28 16:23:00 -- po = Tables("初中上分_table1").FindRow("[考号] Like " & txt & " or 拼音 like " & txt)
|
-- 作者:有点甜 -- 发布时间:2017/11/28 16:32:00 -- 增加一列拼音列,把根据姓名列得到对应拼音字母
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103586&skin=0 |
-- 作者:刘林 -- 发布时间:2017/11/28 16:33:00 -- Dim txt As String = e.sender.Text If txt > "" Dim reg2 As new System.Text.RegularExpressions.Regex("^[a-zA-Z]+$") Dim reg1 As new System.Text.RegularExpressions.Regex("^[0-9]+$") If reg1.Ismatch(txt) = True Then txt = "\'%" & txt & "%\'" Dim po As Integer po = Tables("初中上分_table1").FindRow("[考号] Like" & txt) If po >= 0 Then \'如果找到 Tables("初中上分_table1").Position = po \'选定 Else Tables("初中上分_table1").Position = 0 MessageBox.show("该考号在所选学生范围内不存在") e.sender.text = "" End If ElseIf reg2.Ismatch(txt) = True Then msgbox("字母") txt = "\'%" & txt & "%\'" Dim py As Integer py = Tables("初中上分_table1").FindRow("getpinyin([姓名],1) Like" & txt) If py >= 0 Then \'如果找到 Tables("初中上分_table1").Position = py \'选定 Else Tables("初中上分_table1").Position = 0 MessageBox.show("该姓名学生不在所选范围内") e.sender.text = "" End If Else messagebox.show("不能输入字母和数字组合,请输入考号后4位数字或姓名拼音首字母") e.Form.Controls("textbox6").text="" e.Form.controls("textbox6").Select End If End If 拼音如何做?
|
-- 作者:有点蓝 -- 发布时间:2017/11/28 17:16:00 -- 你要先增加一个列,比如名称叫“拼音”,先通过getpinyin方法把所有的姓名的拼音存储到“拼音”列中。查询的时候直接查拼音列 |
-- 作者:刘林 -- 发布时间:2017/11/28 17:49:00 -- 这样增加了数据量,我的想法是可不可以直接转换出来,不去增加一列 |
-- 作者:有点甜 -- 发布时间:2017/11/28 17:56:00 -- 以下是引用刘林在2017/11/28 17:49:00的发言:
这样增加了数据量,我的想法是可不可以直接转换出来,不去增加一列
不可以。这一列可以是临时列,可以在打开项目的时候动态加入,其值,可以在afterLoad事件动态生成。 |
-- 作者:刘林 -- 发布时间:2017/11/28 21:51:00 -- 刘强的拼音首字母是lj 而我们正常都是lq,这如何办? |
-- 作者:有点蓝 -- 发布时间:2017/11/28 23:06:00 -- 没有办法,只能手工改改。或者添加一个字典表记录多音字的用法 |