首页 文章

Access中的搜索表单

提问于
浏览
1

我想实现一个搜索表单来操作访问表 .

但是当我选择表格然后创建一个From时,我得到表格中的所有表格数据而不是搜索字段 . 当我更改任何值时,表值会发生变化 . 我想要一个文本字段,用户可以输入搜索条件并点击搜索btn,搜索结果显示为表格中的表格或消息框 .

3 回答

  • -1

    您可以在搜索后将数据添加到表单中,但为了保持整洁,您可能希望考虑带有搜索框的未绑定表单和结果的子表单 . 我们假设您有两个框,txtName和txtDate以及一个搜索按钮,然后会运行一个非常粗略的想法:

    strSQL = "SELECT aName, aDate FROM aTable WHERE 1=1 "
    
    If Not  IsNull(txtName) Then
        strWHERE = " AND aName Like '*" & Replace(txtName,"'","''") & "*'"
    End If
    
    If Not  IsNull(txtDate) Then
        strWHERE = strWhere " AND aDate =#" & Format(txtdate,"yyyy/mm/dd") & "#"
    End If
    
    Me.SubformControlName.Form.RecordSource = strSQL & strWhere
    

    当然,您应该确保控件中的数据合理且干净并且返回记录 .

  • 3

    您可以使用类似的内容在打开时将表单置于搜索模式:

    Private Sub Form_Open(Cancel As Integer)
        'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acFilterByForm, , acMenuVer70
         DoCmd.RunCommand acCmdFilterByForm
    End Sub
    
  • 0

    我创建了一个我使用的搜索表单非常方便 . 要设置要搜索的表单,您需要创建搜索查询 . 例如,我的表单包含以下字段:关键字和来源 . 因此,您需要将查询链接到容纳数据的表 . 我的搜索查询是

    SELECT KWTable.KW AS Expr1, KWTable.Code, KWTable.Source
    FROM KWTable
    WHERE (((KWTable.KW) Like "*" & [Forms]![Search_Form]![KW_Text] & "*") AND ((KWTable.Source)     Like "*" & [Forms]![Search_Form]![Source_Text] & "*"));
    

    我在框中键入单词并单击按钮执行 . 按钮代码看起来像

    Private Sub Command8_Click()
    On Error GoTo Err_Command8_Click
    
    Dim stDocName As String
    
    stDocName = "Search_Query"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    Exit_Command8_Click:
    Exit Sub
    
    Err_Command8_Click:
    MsgBox Err.Description
    Resume Exit_Command8_Click
    
    End Sub
    

    我希望这有帮助 .

相关问题