以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字段前段包含相同内容,如何调用字段代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171994)

--  作者:hbfnmxb
--  发布时间:2021/9/17 8:38:00
--  字段前段包含相同内容,如何调用字段代码
e.Form.Controls("Label1").Text = "正在从代码库中导入代码,请稍后..."
Application.DoEvents()
Dim timestart,timeend As Date
timestart=Date.now

Dim dt1 As DataTable = DataTables("数据库")
Dim dt2 As DataTable = DataTables("代码库")
For Each dr As DataRow In dt1.Select("")
    Dim filter As String = "院校名称 = \'" & dr("院校名称") & "\'"
    Dim fdr = dt2.find(filter)
    If fdr IsNot Nothing Then
        dr("院校代码") = fdr("院校代码")
    End If
Next

For Each dr As DataRow In dt1.Select("")
    Dim filter As String = "专业名称 = \'" & dr("专业名称") & "\'"
    Dim fdr = dt2.find(filter)
    If fdr IsNot Nothing Then
        dr("专业代码") = fdr("专业代码")
    End If
Next


e.Form.Controls("Label1").Text = "院校代码及专业代码导入完毕!"
timeend=Date.now
e.Form.Controls("Label1").text="第一步操作完毕,进行第二步!耗时" & (timeend-timestart).TotalSeconds & "秒"
Messagebox.Show("从代码库中调入院校代码及专业代码完毕,请继续!")


以院校名称和专业名称为条件,调用代码库中的对应代码,一个字不差时,可以完全调用过去,但数据库中的院校名称(专业名称)与代码库中的院校名称(专业名称)一般情况下是字段前段相同,后面有的有后缀,这时,就不能调用了。能不能实现:数据库中的院校名称(专业名称)与代码库中的院校名称(专业名称)完全相同的时候能调用,在字段前部分相同时,也能调用?这个条件公式如何写?谢谢老师!!

图片点击可在新窗口打开查看此主题相关图片如下:01.png
图片点击可在新窗口打开查看
如:口腔医学这个专业名称,在代码库中的代码是100301,因为与代码库中的“口腔医学”名称完全相同,因此是可以调用过来的,但是,(例如):“口腔医学[不招色觉异常(含色盲、色弱)考生]”这个名称与代码库中的不完全相同,只有前部分相同,如果也指100301这个代码调用过去?

[此贴子已经被作者于2021/9/17 8:45:19编辑过]

--  作者:有点蓝
--  发布时间:2021/9/17 8:59:00
--  
Dim filter As String = "\'" & dr("院校名称")  & "\' like  院校名称 + \'%\'"
--  作者:hbfnmxb
--  发布时间:2021/9/17 9:04:00
--  
老师提示这个错误,您看是什么原因?
图片点击可在新窗口打开查看此主题相关图片如下:02.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/9/17 9:13:00
--  
两个表的名称都有后缀?这种没有办法判断

另外后缀里不能有中括号,否则没有办法的。如果是SqlServer数据库,可以考虑使用SQL查询

--  作者:hbfnmxb
--  发布时间:2021/9/17 9:16:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:03.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:04.png
图片点击可在新窗口打开查看
这是截图,但代码库中有不带后缀的完全相同的名称,为什么不能完全调用过来?
--  作者:hbfnmxb
--  发布时间:2021/9/17 9:17:00
--  
以下是引用有点蓝在2021/9/17 9:13:00的发言:
两个表的名称都有后缀?这种没有办法判断

另外后缀里不能有中括号,否则没有办法的。如果是SqlServer数据库,可以考虑使用SQL查询

带中括号的名称还很多呢。
--  作者:有点蓝
--  发布时间:2021/9/17 9:21:00
--  
数据库没有那么聪明,不是人脑。数据库查询的是整个表数据,它不懂什么是后缀,也不懂只取不带后缀的完全相同的名称。只要有一个数据有问题就会出错
--  作者:hbfnmxb
--  发布时间:2021/9/17 9:24:00
--  
明白了,谢谢老师,那我只能手动修改了!!
--  作者:有点蓝
--  发布时间:2021/9/17 9:27:00
--  
这种设计个人感觉不是很合理,这些后缀应该可以独立为一个列表示,比如院校类型,或者叫办学类型,而不是放到名称里区分