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


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

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

帅哥哟,离线,有人找我吗?
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 [只看该作者]

狐爸在不?快来帮忙啊!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/26 9:22: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").Position = i
End If

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


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

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

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/26 9:33: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
If  DataTables("表A").Find(flt) Is Nothing Then
    messagebox.show("查无此人")
Else
    Tables("表A").filter = flt
End If

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


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

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251397 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/26 10:15:00 [只看该作者]

你依葫芦画瓢就行啊。我最后的几行代码是:

 

....

If  DataTables("表A").Find(flt) Is Nothing Then
    messagebox.show("查无此人")
Else
    Tables("表A").filter = flt
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

 

你看出差别了吗?

 

 

呵呵,其实你这样是学不会foxtable的,更不可能学好,我建议您先踏踏实实按顺序看帮助文件,因为磨刀不误砍柴工,心急吃不得热豆腐。

 

看帮助一定要按顺序,头一两遍可以不求甚解,第三遍开始要将每个例子实际操作演练一遍,不明白的就上论坛求助。
三遍之后才开始做系统,先设计好表,想做什么功能,就做什么功能,遇到问题在帮助找答案,找不到的在论坛提问,不断遇到问题,不断解决问题,慢慢就熟悉了。
此外一定要先掌握《使用指南》,然后再看《开发指南》

 

 

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

 回到顶部
帅哥哟,离线,有人找我吗?
sadfox
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
总数 11 1 2 下一页