以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何将字符串转换为查询条件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43914)

--  作者:cqlwsam
--  发布时间:2013/12/18 18:35:00
--  [求助]如何将字符串转换为查询条件
如截图:

图片点击可在新窗口打开查看此主题相关图片如下:360软件小助手截图20131218143417.jpg
图片点击可在新窗口打开查看

通过按钮“添加或确定统计条件”的click事件赋值给:textbox2,让使用者明白具体的统计条件。其具体的代码是:

Dim sql As String
If e.form.controls("Cmb_tongji").value="" Then
    MessageBox.Show("统计项目不能为空,请重新确认统计目录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Return
Else
    If e.Form.Controls("Rdo_dengji").checked=False Then
        sql ="登记时间: 否;"
    Else
        sql="登记时间:是;"
    End If
    If e.Form.controls("Rdo_ruyuan").checked=False Then
        If  sql > "" Then
            sql=sql & "入院时间:否;"
        End If
    Else
        If  sql > "" Then
            sql=sql & "入院时间:是;"
        End If
    End If
    With e.Form.Controls("DateTimePicker1")
        If .Value Is Nothing Then
            If sql > "" Then
                sql = sql & "开始时间: 无;"
            End If
        Else
            If sql > "" Then
                sql = sql & "开始时间: " & .value & ";"
            End If
        End If
    End With
    With e.Form.Controls("DateTimePicker2")
        If .Value Is Nothing Then
            If sql > "" Then
                sql = sql & "截止时间: 无;"
            End If
        Else
            If sql > "" Then
                sql = sql & "截止时间: " & .value & ";"
            End If
        End If
    End With
    With e.Form.Controls("Cmb_kind")
        If .Value Is Nothing Then
            If sql > "" Then
                sql = sql & "患者种类: 无;"
            End If
        Else
            If sql > "" Then
                sql = sql & "患者种类: " & .value & ";"
            End If
        End If
    End With
    With e.Form.Controls("Cmb_tongji")
        If .Value IsNot Nothing Then
            If sql > "" Then
                sql = sql & "统计项目: " & .value & "."
            End If
        End If
    End With
End If
If e.form.controls("TextBox2").text="" Then
    e.form.controls("TextBox2").text=sql
Else
    e.form.controls("TextBox2").text=e.form.controls("TextBox2").text & vbcrlf & vbcrlf & sql
End If
e.form.controls("DateTimePicker1") .Enabled= False
e.form.controls("DateTimePicker2").Enabled=False
e.Form.Controls("Cmb_tongji").Enabled=False

现在的问题是如何将textbox2中的字符串通过split 分离后,赋值给按钮“统计”的click事件,完成统计。有没有类似val(a,b,c)类的用法。谢谢!
[此贴子已经被作者于2013-12-18 18:35:55编辑过]

--  作者:有点酸
--  发布时间:2013/12/18 23:35:00
--  

条件一般是这样合成的:

 

http://www.foxtable.com/help/topics/1058.htm

 


--  作者:cqlwsam
--  发布时间:2013/12/18 23:46:00
--  
看来您并没有理解我的意思,textbox2的字符串就是这样来的。现在是想把textbox2中的字符串按换行符,分号,冒号的方式分别进行拆分,形成sql语句,进行分组统计。
--  作者:逛逛
--  发布时间:2013/12/19 7:58:00
--  

你怎么合并就怎么拆啊。

 

先按分号拆成数组

 

再遍历数组拆冒号

 

整理后赋值给字典 传递引用(用字典是怕条件有缺失,造成错误)

[此贴子已经被作者于2013-12-19 8:00:09编辑过]

--  作者:cqlwsam
--  发布时间:2013/12/19 8:48:00
--  
好的。我用字典试试。谢谢!