以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  变量设置问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10042)

--  作者:老有所乐
--  发布时间:2011/5/19 9:31:00
--  变量设置问题

 

Dim Filter As String
Dim i As String = e.Form.Controls("ComboBox1").value   

Dim n As String = e.Form.Controls("ComboBox3").value   
With e.Form.Controls("combobox5")
       If .Value IsNot Nothing Then
     
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "  列名称  = \'"& .Value &"\' " 
    End If
End With
If Filter > "" Then
    Tables(i).Filter = Filter
End If
Tables(i).Filter  = Filter
MainTable = Tables(i) \'打开生成的统计表

 

上面代码中的这句:     Filter = Filter & "  列名称  = \'"& .Value &"\' "   中的"列名称
"用变量 n  一个如何设置,请师傅指导,谢谢!

[此贴子已经被作者于2011-5-20 8:21:49编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/19 9:35:00
--  

看看这个:

http://help.foxtable.com/topics/1284.htm

 


--  作者:老有所乐
--  发布时间:2011/5/20 8:51:00
--  

 

一楼的代码为筛选按钮代码

如果 i 为订单表 将这句Filter = Filter & "  列名称  = \'"& .Value &"\' " 中的"列名称" 改为"产品"或"客户"都能够达到预期的目的,但将该句Filter = Filter & "  列名称  = \'"& .Value &"\' " 改为Filter = Filter & "  n  = \'"& .Value &"\' " 就提示 "未找到列 [ n ]"

   另  Filter = Filter & "  n  = \'"& .Value &"\' "   这句中 n =  的 "= "号是否可以用变量代替

反复看了贺老师指点的章节, 还是没有找到答案,请师傅帮忙,谢谢!

[此贴子已经被作者于2011-5-20 8:55:37编辑过]

--  作者:mr725
--  发布时间:2011/5/20 8:57:00
--  
n 本来就不是列名嘛。
--  作者:老有所乐
--  发布时间:2011/5/20 9:02:00
--  

 

n 是这个的 Dim n As String = e.Form.Controls("ComboBox3").value   我设置了代码在combobox3 能显示所选择表的所有列啊

[此贴子已经被作者于2011-5-20 9:03:43编辑过]

--  作者:mr725
--  发布时间:2011/5/20 9:08:00
--  

 只能说列名,作为筛选条件是不能在等号左边用变量替代的!

你这样吧:

if n  = \'"& .Value &"\' then

       你原来的代码

end if

[此贴子已经被作者于2011-5-20 9:09:47编辑过]

--  作者:老有所乐
--  发布时间:2011/5/20 10:48:00
--  

谢谢MR725老师!

加上楼上代码后,不提示任何错误,但是无动于衷,没有任何反应\'可能确实是"列名,作为筛选条件是不能在等号左边用变量替代的!"

[此贴子已经被作者于2011-5-20 10:48:56编辑过]

--  作者:mr725
--  发布时间:2011/5/20 12:49:00
--  
6楼用“你原来的代码”不对···    你还是给个例子吧。看看有没有其他办法呢。
--  作者:mr725
--  发布时间:2011/5/20 12:58:00
--  

Dim i As String =  e.Form.Controls("ComboBox1").value    \'表名
Dim n As String = e.Form.Controls("ComboBox3").value    \'列名
Dim f As String =  e.Form.Controls("combobox5").value    \'筛选值
With Tables(i)
    Dim r As Integer
    r = .Find(f,0,Tables(i).cols(n).index, False, False, True)
    If r > - 1 Then    
        .Position = r  
    End If

   Tables(i).Select(r,Tables(i).cols(n).index)
   Tables(i).focus
   Syscmd.Filter.Equal()
End With
 

类似这个问题我以前也没搞懂,申请加精·······

[此贴子已经被作者于2011-5-20 15:29:10编辑过]

--  作者:老有所乐
--  发布时间:2011/5/20 15:09:00
--  

 

mr725老师9楼代码可以筛选,但是筛选的值好像比需要的值大一点,如

筛选产品=PD01时,会筛选出PD05  客户=CS01 筛选出的是CS04 ,雇员=EP01,筛选出的是EP02 有时要点击两次按钮

见文件高级筛选表窗口1

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table