Foxtable(狐表)用户栏目专家坐堂 → 代码请教


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

主题:代码请教

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


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
代码请教  发帖心情 Post By:2013/5/24 10:12:00 [只看该作者]

刚开始学习代码编写,请教下面的代码为何不正常工作,谢谢回复。

目标:在客户信息表中,设立了按照客户代码输入值和客户名称输入值2个模糊查询后的加载数据条件,如果都为空时加载最新更新的10行

Dim Filter As String
Dim dm As WinForm.TextBox = e.Form.controls("khdm")
Dim mc As winform.TextBox = e.Form.controls("khmc")
If dm.Value IsNot Nothing Then
    Filter = "客户代码 like '%" & dm.Value & "%'"   '按照客户代码动态加载
    If mc.Value IsNot Nothing Then
        filter = filter & "And " & "客户名称 Like  '%" & dm.Value & "%'" '都不为空时代码和名称合并加载
    End If
ElseIf mc.Value IsNot Nothing Then
    Filter = "客户名称 like '%" & mc.Value & "%'" '按照客户代码动态加载
End If
If Filter >""
    DataTables("客户信息").LoadFilter = Filter
    DataTables("客户信息").Loadtop =""
    DataTables("客户信息").Load
Else
    DataTables("客户信息").Loadtop ="10"    '查询条件为空时默认加载最新修改的10行
    DataTables("客户信息").LoadOrder = "维护日期 Desc"
    DataTables("客户信息").Load
End If

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/5/24 10:21:00 [只看该作者]

Dim Filter As String
With
e.Form.Controls("khdm")
   
If .Value IsNot Nothing Then
        Filter =
"客户代码 = '" & .Value & "'"
   
End If
End
With
With
e.Form.Controls("khmc")
   
If .Value IsNot Nothing Then
       
If Filter > "" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"客户名称 = '" & .Value & "'"
   
End If
End
With
If Filter >""
    DataTables("客户信息").LoadFilter = Filter
    DataTables("客户信息").Loadtop =""
    DataTables("客户信息").Load
Else
    DataTables("客户信息").Loadtop ="10"    '查询条件为空时默认加载最新修改的10行
    DataTables("客户信息").LoadOrder = "维护日期 Desc"
    DataTables("客户信息").Load
End If
 
差不多这样吧

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


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
  发帖心情 Post By:2013/5/24 10:52:00 [只看该作者]

谢谢!

用with 看起来比 if 更容易理解些


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


加好友 发短信
等级:小狐 帖子:315 积分:3554 威望:0 精华:0 注册:2012/12/10 10:38:00
[求助]  发帖心情 Post By:2013/5/24 14:05:00 [只看该作者]

如图,希望参考模拟关联的方式实现数据加载,其中客户信息表与客户联系表的共同列是客户代码。

要实现的功能是在点击截图下部tabcontrol的不同page时,为该page上的表(副本)加载数据,加载的条件是为截图上部分current行的客户代码
我写的代码如下,但好像不好用,请高手指点。

Dim tabc As WinForm.TabControl
tabc = Forms("客户信息").Controls("TabControl1")
If tabc.SelectedIndex<>0 Then
    With Tables("客户信息_客户")
        Dim Filter As String
        Filter =  "客户代码 = " & .Current("客户代码")
        Dim st As String
        st = tabc.SelectedPage.text
        Select Case st
            Case "联系人信息"
                If Filter >""
                    DataTables("联系人信息").LoadFilter = Filter
                    DataTables("联系人信息").Loadtop =""
                    DataTables("联系人信息").Load
                End If
                   End Select
    End With
End If

同时在截图上部附表的currentchanged增加事件,也不工作,没捣鼓出原因来
If Forms("客户信息").Opened() '一定要判断用于模拟关联表的窗口是否已经打开
    Dim tabc As WinForm.TabControl
    tabc = Forms("客户信息").Controls("TabControl1")
    If tabc.SelectedIndex<>0 Then
        With Tables("客户信息_客户")
            Dim Filter As String
            Filter =  "客户代码 = " & .Current("客户代码")
            Dim st As String
            st = tabc.SelectedPage.text
            Select Case st
                Case "联系人信息"
                    If Filter >""
                        DataTables("联系人信息").LoadFilter = Filter
                        DataTables("联系人信息").Loadtop =""
                        DataTables("联系人信息").Load
                    End If
            End Select
        End With
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:截屏.gif
图片点击可在新窗口打开查看


 回到顶部