首页 > 数据库 > mysql教程 > 机房收费系统之—组合查询

机房收费系统之—组合查询

WBOY
发布: 2016-06-07 15:59:56
原创
1005 人浏览过

在敲组合查询的时候,我遇到了很多问题,比如说查询的语法怎么连接啊,怎么让控件中的文本信息也就是说字段名,组合关系对应数据库表中的字段哪? 也就是说我们要让卡号=Cardno,让姓名=StudentName ,这样我们在查询的时候才方便了,反成不能直接给Combox的

在敲组合查询的时候,我遇到了很多问题,比如说查询的语法怎么连接啊,怎么让控件中的文本信息也就是说字段名,组合关系对应数据库表中的字段哪?

也就是说我们要让卡号=Cardno,让姓名=StudentName ,这样我们在查询的时候才方便了,反成不能直接给Combox的text里面上英文的吧? 于是就定义个函数,让它实现这个功能,函数如下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<span style="font-size:18px;">Public Function Field(i As String) As String

    Select Case i

        Case "卡号"

    Field = "cardno"

        Case "姓名"

    Field = "studentname"

        Case "上机日期"

    Field = "ondate"

        Case "上机时间"

    Field = "ontime"

        Case "下机日期"

       .......

    End select

End Function

</span>

登录后复制
这样就行了。下面这组合查语法以及代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

<span style="font-size:18px;">Private Sub cmdInqurie_Click()

    Dim ctrl As Control

    Dim mrc As ADODB.Recordset

    Dim txtSQL As String

    Dim Msgtext As String

     &#39;检查条件输入

    If Trim(cmbfeild1.Text) = "" Or Trim(cmboperator1.Text) = "" Or Trim(txt1.Text) = "" Then

        MsgBox "请输入完整的查询条件", , "提示"

        Exit Sub

    End If

     

    Dim i, iCols As Integer &#39;让所有列都居中显示文字

    iCols = MSFlexGrid1.Cols

    For i = 0 To iCols - 1

        MSFlexGrid1.ColAlignment(i) = flexAlignCenterCenter

    Next

     

    txtSQL = "select * from line_info where "

    txtSQL = txtSQL & Trim(Field(cmbfeild1.Text)) & Trim((cmboperator1.Text)) & "&#39;" & Trim(txt1.Text) & "&#39;"

    If Trim(cmbRelation1.Text <> "") Then &#39;第一个组合关系存在

        If Trim(cmbfeild2.Text) = "" Or Trim(cmboperator2.Text = "") Or Trim(txt2.Text = "") Then

            MsgBox "你已经选择了第一个组合关系,请输入第二行查询条件", , "提示"

            Exit Sub

        Else

            txtSQL = txtSQL & Field(Trim(cmbRelation1.Text)) & " " & Field(cmbfeild2.Text) & cmboperator2.Text & "&#39;" & Trim(txt2.Text) & "&#39;"

        End If

    End If

     

    If Trim(cmbRelation2.Text <> "") Then &#39;第二个组合关系存在

        If Trim(cmbfeild3.Text) = "" Or Trim(cmboperator3.Text) = "" Or Trim(txt3.Text) = "" Then

            MsgBox "你已经选择了第二个组合关系,请输入第三行查询条件", , "提示"

            Exit Sub

        Else

            txtSQL = txtSQL & Field(cmbRelation2.Text) & " " & Field(cmbfeild3.Text) & cmboperator3.Text & "&#39;" & Trim(txt3.Text) & "&#39;"

        End If

    End If

    On Error GoTo error1 &#39;错误语句保护,当用户输入查询的格式不对时给出提示信息。

 

    Set mrc = ExecuteSQL(txtSQL, Msgtext)

    If mrc.EOF = True Then &#39;检查信息是否存在,如果不存在给出提示并清空所有文本框

        MsgBox "没有查询到结果,可能会你输入的信息不存在,或者信息矛盾"

        For Each ctrl In Me.Controls

        If TypeOf ctrl Is TextBox Then   &#39;是否为文本框TextBox

            ctrl.Text = ""               &#39;清空所有文本框

        End If

        Next

      

      For Each ctrl In Me.Controls

        If TypeOf ctrl Is ComboBox Then   &#39;是否为文本框TextBox

            ctrl.Text = ""

        End If

      Next

        Exit Sub

    End If

    With MSFlexGrid1

        .Rows = 1

        .TextMatrix(0, 0) = "卡号"

        .TextMatrix(0, 1) = "姓名"

        .TextMatrix(0, 2) = "上机日期"

        ........

         

     Do While Not mrc.EOF

            .Rows = .Rows + 1

            .TextMatrix(.Rows - 1, 0) = Trim(mrc!cardno)

            .TextMatrix(.Rows - 1, 1) = mrc!studentname

            .TextMatrix(.Rows - 1, 2) = mrc!ondate

            .TextMatrix(.Rows - 1, 3) = mrc!OnTime

            ........

            mrc.MoveNext

        Loop

    End With

    mrc.Close

error1:

    MsgBox "你输入的查询信息格式有误,请按标准格式输入。"

End Sub</span>

登录后复制
代码一大堆,这里面最终的的思想是怎样突破我们的固有思维,怎样创新,让我们的思想灌输进来。我们要用到以前所学的知识,达到学以致用的效果,其实还有比这些写更简便实用的代码等待我们开发,钻研。
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板