Reports :: Control Visibility Of Individual Controls In Group Footer
Jan 17, 2014
I have a music database in which I keep track of my CDs and how many times I've listened to them. I have a report that uses grouping to show me the total listens for each artist for each year - the totals are in a group footer, with nothing in the detail section of the report. It looks something like this:
The first line is the column header showing years (last 2 digits for space reasons).
The second and subsequent lines are created in the group footer section, first is the artist name, then the Sum of listens for all titles by that artist in the year given ([Sum of Listens1994]).
This report works perfectly.
Here's what I want to do, and I can't get it to work:
In the above lines of data, let's say that the earliest title for BAND1 is from 1975, and the earliest title for BAND2 is from 2001. My yearly counts start in 1994. Therefore, there were listens for BAND1 prior to 1994, but there weren't any listens for BAND2 prior to 2001.
GOAL: Instead of showing "00" on the BAND2 line for years 1994-2000, I want them blank.
I've put a conditional format code in OnFormat for the group footer section, telling Access to turn visibility off for the text box control ([Sum of Listens1994] etc) if the [Earliest] field (which contains 2001) is greater than the year being displayed (1994 first, and so on). This, which seems like it should work, makes no difference. Oddly, if I put a F9 code break on the If statement, it never breaks, which makes me believe the code is never even being executed.
I do have prior experience with controlling field visibility in forms and reports, so the concepts aren't new to me. I feel like the big difference with this one is that it's in the group footer section rather than the detail section. [Access 2013]
I'm working on a project where I must send roughly a thousand individual reports to a thousand different email recipients with .pdf attachment.I know I'll need to add a table that designates the email address by SHIP_TO_CODE. Then create a form with the email subject, body, etc.. I don't neccessarily have to have the reports saved to a folder; I really just need them emailed to each account.
I was thinking I could modify the code some to accomplish my goal, but I'm not sure what to put. Maybe add a SendObject in there somewhere.CODE that I have now that saves the report to a folder. (I want to modify some to send email attachement instead)
''Module CODE:
Private Sub Form_Current() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT [SHIP_TO_CODE] FROM [qryWty&PendingData];", dbOpenSnapshot) Do While Not rst.EOF strRptFilter = "[SHIP_TO_CODE] = " & Chr(34) & rst![SHIP_TO_CODE] & Chr(34) DoCmd.OutputTo acOutputReport, "rptDraft", acFormatPDF, "C:UsersmrutherfordDesktopASC Daily Reports" & "" & rst![SHIP_TO_CODE] & ".pdf"
I'm working on a project where I must save roughly 1000 individual access reports based on the group to a specific folder in pdf format.
Problem:The code I found on this site works, but not exactly the way I need it to. Using the current code (pasted below) all of the pages of the report are being saved to pdf for each group, instead of just the single page. For example, all 1000 pages of the report are being saved to each pdf file, when I only want the 1 page for each of the groups.
I believe that the problem lies in the filter for the Open Event code, but I don't know how to modifiy it to make it work the way I need.
CODE:
Option Compare Database Public strRptFilter As String Private Sub Report_Click() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT [SHIP_TO_CODE] FROM [qryWty&PendingData] ORDER BY
Is there a way to have an expression in the control source of a text box in a report, that re-starts or is exclusive for every group within the report?
If it possible to change if a group is visible based on what page a different group is printed on.
The report I'm working on is a Invoice and it has subtotals in one group and totals in another group.
If the totals are going to print on page 1 then there is no need to print the subtotals. Is there a way to know what page the totals will print on so I can set visible for subtotal group to true or false?
I am one of the guys that the dept. drops 1k to send to the beginner through expert level courses for Access, so I ask patience as I am new to VB coding.
I am working on a database to track patient surgical information. I am using a toggle button to control "patient surgery site" visibility, depending on the number of sites associated with them. They are labeled Site A Site B, Site C
What I want is if a patient only has one site, I press the appropriate toggle (Site_A_Button, Site_C_Button, and Site_C_Button) and only fields pertaining to Site A appear. If they have 2 sites, I can press both of the toggles for A and B, but the C will remain hidden, etc.
Each toggle controls 3 fields - For the Site A button - Site_A, Diagnosis_A, A_Blocks_Check For the Site B button - Site_B, Diagnosis_B, B_Blocks_Check For the Site C button - Site_C, Diagnosis_C, C_Blocks_Check
The *_Blocks_Check also controls visibility for a respective fourth field - Site_A_Blocks , Site_B_Blocks , Site_C_Blocks
So far, I have A and B working just fine. By default, the toggle for A is set to -1 so it is visible by default. Site B and C are default 0. Both A and B work exactly as I want them to, however, site C does NOT. It has identical coding as B, however, it is visible by default (despite the "default 0") and the Site_C_Blocks visibility (controlled by the Check Box) also does not work properly. Here is the VB-
Private Sub A_Blocks_Check_Click() If A_Blocks_Check = 0 Then Site_A_Blocks.Visible = False End If
If A_Blocks_Check = -1 Then Site_A_Blocks.Visible = True End If End Sub
Private Sub B_Blocks_Check_Click() If B_Blocks_Check = 0 Then Site_B_Blocks.Visible = False End If
If B_Blocks_Check = -1 Then Site_B_Blocks.Visible = True End If End Sub
Private Sub C_Blocks_Check_Click() If C_Blocks_Check = 0 Then Site_C_Blocks.Visible = False End If
If C_Blocks_Check = -1 Then Site_C_Blocks.Visible = True End If End Sub
Private Sub Site_A_Button_Click() If Site_A_Button = -1 Then Site_A.Visible = True End If If Site_A_Button = -1 Then Diagnosis_A.Visible = True End If If Site_A_Button = -1 Then A_Blocks_Check.Visible = True End If
If Site_A_Button = 0 Then Site_A.Visible = False End If If Site_A_Button = 0 Then Diagnosis_A.Visible = False End If If Site_A_Button = 0 Then A_Blocks_Check.Visible = False End If
End Sub
Private Sub Site_B_Button_Click() If Site_B_Button = 0 Then Site_B.Visible = False End If If Site_B_Button = 0 Then Diagnosis_B.Visible = False End If If Site_B_Button = 0 Then B_Blocks_Check.Visible = False End If
If Site_B_Button = -1 Then Site_B.Visible = True End If If Site_B_Button = -1 Then Diagnosis_B.Visible = True End If If Site_B_Button = -1 Then B_Blocks_Check.Visible = True End If End Sub
Private Sub Site_C_Button_Click() If Site_C_Button = 0 Then Site_C.Visible = False End If If Site_C_Button = 0 Then Diagnosis_C.Visible = False End If If Site_C_Button = 0 Then C_Blocks_Check.Visible = False End If
If Site_C_Button = -1 Then Site_C.Visible = True End If If Site_C_Button = -1 Then Diagnosis_C.Visible = True End If If Site_C_Button = -1 Then C_Blocks_Check.Visible = True End If End Sub
Now I know this is probably sloppy coding, but it was the only way I could get this to work properly at all, so feel free to critique as well.
I want to actually add additional sites (Site D and Site E), but not until I can figure out why the problem is with just A B and C.
I apologize if this seems a bit confusing, but if anyone could help out, I would be most appreciative!
I have a continuous form based on a query. I would like to have a button or control that performs some command on only one certain record. In other words, the user sees the record he wants, clicks a button and it changes the value or changes the color. When I add a button to the form, it appears next to each record and performs the same command to each record. I have tried different controls, but get similar results with each one. Even a single form seems to do the same thing, but on different pages.
Am I missing something? Or maybe I am not following the concept of the form.
I want to set the On Click Event of a button to unlock the current control a user is on. I know the code to set the property of a named control, but I don't want a button for every control I want to unlock. Is there a 'Me' option for controls?
I have a subform which lists a set of records. In the footer section of the subform, I have a number of controls which display calculations based on the records present.
The number of records in the subform will change (reduce). Basically, this is a review / approval function, the idea being that each record will be checked and approved, which will then remove it from the list.
So eventually, all of the records in the subform should disappear (the subform is requeried each time the user approves a record)
I want to be able to hide the controls in the footer section once the subform has been cleared of all records.
But not sure
a) how to determine when the subform's recordset reaches zero and
b) what event to use to fire the code to hide the footer controls.
This is my basic attempt :
Code: Private Sub Form_Current()Dim ctl As Control For Each ctl In Me.FormFooter.Controls ctl.Visible = Not (Me.Recordset.EOF) Next ctl End Sub
But it doesn't work (it only seems to fire when the subform is loaded, not when it is requeried after each approval?)
I've tried Form_Query, Form_DataChange and Form_DataSetChange but no joy with those either.
Hi I'm a teacher and have to set targets for classes, I have created a database which allows me to input targets for the classes. I now need to then display the class target for individual pupils in a new layout. I am sure there is an easy solution and I am looking at the problem from the wrong direction. Thank you for any help
I'm having trouble with syntax for using VBA on a report in Access 2007. I need to some hide 3 text boxes if one of my fields is empty in a table. The table name is: 'ALM-RESP' with rows grouped by: 'TAG NAME' and the field I'm checking is: 'Rev 002 Author'. I've tried having a rectangle to cover it up but I'm having trouble using the IsNull command and setting the visibility of the rectangle. Here's my code:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) If IsNull([ALRM-RESP]![TAG NAME]![Rev 002 Author].Value) Then REV2BOX.Visible = False End Sub
Basically I'm having trouble checking if the field is empty and then setting the visibility.
I am trying to produce statistics reports in my database. The user selects the information they require in a form (date from, date to etc). A query then produces the results listing each job in turn which is what I want however at the end I would like to produce sub-totals for each client.
Depending on the criteria selected by the user, only some clients will appear in the list. Ideally I would like the footer to show something like:
Client 1 - 4 jobs Client 2 - 1 job Client 5 - 6 jobs Client 6 - 17 jobs
Hi I have a standard form with Header, Detail, and Footer sections. The detail section is populated by a mixture of queries and calculated control boxes. When the detail section overruns its space, I get a vertical scroll bar to the right and then the footer is displayed. So, the footer always stays where it is and the scroll bar only moves the detail section.
Is it possible to get the scroll bar moving the whole lot so that the footer is not permanently viewable on the page and would appear after all the Detail boxes ?
I have a pretty standard form to enter data about contracts. Depending on the type of contract, the user will answer a yes/no type question, and the result will determine what set of information needs to be entered next. Since the variables are grouped intrinsically, I would like to make them visible or not depending on what is necessary. I know how to do this with just one control, but not several at a time. Is there a way to treat them as a group, and have the form make the group appear/disappear as needed, or do I have to list out each control everytime i need to do this? Any help would be much appreciated.
I am working on an Access DB and I need to email individual reports to email addresses linked to the corresponding email. I would like these email to be sent though outlook and the attachment to be a PDF.
I have entered an unbound text control into my footer, and typed in some text, and now when I go to Preview my report it's asking for a Parameter Value? There is no parameter, as it's just a return address typed in there. That's crazy!!!
It turns a number like this "120" into elapsed time in hours and minutes like this "2:00"
I have a report with an elapsed time for all of the items. I simply want to SUM it at the report footer, but i guess my control source turns it from a number into text, which then cannot be summed ?
I'm not entirely new to Access, but I don't have the formal training or experience to accomplish what I'm attempting. And, after hours of research, I haven't been able to find anything that quite works. I know it's do-able, I just can't figure it out. Any help is much appreciated. I'm using Access 97.
In a form (MasterBadgeForm), all fields require completion. However, I want to force the user to complete 2 fields before any of the others are visible.
The 1st 2 required fields are: - HostLastName: ComboBox (user's last name based on a simple query called HostMasterQuery) - Visitor_Guest: Bound option group frame with option buttons "Visitor" (option value = 1) and "Guest" (option value = 2).
Note: The logic behind using an option group frame (instead of check boxes, etc.) is to force the user to choose "Visitor" or "Guest", but not both or none.
After both fields ("HostLastName" and "Visitor_Guest") are completed, I want 2 things to happen:
First: Depending on the choice selected in the Visitor_Guest option group frame, I want respective combo boxes to either be visible/available, or not. For example, if the user selects the "Visitor" option button, I want to make visible a combo box named VBadgesCombo (based on a simple query that has pre-defined "Visitor" numbers) and "hide" the combo box named GBadgesCombo. The same concept applies if the user selects the "Guest" option button.
Second: I want all the other required fields to become visible.
I've done a ton of research, but I just can't quite figure it out. Any help is much appreciated.
I have a series of 7 separate Access 2010 programs that are designed to run under the control of a scheduler, and they must always finish. Errors are trapped and logged but mustn't stop the processes completing.
What I'm trying to do now is to create a single master control program that runs each individual application, one after the other, in order. And each individual app cannot start until the previous one is finished.how to call a separate Access program and know when it has finished.
I am trying to create an invoice report. I want to add all the costs from the detail section in my footer. I have accomplished this in either the Report footer and/or the page footer, but the problem is that the report footer doesn't go to the bottom of the page, and the page footer doesn't go to just the last page. I have tested a bunch of suggestions that don't seem to work.
1. Print page footer with Report header = NO - only works if your report is two pages or more.
2. Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) If Page = Pages Then Me.[TextBoxName].Visible = True Else Me.[TextBoxName].Visible = False End If End Sub
The Page functions worked, but it did not change the results from page to page. If it was a two page report, then the if statement is false and the text box was not visible on page 1, but it also was not visible on page 2.
I have a 14 page report in which I want the footer to appear only on the first page. I accomplish this with some code in the OnFormat event of the page footer:
If Page > 1 Then Me.PageFooter2.Visible = False Else Me.PageFooter2.Visible = True End If
The first page has the footer (great).
The 3rd thru the 14th page does not (great).
The 2nd page also doesn't have the footer - but - it only shows a half page of data! The data continues where it left off on the third page!
So, to sum up:
1st Page: Footer with detail section containing 16 rows of data.
3rd thru 14th Page: No footer section with 28 rows of data.
I current have three different reports that are the same except for the footers. That means that each time I have a change to the report, I have to remember to make the change on all three copies. Is there a way to add (1) some custom text such as "Client Copy", "Please Sign and Return", "Our Copy" plus one or two data fields from the report query in the page footer (the data fields would be different for each copy)?Basically, what I would like to do is have just one report, but print three copies of it, with each of the three copies having different footers as described above. Is this possible?