以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33780)

--  作者:CRM2013
--  发布时间: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

--  作者:夕然
--  发布时间: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
--  发布时间:2013/5/24 10:52:00
--  
谢谢!

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


--  作者:CRM2013
--  发布时间: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
图片点击可在新窗口打开查看