Reports :: Visibility Based On Whether Table Field Is Empty
Jul 11, 2013
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.
This should be fairly easy - I'm probably thinking too hard today.
I want to display a Quantity text control (and the related label in the form header) when the Serial control = "Bulk" OR when the checkbox chkBulk = -1 (checked). I don't need to do both, just one of the above, as I still haven't decided the easiest way to approach this problem.
I need some way to check the value of the checkbox or Serial control in the AfterUpdate event, and set the visibility of the Quantity control to true/visible. It is currently set to not visible. I have experimented a bit with the iif in VB, but my VB skills are rather nonexistent - i can read and comprehend code, but I can't yet write it on my own.
This seems like a relatively easy one or two line procedure. Can anyone offer some advice or point me in the right direction?
I have a main form with several subforms within it. These subforms are navigation tabs. In the footer of the main form I have a textbox that I want to hide unless the 2nd tab is selected.
Details:
3 Tabs, 1 subnavigation subform, 3 tab indexes(0,1,2) tab index 1 the textbox on the main form(parent) should be visible. tab index 0 and 2 the textbox should be hidden.
I was thinking I could do something like when tab index 1 is onFocus then textbox = visible and vice versa on the other tab indexes?
I have a report that gives an update on construction projects. I've recently added an OLE field so I could attach photos and pdfs. I would like to see the photos and pdfs but not the empty space for the OLE field. I also want to see the construction project data even if there is no OLE. If I use the 'Is Not' Null in the query, the whole project record is not generated in the report. Is that enought info to solve?
I am trying to get a subform to be hidden when the value of a textbox (txtAllocationID) is empty but when a ID number appears I would like it to become visible again.This is what I have tried so far but doesn't seem to work:
Code: Private Sub txtAllocationID_AfterUpdate() If Me.txtAllocationID.Value >= 0 Then Me.frmStockAllocated.Visible = True Else Me.frmStockAllocated.Visible = False End If
End Sub
My allocation ID is a primary key so all auto number generated and only an integer.
Scenario: When I enter a stock ID of 121 and search I want the subform to remain hidden as there is no Allocation ID related to that Stock ID (see attachment tblAllocated). If I was to enter a stock ID of 122 I want the subform to become visible as the stock ID has a relation with the Allocation ID 6 and therefore the textbox txtAllocation ID would display '6' in it.
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 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 form containing client demographics. One of the fields is the DateOfBirth. I would like to control the visibility of a subform based on this DateOfBirth field.
I have tried using the code below:
Private Sub Form_Current() If DateOfBirth > 11 / 11 / 1994 Then subEligibility.Visible = False End Sub
This works when the form is opened for the first record, but the visibility does not change as I scroll through the rest of the records.
I'm working on a table for work which will serve as a database of bins and the products currently in those bins, as follows:
ID Bin Amt Product 1 34 25 110001 2 33 15 200005 3 32 23 110003 etc.
Basically: employee A will use a form to update "Bin 34" (ID=1), with information (Amt, Product) until it is emptied by employee B and cleared using a separate form. No new records will be made or deleted, just the adjacent fields (Amt, Product) cleared and filled in and cleared again over and over.
What I'm trying to figure out is, when employee A clicks on the combo box on his/her form to select a Bin and enter information, how can I filter what is listed in the combo box to display only those bins which have no values under Amt & Product. The real-world risk of overwriting a bins fields before it has been cleared by employee B (who physically empties the bin) can be extremely high monetarily so I am trying to reduce that risk by eliminating it from the combo box until employee B has cleared those fields.
I have a created a query which I want to update a table. The field is called DTP. I have the Workingdays2 module in place as well as the Holidays Table. The dates (date only) are called Time in and Transaction date. I want the table to update records only if the entry in Completed is Yes. I have attached screenshot of what I have in query. I am no good whatsoever at VBA so I used the Query design view. It shows how many records will be updated (which is a valid number) and shows me which field will be updated. However when I run the query and then opend the Table the DTP field is empty.
I am just querying a single table, no relationship involved with another table. As you can see form the attached jpeg, the ZIP field in some cases is empty. I would run a search using Is NULL but the field is NOT numerical. It's a long story but I had to make this field a TEXT field. Basically, what statement do I have to insert in the criteria field to just pull up the EMPTY ZIP fields?
I made a report that have 'txtRemarks' field, I just want to get remarks automatically in 'txtRemarks' field based on the other field in report. that is why I used a function like below:
Code: Private Function Estd_Remarks(Estd_Point As Long) As String If Me.Estd_Point < 20 Or Me.Estd_Point = 0 Then Estd_Point = "Earlier Established" Esle Estd_Point = "OK" End If Estd_Remarks = Estd_Point End Function
And I wrote in properties 'On Format' event this code below:
Code: Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) If Estd_Remarks = "Ok" Then Me.txtRemarks = "Ranked & Sortlisted" Else Me.txtRemarks = "Estd_Remarks" End If End Sub
When preview the report then it shows Compile error Argument optional
I have a list of all previous employers for a job applicant. I can enter up to 10 but I only want the boxes to show if there is a previous position for that box. So, if there are 3 previous positions, I want to see 3 lines. If there are 10, I want to see 10. I have fields [Company_1]. [Company_2], etc. I only want company 2 to show if the person has 2 previous positions entered into the form.
I have a report that is looking up min and max quality specifications for a product. The table with the specifications has a Yes/No check box field for when the specs are defined as "Internal". So the table looks like Product/MinValue/MaxValue/Internal
I want the report to display "TEST AND RECORD" when the Internal box is checked where the MinValue and MaxValue (that are stored in the table) would be displayed otherwise.
Anyway, I would call myself intermediate level at best with Access. I never expected to have to do so much with it, but when my bosses found out I could do Access basics, they began demanding more and more.
I manage an EMR from which a datapull occurs on discharge to various access databases.
They wanted me to add a triage patient data pull to track what procedures are being done to triage patients. So I built a database with the following 2 tables.
tblTriageVisits and tblTriageProcedures tblTriageVisits has the following fields -Patient ID -Export Time
[Code].....
The tblTriageVisits stores all the patients triage visits. The other table stores what was done to each patient on those visits
It should also be noted that this EMR exports times in number of seconds since 12/31/1975, so TimeProcFMS is the number of seconds since that date for example.
The pulls work great and the duplicate record elimination method works great.
I have to design a couple of different reports based on this data and one in particular has pretty much flumoxxed me.
I need to make a report that lists each patient by date they were there and then shows what was done to them. I have tried several different variations of this as both queries and reports. The report breaks down when I try to get it to show just those procedures that would be for that triage visit. I got to the point where it would group by day and then sort the patients alphabetically. Then I added in the visit fields. And it would put all triage procedures for that patient from all their visits in each visit.
So, I was like great, let me filter out those that don't occur between the two dates, admission and discharge
I used the following two formulas (the first one on the procedure name field the second on the procedure date field)
=Switch(DateAdd("s",[TimeProcFMS],#12/31/1975#)>=[Admission DateTime OB DateTime] And DateAdd("s",[TimeProcFMS],#12/31/1975#)<=[LD Discharge Date/Time DateTime],[Procedures FMS])
=Switch(DateAdd("s",[TimeProcFMS],#12/31/1975#)>=[Admission DateTime OB DateTime] And DateAdd("s",[TimeProcFMS],#12/31/1975#)<=[LD Discharge Date/Time DateTime],DateAdd("s",[TimeProcFMS],#12/31/1975#))
And they work, sort of. They do eliminate those procedures that occur outside of the date range I am looking for. However, the access report still leave spaces in the report where the filtered out items would be.
Did I approach this problem correctly? And if so, how do I get rid of those spaces?
Note, I can read and mostly understand SQL, but am not comfortable working in it yet. And the Access SQL box gives me a headache, it is so jumbled up.
FoodStamps This is a YES/NO field (printed in the first or second columns).FSAmount This is a numeric field(always printed in the third column).I have a preprint form with three columns.The first column is for a YES answer and I want to print YES if FoodStamps is TRUE.The second column is for a NO answer and I want to print NO if the FoodStamps is False.The third column is either blank if the first column is YES or the actual value if the second column is a NO
Two cases:
If FoodStamps is TRUE then print
YES Blanks I have a preprinted form and I want the YES in the first column and blanks in the third column on the form regardless of what is in the fieldFSAmount
If FoodStamps is False then print NO value in FSAmount
the NO in the second column and the value of what is in the FSAmount field printed in the third column.I tried to figure it out with conditional formatting with no luck.
So I have a report with two pages. One page is about product exchange information and the other one payment. This report can either be printed or saved as a pdf (one pdf for both pages) and e-mailed.
This works fine, however if the item is under warranty then the exchange is for free and I do not want to print/e-mail the 2nd page (payment).My trigger field for this is "Warranty" which can be "Yes" or "No".How can I prevent that 2nd page from printing/e-mailing? Can it be simply skipped when the report is being created based on my field?
My report is grouped by a Billing Group #...within each billing group there are sub invoice numbers that are tied to the main billing group # (they all have the same billing group # but different general invoice numbers). I need to pull data if one of the general invoice # invoice dates is greater than or equal to a specific date entered.
In other words: If a Billing Group # and one of the Invoice Dates is greater than or equal to a specific date entered then pull ALL GROUP data to report.
I have a report that shows me an employee number that pulls data from the database, once that information is pulled, it shows me the results, I need to look another level down. Is there a way to put in a hyperlink to another report from the original report? example: Employee number 22 jobs worked on: 2214, 2218, 3222 From within this report, I would like to open job 2214 Is this possible?
I am trying to create a report that filters out certain records in a look-up field.
The field is called "program status", and the options are: Housed Evicted/Un-housed Grad GRAI Closed
I want the report to display only records that are classified as "Housed" or "Evicted/Un-housed". Additionally, I'd like to be able to create a second report with only the Grad, GRAI, and Closed records.
I have started work on a database to track the many (several hundred per annum) projects my company undertakes. A 'main' table lists projects, their fees, their key dates, their project numbers, etc. I have created another table for tasks. Each task is assigned to a project (via the project number), and may be 'open' or 'closed'. I have separated the tasks table from the projects table as there may be several different tasks for each project. It is also good to keep a record of the tasks.
I want to prepare a report from the projects table that lists projects IF they have any open tasks.
In my mind, this means 'If a task, with the corresponding project number, is open, put a 'Yes' in the 'Tasks open' field of the Projects table.'
I have a table called Inventory (table1 - PK=INVID) that contains all inventory ID numbers and descriptions. I have another table called Inventory Transactions (table2 - FK=INVID) that gets updated through a form. When a new transaction is made in table2, I want the transaction amount to get added or subtracted to an OnHandQty field in table1. I tried having table2 (transaction table) as the main form and then table2 as the subform, but I couldn't get table2 to update.
I am working on a DB that will have multiple reports available. What I would like to do is to have a form that lists the reports available from a reports table. In other words, each detail line of the form will contain a report. I would like to have a button or link placed in the detail line that will open the report for that detail line when it is clicked. This will keep me from having to add a new line to a static form every time I add a report.
I have tried the DoCmd.OpenReport command, but it requires a report name, and I can't find where you can place a field name variable in the command line. I have tried other things I have seen here, but none have done the trick.