欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在VB+Access系統中實(shí)現多項條件查詢(xún)
在VB+Access系統中實(shí)現多項條件查詢(xún) (上)
 

  本文以“人事檔案”數據庫為例,介紹在VBAccess系統中實(shí)現單項條件查詢(xún)與多項條件查詢(xún)的程序設計方法。

關(guān)鍵詞 數據庫  查詢(xún)  VB  Access  事件代碼

一、前言

對數據庫信息進(jìn)行查詢(xún)檢索是數據庫管理軟件的主要功能之一,也是其難點(diǎn)之一。本文以“人事檔案”數據庫為例,在Visual Basic 6.0+Sp3Microsoft Access2000環(huán)境下,介紹在VBAccess系統中實(shí)現單項條件查詢(xún)與多項條件查詢(xún)的程序設計方法。

 

二、字段及公共變量

假設“人事檔案”數據庫Archives.mdb已經(jīng)生成(位于當前路徑下),庫中有 “人事檔案”表,表中有12條記錄。為簡(jiǎn)化說(shuō)明,假設表中僅有如下幾個(gè)字段: [姓名]TEXT(4),[性別]TEXT(1),[籍貫]TEXT(8),[出生年月]DATE,[政治面貌]TEXT(8),[文化程度]TEXT(8)。

其中“性別、政治面貌、文化程度”三個(gè)字段的值只能從列表中選擇,以下簡(jiǎn)稱(chēng)“下拉列表字段”,“性別”的列表值有“男、女”兩項;“政治面貌”的列表值有“中共黨員、共青團員、民主黨員、群眾”四項;“文化程度”的列表值有“本科以上、大學(xué)本科、大學(xué)專(zhuān)科、專(zhuān)科以下”四項。

另外,在模塊(Modbas)中定義公共變量如下:

Public QueryStr As String            '查詢(xún)條件串

Public ConditionNo As Integer        '條件數

Public CombOrText As Boolean       '選擇了Combo項還是Text項(即是否選擇了下拉列表字段)

Public Combo(3) As String           '下拉列表字段數組,若增加下拉列表字段數,則增加此數組維數

三、查詢(xún)主窗體

本查詢(xún)程序示例包含三個(gè)窗體:查詢(xún)主窗體(FrmQuery)、單項條件查詢(xún)窗體(FrmSingle)、多項條件查詢(xún)窗體(FrmMany)。其中查詢(xún)主窗體(圖一)上有如下幾類(lèi)控件:

 

 

 

 

 

 

 

 

 

 

 

 

 

1、三個(gè)文本框Text1(1)、Text1(2)、Text1(3)分別顯示姓名、籍貫、出生年月等字段的值;

2、三個(gè)下拉列表框Combo1(1)、Combo1(2)、Combo1(3) 分別顯示性別、政治面貌、文化程度等字段的值;

3、RichTextBox1控件用于顯示個(gè)人簡(jiǎn)歷;

4、Data1控件的數據庫連接方式(Connect)采用VB系統默認的Access 2000(視Microsoft Office版本而定)??煞謩e在Data1控件的DatabaseName、RecordSource屬性中設置Data1所關(guān)聯(lián)的數據庫文件名及數據表名,亦可在主窗體的Form_Load中加入如下代碼:

Private Sub Form_Load()

    Dim FileName As String

    If Right(App.Path, 1) = "\" Then               ' App.Path 為根目錄

      FileName = App.Path + "Archives.mdb"

    Else

      FileName = App.Path + "\Archives.mdb"

    End If

    Set File_db = OpenDatabase(FileName)         '打開(kāi)人事檔案數據庫

    Data1.DatabaseName = FileName

    Data1.RecordSource = "人事檔案"             '關(guān)聯(lián)人事檔案表

    Data1.Refresh

End Sub

5、MSFlexGrid1控件的數據源(DataSource)為Data1,列數由數據源中“人事檔案”表的字段數而定(照片字段不予考慮),本例為6列,固定1行用于顯示字段名。

6、幾個(gè)重要的命令鍵Command1(單項查詢(xún))、Command2(多項查詢(xún))、Command3(清除條件)。

四、單項條件查詢(xún)

1、單項條件查詢(xún)窗體


在查詢(xún)主窗體中點(diǎn)擊“單項查詢(xún)”將彈出單項條件查詢(xún)窗體(圖二)。

窗體上有Combo1、Combo2、Combo3三個(gè)下拉列表框及一個(gè)Text1文本框。其中,查詢(xún)項目下拉列表(Combo1)為查詢(xún)主窗體上Data1所關(guān)聯(lián)的數據庫的字段;條件關(guān)系下拉列表(Combo2)為數學(xué)關(guān)系符“=、<>、<、≤、>、≥、Like(包含)、Not Like(不包含)”;查詢(xún)信息為下拉列表選項(Combo3)或輸入值(Text1)。

當查詢(xún)項目為“性別、政治面貌、文化程度”等列表字段時(shí),隱藏Text1控件,顯示Combo3控件,此時(shí)查詢(xún)者可在Combo3中選擇要查詢(xún)的信息項;當查詢(xún)項目選擇“姓名、籍貫、出生年月”等非列表字段時(shí),隱藏Combo3控件,顯示Text1控件,此時(shí)查詢(xún)者可在Text1中輸入要查詢(xún)的信息值。

2、單項條件查詢(xún)代碼

⑴、單項條件查詢(xún)窗體的Form_Load代碼,主要用于向Combo1中添加要查詢(xún)的字段。

Private Sub Form_Load()

    QueryStr = ""

    For i = 0 To FrmQuery.Data1.Recordset.Fields.Count – 1      '字段數

        Combo1.AddItem FrmQuery.Data1.Recordset.Fields(i).Name

    Next

End Sub

    ⑵、點(diǎn)擊Combo1,選擇一個(gè)要查詢(xún)的字段后,判斷是否選擇了“性別、政治面貌、文化程度”等下拉列表字段,并據此控制Combo3Text1的顯示與隱藏及Combo3的列表值。Combo1的點(diǎn)擊事件代碼如下:

Private Sub Combo1_Click()

On Error GoTo ErrDo

CombOrText = True

Select Case Combo1  '下拉列表字段

     Case "性別"

          i = 1

     Case "政治面貌"

          i = 2

     Case "文化程度"

          i = 3

     Case Else

         CombOrText = False

End Select

If CombOrText Then  '若選擇了Combo項則顯示Combo3,隱藏Text1

  Combo3.Visible = True

  Text1.Visible = False

  Combo3.Clear

  For j = 0 To FrmQuery.Combo1(i).ListCount - 1

  '將上級窗體相應的Combo下拉列表加入到Combo3

Combo3.AddItem FrmQuery.Combo1(i).List(j)

  Next

Else   '否則顯示Text1,隱藏Combo3

  Combo3.Visible = False

  Text1.Visible = True

End If

Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "單項條件查詢(xún)"

    Resume Next

End Sub

⑶、點(diǎn)擊“查詢(xún)”命令鍵后,判斷是否在Combo1下拉列表中選擇了日期型字段(如出生年月),若選擇了日期型字段,則必須在查詢(xún)信息兩端加#號;另外,還要判斷是否在Combo2下拉列表中選擇了數學(xué)關(guān)系符Like(即包含),若選擇了Like,則必須在查詢(xún)信息兩端加*號。“查詢(xún)”命令鍵的點(diǎn)擊事件代碼如下:

Private Sub Command1_Click()        '查詢(xún)

    On Error GoTo ErrDo

    Dim FindStr As String        '需查找的信息串

    QueryStr = ""

    If Combo1 = "" Then

       MsgBox "請選擇查詢(xún)項目!", vbCritical, "單項條件查詢(xún)"

       Exit Sub

    End If

    If Combo2 = "" Then

       MsgBox "請選擇查詢(xún)條件!", vbCritical, "單項條件查詢(xún)"

       Exit Sub

    End If

    If CombOrText Then         '選擇了Combo項,即下拉列表字段

       If Combo3 = "" Then

          MsgBox "請選擇查詢(xún)信息!", vbCritical, "單項條件查詢(xún)"

          Exit Sub

       End If

       FindStr = Trim(Combo3)

    Else   '選擇了Text項,即非下拉列表字段

       If Trim(Text1) = "" Then

          MsgBox "請輸入查詢(xún)信息!", vbCritical, "單項條件查詢(xún)"

          Exit Sub

       End If

       FindStr = Trim(Text1)

    End If

    Select Case Trim(Left(Combo2, 4))

    Case "Like"  '數學(xué)關(guān)系符為"Like",即包含

    QueryStr = Combo1 & " " & Trim(Left(Combo2, 4)) & " '*" & FindStr & "*'"

    Case "Not"   '數學(xué)關(guān)系符為"Not Like",即不包含

    QueryStr = "Not " & Combo1 & " Like '*" & FindStr & "*'"

    Case Else   '除包含和不包含外的其它字段

    If InStr(Trim(Combo1), "出生年月") <> 0 Then    '日期型字段兩端加#

    QueryStr = Combo1 & " " & Trim(Left(Combo2, 4)) & "  #" & FindStr & "#"

             Else   '非日期型其它字段

    QueryStr = Combo1 & " " & Trim(Left(Combo2, 4)) & " '" & FindStr & "'"

             End If

    End Select

 Me.Hide

 Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "單項條件查詢(xún)"

    Resume Next

End Sub

⑷、“取消”命令鍵的點(diǎn)擊事件代碼如下:

Private Sub Command2_Click()           '取消

    QueryStr = ""

    Me.Hide

End Sub

五、多項條件查詢(xún)

1、多項條件查詢(xún)窗體

在查詢(xún)主窗體中點(diǎn)擊“多項查詢(xún)”將彈出多項條件查詢(xún)窗體(圖三)。窗體上的主要控件有:

1、 
一個(gè)表格控件(MSFlexGrid),用于顯示已定義的條件,即查詢(xún)條件顯示區。

2、    五個(gè)命令鍵:Command1(確認修改)、Command2(增加條件)、Command3(刪除條件)、Command4(取消返回)、Command5(查詢(xún))。

3、    四個(gè)下拉列表框Combo0、Combo1、Combo2、Combo3及一個(gè)Text1文本框,用于輸入或修改條件,即查詢(xún)條件編輯區。其中

邏輯關(guān)系下拉列表(Combo0)為邏輯關(guān)系符“AND、OR”。在邏輯關(guān)系符中還應該有“Not”,但是,由于數學(xué)關(guān)系符LikeNot Like、=與<>、<與≥、>與≤互為Not關(guān)系,已具有Not功能,因而忽略。

查詢(xún)項目下拉列表(Combo1)為查詢(xún)主窗體上Data1所關(guān)聯(lián)的數據庫的字段;

條件關(guān)系下拉列表(Combo2)為數學(xué)關(guān)系符“=、<>、<、≤、>、≥、Like(包含)、Not Like(不包含)”;

查詢(xún)信息為下拉列表選項(Combo3)或輸入值(Text1)。

當查詢(xún)項目為“性別、政治面貌、文化程度”等列表字段時(shí),隱藏Text1控件,顯示Combo3控件,此時(shí)查詢(xún)者可在Combo3中選擇要查詢(xún)的信息項;當查詢(xún)項目選擇“姓名、籍貫、出生年月”等非列表字段時(shí),隱藏Combo3控件,顯示Text1控件,此時(shí)查詢(xún)者可在Text1中輸入要查詢(xún)的信息值。

Combo3的下拉列表隨查詢(xún)項目中選擇的字段而相應變化。當查詢(xún)項目為“性別”時(shí),Combo3的下拉列表有“男、女”兩項;當查詢(xún)項目為“政治面貌”時(shí),Combo3的下拉列表有“中共黨員、共青團員、民主黨員、群眾”四項;當查詢(xún)項目為“文化程度”時(shí),Combo3的下拉列表有“本科以上、大學(xué)本科、大學(xué)專(zhuān)科、專(zhuān)科以下”四項。

2、多項條件查詢(xún)代碼

⑴、多項條件查詢(xún)窗體的Form_Load代碼,主要用于向Combo1中添加要查詢(xún)的字段并給下拉列表字段數組賦值。

Private Sub Form_Load()

    On Error GoTo ErrDo

    Combo(1) = "性別"        '向下拉列表字段數組賦值

    Combo(2) = "政治面貌"

    Combo(3) = "文化程度"

    ConditionNo = 0           '條件數

    MSFlexGrid.TextMatrix(0, 0) = "序號"     '表格固定行

    MSFlexGrid.TextMatrix(0, 1) = "邏輯關(guān)系"

    MSFlexGrid.TextMatrix(0, 2) = "查詢(xún)項目"

    MSFlexGrid.TextMatrix(0, 3) = "條件關(guān)系"

    MSFlexGrid.TextMatrix(0, 4) = "查詢(xún)信息"

    Combo0.Enabled = False    '不顯示邏輯關(guān)系

    Command2.Enabled = False  '無(wú)條件時(shí)"確認修改"鍵無(wú)效

    Command3.Enabled = False  '無(wú)條件時(shí)"刪除條件"鍵無(wú)效

    Command5.Enabled = False  '無(wú)條件時(shí)"查詢(xún)"鍵無(wú)效

    Text1.Top = Combo3.Top    '文本框Text1Combo3處于同一位置

    QueryStr = ""

    For i = 0 To FrmQuery.Data1.Recordset.Fields.Count – 1

    'Combo1中添加要查詢(xún)的字段

        Combo1.AddItem FrmQuery.Data1.Recordset.Fields(i).Name

    Next

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

End Sub

    ⑵、點(diǎn)擊Combo1(查詢(xún)項目),選擇一個(gè)要查詢(xún)的字段后,判斷是否選擇了“性別、政治面貌、文化程度”等下拉列表字段,并據此控制Combo3Text1的顯示與隱藏及Combo3的列表值。Combo1的點(diǎn)擊事件代碼如下:

Private Sub Combo1_Click()    '查詢(xún)項目

    On Error GoTo ErrDo

    Dim ExitFor As Boolean

    CombOrText = False

    For i = 1 To 3

        If Combo1 = Combo(i) Then '若選擇了Combo項則顯示Combo3,隱藏Text1

           Combo3.Visible = True

           Text1.Visible = False

           Combo3.Clear

           For j = 0 To FrmQuery.Combo1(i).ListCount – 1

 '將上級窗體相應的Combo下拉列表加入到Combo3

               Combo3.AddItem FrmQuery.Combo1(i).List(j)

           Next

           CombOrText = True

           Exit For

        Else       '否則顯示Text1,隱藏Combo3

           Combo3.Visible = False

           Text1.Visible = True

        End If

    Next

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

End Sub

⑶、多項條件查詢(xún)前必須先“增加條件”,即在Combo0(邏輯關(guān)系)列表中選擇邏輯關(guān)系符(多于一個(gè)條件時(shí)),在Combo1(查詢(xún)項目)列表中選擇要查詢(xún)的字段,在Combo2 (條件關(guān)系)列表中選擇關(guān)系符,并在Combo3中選擇或在Text1中輸入查詢(xún)信息后,再點(diǎn)擊“增加條件”鍵。Command1(增加條件)鍵的點(diǎn)擊事件代碼如下:

Private Sub Command1_Click()  '增加條件

    On Error GoTo ErrDo

    If Combo1 = "" Then

       MsgBox "請選擇查詢(xún)項目!", vbCritical, "多項條件查詢(xún)"

       Exit Sub

    End If

    If Combo2 = "" Then

       MsgBox "請選擇條件關(guān)系!", vbCritical, "多項條件查詢(xún)"

       Exit Sub

    End If

    If CombOrText Then    '選擇了Combo項,即下拉列表字段

       If Combo3 = "" Then

          MsgBox "請選擇查詢(xún)信息!", vbCritical, "多項條件查詢(xún)"

          Exit Sub

       End If

    Else       '選擇了Text項,即非下拉列表字段

       If Trim(Text1) = "" Then

          MsgBox "請輸入查詢(xún)信息!", vbCritical, "多項條件查詢(xún)"

          Exit Sub

       End If

    End If

    If ConditionNo = 0 Then

       Combo0.Enabled = False     '若無(wú)條件或只有一個(gè)條件則不顯示邏輯關(guān)系

    Else

       Combo0.Enabled = True     '否則顯示邏輯關(guān)系(And、OR

    End If

    ConditionNo = ConditionNo + 1    '條件數加1

    If ConditionNo > 1 Then MSFlexGrid.Rows = MSFlexGrid.Rows + 1 '查詢(xún)條件顯示區表格增加一行

    If MSFlexGrid.Rows <= 1 Then MSFlexGrid.Rows = MSFlexGrid.Rows + 1

    Text0 = Format(ConditionNo, "00")  '在查詢(xún)條件編輯區顯示條件號

MSFlexGrid.TextMatrix(ConditionNo, 0) = Format(ConditionNo, "00")  

'在顯示區顯示條件號

    MSFlexGrid.TextMatrix(ConditionNo, 1) = Combo0     '在查詢(xún)條件顯示區表格中顯示邏輯關(guān)系

    MSFlexGrid.TextMatrix(ConditionNo, 2) = Combo1     '在查詢(xún)條件顯示區表格中顯示查詢(xún)項目

    MSFlexGrid.TextMatrix(ConditionNo, 3) = Combo2     '在查詢(xún)條件顯示區表格中顯示條件關(guān)系

If CombOrText Then     '若選擇了Combo項(即下拉列表字段),則顯示查詢(xún)信息:Combo3之值

      MSFlexGrid.TextMatrix(ConditionNo, 4) = Combo3

Else '否則若選擇了Text項(即非下拉列表字段),則顯示查詢(xún)信息:Text1之值

      MSFlexGrid.TextMatrix(ConditionNo, 4) = Text1

    End If

    MSFlexGrid.TextMatrix(1, 1) = ""   '第一行不顯示邏輯關(guān)系

    Command2.Enabled = True            '“確認修改”鍵有效

    Command3.Enabled = True            '“刪除條件”鍵有效

    Command5.Enabled = True            '“查詢(xún)”鍵有效

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

End Sub

⑷、“修改條件”時(shí),必須在“查詢(xún)條件信息表”中選擇一行,再在“查詢(xún)條件編輯區”各下拉列表中選擇或輸入相應的值后,點(diǎn)擊“確認修改”鍵。Command2(確認修改)鍵的點(diǎn)擊事件代碼如下:

Private Sub Command2_Click()          '確認修改

On Error GoTo ErrDo

If CombOrText Then                '若選擇了Combo項(即下拉列表字段)

  If Combo3 = "" Then

    MsgBox "請選擇查詢(xún)信息!", vbCritical, "多項條件查詢(xún)"

    Exit Sub

  End If

Else         '否則選擇了Text項(即非下拉列表字段)

  If Trim(Text1) = "" Then

    MsgBox "請輸入查詢(xún)信息!", vbCritical, "多項條件查詢(xún)"

    Exit Sub

  End If

End If

'在查詢(xún)條件顯示區表格中顯示邏輯關(guān)系、查詢(xún)項目、條件關(guān)系

MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 0) = Format(MSFlexGrid.RowSel, "00")

If ConditionNo > 1 Then MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 1) = Combo0

MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 2) = Combo1

MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 3) = Combo2

If CombOrText Then   '若選擇了Combo項(即下拉列表字段),則顯示查詢(xún)信息:Combo3之值

  MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 4) = Combo3

Else  '否則若選擇了Text項(即非下拉列表字段),則顯示查詢(xún)信息:Text1之值

  MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 4) = Text1

End If

MSFlexGrid.TextMatrix(1, 1) = ""   '第一行不顯示邏輯關(guān)系

Exit Sub

ErrDo:

MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

End Sub

⑸、“刪除條件”時(shí),也必須先選擇一行,再點(diǎn)擊“刪除條件”鍵。Command3(刪除條件)鍵的點(diǎn)擊事件代碼如下:

Private Sub Command3_Click()    '刪除條件

On Error GoTo ErrDo

If MSFlexGrid.Rows <= 1 Then Exit Sub  '無(wú)條件時(shí)返回

For i = MSFlexGrid.RowSel + 1 To MSFlexGrid.Rows - 1

   For j = 0 To 4

      MSFlexGrid.TextMatrix(i-1, j) = MSFlexGrid.TextMatrix(i, j)

'刪除行以后內容分別前移一行

   Next

   MSFlexGrid.TextMatrix(i - 1, 0) = Format(i - 1, "00") 

'刪除一行條件序號連續

Next

MSFlexGrid.TextMatrix(1, 1) = ""    '第一行不顯示邏輯關(guān)系

MSFlexGrid.Rows = MSFlexGrid.Rows - 1   '行數減一

ConditionNo = ConditionNo - 1           '條件數減一

If MSFlexGrid.Rows <= 1 Then

  Command2.Enabled = False              '無(wú)條件時(shí)“確認修改”鍵無(wú)效

  Command3.Enabled = False              '無(wú)條件時(shí)“刪除條件”鍵無(wú)效

  Command5.Enabled = False              '無(wú)條件時(shí)“查詢(xún)”鍵無(wú)效

End If

Exit Sub

ErrDo:

MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

End Sub

⑹、按需要設置好所有查詢(xún)條件后,最后點(diǎn)擊“查詢(xún)”鍵即可進(jìn)行多項查詢(xún)。Command5(查詢(xún))鍵的點(diǎn)擊事件代碼如下:

Private Sub Command5_Click()      '查詢(xún)

    On Error GoTo ErrDo

    Dim Str As String

    Dim Col1 As String            '1列,即邏輯關(guān)系

    Dim Col2 As String            '2列,即查詢(xún)項目

    Dim Col3 As String            '3列,即條件關(guān)系

    Dim Col4 As String            '4列,即查詢(xún)信息

    If ConditionNo = 0 Then MsgBox "請給定查詢(xún)條件!", vbCritical, "多項條件查詢(xún)"

    QueryStr = ""

    For i = 1 To ConditionNo

      Str = ""

      Col1 = Trim(Left(MSFlexGrid.TextMatrix(i, 1), 4))  '1列,即邏輯關(guān)系

'2列,即查詢(xún)項目

      Col2 = FrmQuery.Data1.Recordset.Fields(Trim(MSFlexGrid.TextMatrix(i, 2))).Name

      Col3 = Trim(Left(MSFlexGrid.TextMatrix(i, 3), 4))  '3列,即條件關(guān)系

      Col4 = Trim(MSFlexGrid.TextMatrix(i, 4))         '4列,即查詢(xún)信息

      Select Case Col3

      Case "Like"     '數學(xué)關(guān)系符為"Like",即包含

              Str = Col2 & " " & Col3 & " '*" & Col4 & "*'"

         Case "Not"    '數學(xué)關(guān)系符為"Not Like",即不包含

              Str = "Not " & Col2 & " Like '*" & Col4 & "*'"

         Case Else      'Like、Not Like外,即除包含及不包含外的其它關(guān)系符

              If InStr(Col2, "出生年月") <> 0 Then

               Str = Col2 & " " & Col3 & "  #" & Col4 & "#"  '日期型字段

              Else

               Str = Col2 & " " & Col3 & " '" & Col4 & "'"   '非日期型字段

              End If

        End Select

        QueryStr = QueryStr & Col1 & " " & Str & " "         '邏輯關(guān)系

    Next

    Me.Hide

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "多項條件查詢(xún)"

Me.Hide

End Sub

⑺、Command5(取消返回)鍵的點(diǎn)擊事件代碼如下:

Private Sub Command4_Click()     '取消返回

    Me.Hide

End Sub

六、查詢(xún)主窗體命令代碼

1.查詢(xún)主窗體“單項查詢(xún)”命令代碼

查詢(xún)主窗體中Command1(單項查詢(xún))鍵的的點(diǎn)擊事件代碼如下:

Private Sub Command1_Click()           '單項查詢(xún)

    On Error GoTo ErrDo

    FrmSingle.Show vbModal           '顯示單項條件查詢(xún)窗體

    If QueryStr = "" Then Exit Sub        '若單項條件查詢(xún)窗體中,點(diǎn)擊了“'取消”鍵

    '過(guò)濾記錄,查詢(xún)主窗體中的MSFlexGrid1數據表格將顯示符合條件的記錄

Data1.RecordSource = "SELECT * FROM 人事檔案 WHERE " & QueryStr

    Data1.Refresh

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "單項信息查詢(xún)"

End Sub

2.查詢(xún)主窗體“多項查詢(xún)”命令代碼

查詢(xún)主窗體中Command2(多項查詢(xún))鍵的的點(diǎn)擊事件代碼如下:

Private Sub Command2_Click()      '多項查詢(xún)

    On Error GoTo ErrDo

    FrmMany.Show vbModal          '顯示多項條件查詢(xún)窗體

    If QueryStr = "" Then Exit Sub   '若多項條件查詢(xún)窗體中,點(diǎn)擊了“'取消”鍵

    '過(guò)濾記錄,查詢(xún)主窗體中的MSFlexGrid1數據表格將顯示符合條件的記錄

    Data1.RecordSource = "SELECT * FROM 人事檔案 WHERE " & QueryStr

    Data1.Refresh

    Exit Sub

ErrDo:

    MsgBox Error(Err), vbCritical, "信息查詢(xún)"

    Command3_Click                '出現錯誤時(shí)清除條件

End Sub

3.查詢(xún)主窗體“清除條件”命令代碼

Private Sub Command3_Click()      '清除條件

    On Error Resume Next

    '復位,查詢(xún)主窗體中的MSFlexGrid1數據表格將顯示所有記錄

    Data1.RecordSource = "SELECT * FROM 人事檔案"

    Data1.Refresh

End Sub

七、運行情況

點(diǎn)擊查詢(xún)主窗體中的“單項查詢(xún)”或“多項查詢(xún)”命令鍵后,將根據設置的條件過(guò)濾記錄,查詢(xún)主窗體中的MSFlexGrid1數據表格將顯示符合條件的記錄,如設置圖三所示的多項條件后,主窗體中的MSFlexGrid1數據表格將顯示5條符合條件的記錄(圖四)。

進(jìn)行“多項查詢(xún)”設置時(shí),若只設置一個(gè)條件,則相當于單項條件查詢(xún)。顯然,單項條件查詢(xún)是多項條件查詢(xún)的特例。

點(diǎn)擊查詢(xún)主窗體中的“清除條件”命令鍵后,查詢(xún)主窗體中的MSFlexGrid1數據表格將顯示“人事檔案表”中的所有。

八、存在問(wèn)題

MSFlexGrid表格單元的編輯功能有限,我們對MSFlexGrid表格單元進(jìn)行編輯時(shí)一般都是通過(guò)在單元格上適時(shí)顯示或隱藏Text文本框或Combo下拉列表框,并編輯框內的內容來(lái)實(shí)現的。如果直接在MSFlexGrid表格單元中進(jìn)行條件編輯當然是最直觀(guān)最方便的方法,但是由于在滑動(dòng)垂直滾動(dòng)條時(shí),較難控制編輯框的顯示與消隱(即在被編輯的單元格移出顯示區時(shí)應消隱編輯框,在被編輯的單元格移入顯示區時(shí)應顯示編輯框)。因此,為克服這些問(wèn)題,只好應用前述的“查詢(xún)條件編輯區”固定所有編輯控件,消極地解決了這個(gè)問(wèn)題。(完)

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
怎樣添加一個(gè)下拉框到msflexgrid
在VB中把EXCEL文件導入MSFLEXGRID
vb MSFlexGrid數據控件數據排序
在這個(gè)ERP系統中 要把表單頭 和表單身 在數據庫中 分開(kāi) 保存
MSFlexGrid控件的事件與方法件與方法
Access教程 第六章 數據庫實(shí)例分析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久