Foxtable(狐表)用户栏目专家坐堂 → 很奇怪的问题


  共有1925人关注过本帖树形打印复制链接

主题:很奇怪的问题

帅哥哟,离线,有人找我吗?
qaz
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
很奇怪的问题  发帖心情 Post By:2017/9/7 15:20:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

Dim dr As DataRow
dr=DataTables("电压互感器台账").sqlFind ("电压互感器条码_A = 060310000133") 
MessageBox.Show(dr("母线"))
语句有什么问题吗,把sqlFind改成Find就能查到?在别的表格没有任何问题啊。

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/9/7 15:21:00 [只看该作者]

只在这个表格有问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/7 16:33:00 [只看该作者]

你表格数据保存了吗?保存后才能用sqlFind
 
Dim dr As DataRow
dr=DataTables("电压互感器台账").Find ("电压互感器条码_A = 060310000133") 
If dr Is Nothing Then
    dr=DataTables("电压互感器台账").sqlFind ("电压互感器条码_A = 060310000133") 
End If
If dr Is Nothing then
    msgbox("没找到")
else
    MessageBox.Show(dr("母线"))
End If

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/9/7 16:44:00 [只看该作者]

表格都是外部数据源,别的都没问题,只有这个一个表格有这个问题。用系统菜单的查找功能也能找到,就sqlfind找不到!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/7 20:02:00 [只看该作者]

执行3楼代码。

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/9/8 8:58:00 [只看该作者]

事件DataColChanging 

Select Case e.DataCol.Name
        Case "电压互感器条码_A","电压互感器条码_B","电压互感器条码_C"
        Dim dr As DataRow
        dr = e.DataTable.SQLFind("电压互感器条码_A= '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
            e.Cancel = True
        Else
            dr = e.DataTable.SQLFind("电压互感器条码_B= '" & e.NewValue & "'")
            If dr IsNot Nothing Then
                MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
                e.Cancel = True
            Else
                dr = e.DataTable.SQLFind("电压互感器条码_C= '" & e.NewValue & "'")
                If dr IsNot Nothing Then
                    MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
                    e.Cancel = True
                Else
                    dr=DataTables("高供高计互感器").SQLFind("电压互感器条码_A = '" & e.NewValue & "'")
                    If dr IsNot Nothing Then
                        MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                        e.Cancel = True
                    Else
                        dr=DataTables("高供高计互感器").SQLFind("电压互感器条码_B = '" & e.NewValue & "'")
                        If dr IsNot Nothing Then
                            MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                            e.Cancel = True
                        Else
                            dr=DataTables("高供高计互感器").SQLFind("电压互感器条码_C = '" & e.NewValue & "'")
                            If dr IsNot Nothing Then
                                MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                                e.Cancel = True
                            End If
                        End If
                    End If
                End If
            End If
        End If
        Case "电压互感器出厂编号_A","电压互感器出厂编号_B","电压互感器出厂编号_C"
        Dim dr As DataRow
        dr = e.DataTable.SQLFind("电压互感器出厂编号_A= '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
            e.Cancel = True
        Else
            dr = e.DataTable.SQLFind("电压互感器出厂编号_B= '" & e.NewValue & "'")
            If dr IsNot Nothing Then
                MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
                e.Cancel = True
            Else
                dr = e.DataTable.SQLFind("电压互感器出厂编号_C= '" & e.NewValue & "'")
                If dr IsNot Nothing Then
                    MessageBox.Show("此电压互感器已经存在!" &dr("站名")& dr("PT线路编号"))
                    e.Cancel = True
                Else
                    dr=DataTables("高供高计互感器").SQLFind("电压互感器出厂编号_A = '" & e.NewValue & "'")
                    If dr IsNot Nothing Then
                        MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                        e.Cancel = True
                    Else
                        dr=DataTables("高供高计互感器").SQLFind("电压互感器出厂编号_B = '" & e.NewValue & "'")
                        If dr IsNot Nothing Then
                            MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                            e.Cancel = True
                        Else
                            dr=DataTables("高供高计互感器").SQLFind("电压互感器出厂编号_C = '" & e.NewValue & "'")
                            If dr IsNot Nothing Then
                                MessageBox.Show("此电压互感器已经存在!" &dr("名称"))
                                e.Cancel = True
                            End If
                        End If
                    End If
                End If
            End If
        End If
End Select
出厂编号查找运行没有问题,条码查找的代码问题在哪里?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 9:26:00 [只看该作者]

如果你填入一个数据,但表格没有保存,你是不能通过sqlFind查找到这个数据的,必须保存后才能查找。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/9/8 9:54:00 [只看该作者]

我的意思是要让新填的数据和之前的数据查重,之前的数据肯定都是保存过的(不是新数据)。但是填入之前的旧数据,sqlfind就是查询不到的!后来调试发现只有 这三列数据(电压互感器条码_A","电压互感器条码_B","电压互感器条码_C")DataColChanging 事件中有问题。但是如果用命令窗口执行sqlfind就能查询到旧数据。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/8 10:03:00 [只看该作者]

代码加入msgbox,看执行到哪条语句后不再执行。弹出对应的查询条件。

 

不会做上传实例。


 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/9/8 10:23:00 [只看该作者]

好了,把列名字改一下,再改回来就没问题了!

 回到顶部
总数 21 1 2 3 下一页