Foxtable(狐表)用户栏目专家坐堂 → [求助]狐爸,代码有问题啊。


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

主题:[求助]狐爸,代码有问题啊。

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
[求助]狐爸,代码有问题啊。  发帖心情 Post By:2013/3/25 22:07:00 [显示全部帖子]

Dim txt As String =  e.Form.Controls("TextBox1").Value
If txt = "" Then
    Return
End If
Dim flt As String
If IsNumeric(txt) Then
    If txt.Length <> 6 Then
        messagebox.show("请输入正确的六位数编号")
        Return
    Else
        flt = "编号 = '" & txt & "'"
    End If
Else
    flt = "姓名 = '" & txt & "'"
End If
Dim i As Integer = Tables("表A").FindRow(flt,0,False)
If i < 0 Then
    messagebox.show("查无此人")
Else
    Tables("表A").filter = flt
End If

谁能帮忙改下,让其下次开始查询是从表A查,而不是在上次结果中查询,老白,一个,才开始学习中,真不懂。

 

[此贴子已经被作者于2013-3-26 9:12:28编辑过]

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/25 22:50:00 [显示全部帖子]

狐爸在吗?测试有问题。

1、第二次查询就是从上次的结果中查找。

2、使用另外的查询后,再使用该查询每次显示的列就是其他查询设置显示的列、而不是全部列。

 

[此贴子已经被作者于2013-3-26 9:11:36编辑过]

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/26 9:13:00 [显示全部帖子]

狐爸在不?快来帮忙啊!

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/26 9:29:00 [显示全部帖子]

这样的话,每次查询显示的结果是表的所有数据都在。

我需要只显示出查询到的一行结果


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/26 9:58:00 [显示全部帖子]

感谢狐爸,已经解决,能说明一下If DataTables("表A").Find(flt) Is Nothing Then 和 Dim i As Integer = Tables("表A").FindRow(flt,0,False) If i < 0 Then
这2句的意思和区别吗?老白学习中!
另外我将其用在窗口中查询时,还是出现同样的问题,当使用其他设定显示查询后,再用这个查询,还是会只显示上次查询的列,而不是全部列.

昨天晚上我将代码改成这样后,效果还一样

Dim flt As String
Dim txt As String =  e.Form.Controls("xmzd").Value
If txt = "" Then
    Return
End If
If IsNumeric(txt) Then
    If txt.Length <> 6 Then
        messagebox.show("请输入正确的位数6位数编号")
        Return
    Else
        flt = "编号 = '" & txt & "'"
    End If
Else
    flt = "姓名 = '" & txt & "'"
End If
Tables("窗口1_表A").Filter = flt
Dim i As Integer = Tables("窗口1_表A").FindRow(flt,0,False)
If i < 0 Then
    messagebox.show("查无此人,请重新输入正确的姓名")
End If

[此贴子已经被作者于2013-3-26 10:11:25编辑过]

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/26 10:13:00 [显示全部帖子]

但是和现在都是同样的问题!


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/3/26 10:19:00 [显示全部帖子]

对啊,我把

If DataTables("表A").Find(flt) Is Nothing Then
messagebox.show("查无此人")
Else
Tables("表A").filter = flt
End If

改成

If DataTables("表A").Find(flt) Is Nothing Then
messagebox.show("查无此人")
Else
Tables("窗口_表A").filter = flt
End If

后,就会出现上述问题!

呵呵,帮助我已经看了几遍了,关键是年龄大了,很多东西只看完全就是看天书,而且记不住,语言更没学过,现在这样的效果对我来说不错,学起来要快多了。

[此贴子已经被作者于2013-3-26 10:26:20编辑过]

 回到顶部