Creating a form where user inputs start and end dates of a report

后端 未结 1 1130
孤独总比滥情好
孤独总比滥情好 2020-12-22 07:46

I am working on MS Access 2007.

I am trying to create a form where the user will input 2 dates - a start date and an end date. I want these dates to become the bound

相关标签:
1条回答
  • 2020-12-22 08:47

    There are a few ways to perform this.

    The easiest, and most straight forward, in my personal opinion, involve creating a form where the user(s) will be entering Start/End dates, using a query that captures all of the information necessary for your report (including your date parameters), and the report with your query as the recordsource.

    Form

    Create a form with 2 text box controls: Name them whatever you like (StartDateTxt, EndDateTxt, for example), and a button control.

    Query

    Now, create a query, that retrieves all of the correct information you need for this report. I know you said selling price, for starters.

    For the date fields you want to narrow down your search by, you need to put them in the WHERE clause or the Criteria field in QBE. It might look something like:

    [Forms]![YourFormName]![StartDateTxt] and [Forms]![YourFormName]![EndDateTxt]
    

    Note: Referencing fields can sometimes be tricky.

    Report

    Next, you need to create a report. If you're new to this, you can use the Report Wizard located at: Create - Reports section - Report Wizard.

    You can select your query from the dropdown list on the first prompt, and add the fields you desire/need. Click next: Here you can sort your order of appearance on the report. Click next: Then you can justify your layout - if you aren't familiar with the differences, you can play around with them. Click next: Select a 'theme' to be applied to your report (font/colors, etc). Click next: Then you can either preview the report or Modify the report's design. (Really, you can do either, by clicking either button and clicking print preview or design view.)

    If you click on Preview the report - Access should ask you for any parameters your underlying query requires.

    Back to the form.

    Right click on your button control. -> Properties -> Event -> OnClick -> click the [...] icon to the very right of the row. Select code builder.

    VBA

    In-between Private Sub and End Sub, you're going to write

    DoCmd.OpenReport "YourReportName"
    

    You can also check to make sure your report isn't already open.

    Dim ReportName As String
    ReportName = "YourReportName"
    
                If CurrentProject.AllReports(ReportName).IsLoaded Then
                    DoCmd.Close acReport, ReportName
                End If
    
                DoCmd.OpenReport ReportName, acViewPreview
    

    I hope this helps you/answers your question.

    Edit: If anyone wants to edit/add on to this either by means of clarification or another alternative approach, please feel free. Just let me know.

    0 讨论(0)
提交回复
热议问题