以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 组合查询 不知哪错,老师解说下  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73602)

--  作者:dxjwlf
--  发布时间:2015/8/22 15:53:00
--  [求助] 组合查询 不知哪错,老师解说下
一个组合框,用于选 表名  一个文本框,用于输入查找姓名,一个按钮用于查找并找开 记录窗口,同时显示查找 到的数据

我的代码:
Dim cb As String = e.Form.Controls("ComboBox1").value
Dim txt As String = e.Form.Controls("TextBox1").value
Dim dt As Table 
dt.Name = "cb"
If cb Is Nothing  Or txt Is Nothing Then
    MessageBox.Show("请输入查询类别或姓名")
Else
    With dt("cb")
        Dim r As Integer
        r = .Find("txt", 0, 0, False, False, True)
        If r > - 1 Then \'如果找到符合条件的行
            .Position = r \'则选择该行
        End If
    End With
End If

Dim rgd As WinForm.RecordGrid = Forms("查询").Controls("RecordGrid1")
rgd.Table = dt("cb")
rgd.Build()
Forms("查询").open()

--  作者:有点蓝
--  发布时间:2015/8/22 16:22:00
--  
Dim dt As Table 
dt.Name = "cb"
改为
Tables("cb")
下面的都改了,不能这样用

--  作者:dxjwlf
--  发布时间:2015/8/22 16:51:00
--  
弹出;不存在名为 cb的table




Dim cb As String = e.Form.Controls("ComboBox1").value
Dim txt As String = e.Form.Controls("TextBox1").value

If cb Is Nothing  Or txt Is Nothing Then
    MessageBox.Show("请输入查询类别或姓名")
Else
    With Tables("cb")
        Dim r As Integer
        r = .Find("txt", 0, 0, False, False, True)
        If r > - 1 Then \'如果找到符合条件的行
            .Position = r \'则选择该行
        End If
    End With
End If

Dim rgd As WinForm.RecordGrid = Forms("查询").Controls("RecordGrid1")
rgd.Table = Tables("cb")
rgd.Build()
Forms("查询").open()

--  作者:有点蓝
--  发布时间:2015/8/22 17:00:00
--  
表名不存在,你先要建表然后再查询
--  作者:dxjwlf
--  发布时间:2015/8/22 17:06:00
--  
怎么可能 ,我这是实例
--  作者:dxjwlf
--  发布时间:2015/8/22 17:09:00
--  
也就是没有实例化一个对象。
当声明了变量,但是没有赋值,仍然为null.用的时候就会报错. 会不会是 变量 cb 的问题


--  作者:有点蓝
--  发布时间:2015/8/22 17:12:00
--  
像你那样定义肯定不对嘛,没有实例化
你要定义临时表也行啊
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", GetType(String), 32)
dtb.AddDef("客户", GetType(String), 32)
dtb.AddDef("数量", GetType(Integer))
dtb.AddDef("金额", GetType(Double))
dtb.Build()
MainTable
Tables("统计")

--  作者:dxjwlf
--  发布时间:2015/8/22 17:15:00
--  
组合框是通过 列表选取 。。应该用selectvalue?
--  作者:有点蓝
--  发布时间:2015/8/22 17:17:00
--  
嗯,可以
--  作者:lmk
--  发布时间:2015/8/22 17:24:00
--  
把cb与txt的引号去掉,否则系统会把变量cb与txt当做字符处理的。