I've a database with patient information. The database is structured in the following way:
tblPatients - patient information
tblVisits - visit information (one patient can have many visits)
tblInfo - extra information related to a visit
tblTreatment1 - treatment1 (linked to a visit)
tblTreatment2 - treatment2 (linked to a visit)
+ a couple of dozen minor tables and subtables
What I need is to be able to print out a patient record with all the information related to the patient in question. A patient may have one or more visits, and one visit may include one or more treatments or several instances of one treatment. A visit may or may not have some extra information on tblInfo (etc.)
Tables are linked to each other via key fields in a normal way. (= tblVisits is linked to tblPatients via patientID field, and tblTreatment1 is linked to tblVisits via visitID field etc.) All keys of the main tables are auto numbers.
My question is: how to gather this information from the tables? This seems to be too complex for Access's report wizard to accomplish. My Access Bible -book advices to create a query to collect all the information first, but I'm having problems with this, too. One problem is that not all tables have information related to a certain patient, or one patient can have more than one record in (eg.) tblVisits.
What do you suggest? I'm starting to think it would be best to write a query directly in SQL and base a report on that query. Could you give me some advice as to where to start and how to create the SQL statements? I hope I can work out the details myself, but a general advice would be most helpful.
Hi All, I am looking for some help with a project I am working on where I need to automatically print a report from my database every time a new record is added to the table. The table contains 13 fields and the report needs to display 12 of them, the other being the index which is set to Autonumber.
The table is being updated solely by ODBC, this is working OK.
There is the potential for records to be added to the table very quickly via the ODBC link, so I need to safeguard that the report is being populated with correct information from the record that triggered the print event. Also, should multiple records be added in close succession, a report needs to be correctly generated/printed for each of one. The DB is to have no user intervention, and will just run on the PC at startup with all access menus/controls locked out.
Any information on how you think I should structure this, or any examples of helpful code that you might have would be very much appreciated.
I have an unbound form with an associated report. When the user hits the 'print' button on the form/screen, the report is launched in the background. In the On Load event of the report I populate the report fields from the forms field as so:
This works like a charm as long as I call the report in Print Preview mode (i.e. with acViewPreview). But if I send the report directly to the printer, none of the fields print.
I've read about using other report events to populate the fields (e.g., On Format and On Print) and also something about using TempVars to pass the data. But I haven't read anything that's clear and definitive about the full answer.
I have a report that is tied to a table. On my table form I have a button that prints the report. Is there a way to only print the report for the current record showing on my form?
Private Sub Command30_Click() DoCmd.RunCommand acCmdSaveRecord Dim strDocName As String Dim strWhere As String strDocName = "Civil Process" strWhere = "[FormID]=" & Me!FormID DoCmd.OpenReport strDocName, acPreview, , strWhere DoCmd.RunCommand acCmdPrint End Sub
I can get this code to print only one record but then the button will always print this record. It will not change and print the current record.
FormID is an autonumber to give each record it own id.
I have a form NoWorkOrder, i have attached a command button to Print Report. The report is named No Work Order. When I'm viewing that a record in Form View and click the command button i want only that record to print out onto the report.
I am trying to get a report to print out one one record that I want.. I want it to be able to be sorted by date and the user just picks a date and one record is printed out on page. Right now every record that is stored is being printed on a different page and over time that is going to be a lot of paper... I want to be able to pick which record I want printed...
The Form is called "Bread Mold" The report is called "Bread Mold Report" The table is called "Bread Mold" What it is sorted by is called "Swab Date"
hi i have 3 queries brought together in 1 form. i do not want a report to be printed out just the current record in form view. this is because i have a number of images per record. if i print out the current record and it only has 1 photo in a sub-form attached to the main form record, then the main form will print on 1 page which is what i want [screenshot 1]. But if there are 2 or more photos attached to the main record then the print command button prints out 2 pages for 2 photos, 3 pages for 3 photos and so on [screenshot 2]. any ideas as to how to limit the print command button to print out only 1 page per record regardless of how many photos their are attached to each record?? thanks
I need to find a way to print the currently selected record (by clicking a button in the form) as a form. I know printing is almost always done in records, but they use the forms by hand before entering them into the computer database.
One tough part of this is that this printing function needs to be sustainable through revisions of the form, as we will be constantly updating it.
Is there a way to print the form with only the current record shown without creating a second form or report?
Why I cannot print a report using a single record in a form using Access 2007.
I have added the button, I am using the following code:
Private Sub cmdPrintRecord_Click() Dim strReportName As String Dim strCriteria As String strReportName = "Receipt" strCriteria = "[ID]='" & Me![ID] & "'" DoCmd.OpenReport strReportName, acViewPreview, , strCriteria End Sub
However when I click the button nothing happens. I have attached the database ...
I am using the Contacts Entry form, and when I am on a record that someone has paid I want to be able to print from the Receipt report that has a simple formed up letter.
I have a DB in Access 2007 which I'm having trouble with. I have a form, "Sub_Det_Frm", on which I would like to place a button to print the current record, (Primary Key is an autonumber "Employee Number") to a report "Sub_DetForm_Rpt".
I've used the instructions from, oops I can't show you the link! It's h(double t)p(colon)//allenbrowne(dot)com/casu-15(dot)html but I'm getting this error:
The expression On Click you entered as the property setting produced the following error: A problem occurred while Employee Details was communicating with the OLE server or ActiveX Control.
This error occurs when an event has failed to run because Microsoft Office Access cannot evaluate the location of the logic for the event. For example, if the OnOpen property of a form is set to =[Field], this error occurs because Access expects a macro or event name to run when the event is fired.
In my database scenario, a patient would see a doctor and the doctor would check off fields in a form representing different disease symptoms that the patient has to calculate a final score (for ex. if the patient has 2 symptoms, the final score would be 2).
After a few months, the patient would visit the doctor again, and the doctor will have to fill out the same form, adding any new symptoms the patient might now have. I would like to have the disease symptom fields checked off in the previous visit automatically show up in the new form, so that the doctor only has to add the new symptoms, and then recalculate the score using both the old and new data (for ex., if the patient had 2 symptoms before and 3 more symptoms now, the score would be 5).
How to limit input data on the same month for each patient? The field is a data/text box on a subform
I found this code on Form Current Event!:
Code: Private Sub Form_Current() Dim intMaxNumRecs as Integer intMaxNumRecs = 5 'Max Number of Records to Allow If Me.NewRecord Then With Me.RecordsetClone If .RecordCount > 0 Then .MoveLast: .MoveFirst If .RecordCount >= intMaxNumRecs Then MsgBox "Can't add more than " & intMaxNumRecs & " records in the demo database!" .MoveLast Me.Bookmark = .Bookmark End If End If End With End If End Sub
I want to be able to print preview a report based on 1 record record selected in the subform. So using the example above i'd like to print the record on say 01/01/13 as a report that contains all the information from the item table and only the information on the 01/01/13 from the record table.
I work for a charity in the Pacific. I am trying to develop a very basic patient electronic health record for a new hospital, to be used until we get a more comprehensive patient management system in place.
I have set up basic tables, forms, and a welcome screen.
The idea is that the doctor or nurse will start at the welcome screen. From there, they can either enter a new patient, or add a new patient encounter.
There are four types of patient encounters: assessment, treatment/surgery, refraction, and follow-up. I have made tables and forms for these encounters.
My issue is finding an easy way for the doctor or nurse to quickly and easily make sure that the encounter form they are filling relates to the appropriate patient. I already have a patient form, and patient ID field across the tables. But I would like to be able to add a 'search for patient' button on each of the encounter forms (or any other relatively easy method) to make sure everything lines up.
I have VBA code for a Print Preview button on the main form that previews the current record in a separate Report using this code:
Code: Private Sub cmdPrintRecord_Click() Dim strWhere As String
If Me.Dirty Then 'Save any edits. Me.Dirty = False End If
[code]....
I use this Print Preview code on a Button in the Form Header. The Main form lists head of household information. I also have a tabbed control with three tabs that have SubForms for Address, Children and Contact details. The problem I have is that if any of the subforms are left blank I get a Run-Time Error '3021': No Current Record. If I Debug (press the button), it takes me straight to this line:
highlighted in Yellow.Anyone on my database must have an address, should have contact details and could have children. If any one of these is blank then the print preview will not work.I would like to know how to stop this error happening for blank records in my subforms.
I'm not sure if this is possible in Access, but I was wondering if there is a way to automatically run an Update query when a report is printed.
More specifically, I have confirmation reports, and I want the date printed and confirmation sent fields to be updated upon printing. I have an update query ready, but because I'm not going to be the person actually doing the work, I'd like the update query to be run automatically.
I want to have Access run a query, open a report, and print the report based on the ID number of the form that I have open. Is this possible?
The situation would be, I have a form that uses the the primary key as a record number. After I enter the data into the form, with the form open I want to add a button to open and print a report of the current record number.
I have been an MS Excel man all along my career and I am a novice in MS Access.I have created a table, [Initial Customer Approval] which records data from a Form, [Initial Customer Approval]. Once the data is entered in the Form, I need to do some calculations based on the data entered in some of the fields in the form.I created 6 different queries for the six possible values in those fields. now for each of those queries I created respective reports.I placed a Print command button in the Form.
1. When I press the Print button it should open the report for the current record in the Form. (Currently It Opens all the reports simulatneously, with only one relevant report containing the current record; other opened reports being blank.)
2. If user presses the Print button before pressing Save button then system should prompt user.
Here is the code (Please note [reference number] is the unique ID generated for each record entered in the tabe through form):
Private bSaveClicked As Boolean Private Sub Form_BeforeUpdate(Cancel As Integer) If Not bSaveClicked Then MsgBox "You are trying to navigate away from the active record. Please either save your changes, or press ESC to cancel your changes.", vbOKOnly + vbInformation Cancel = True
I'm running access 2k, WinXP Pro SP2 - both are current with latest updates. I'm having a problem getting the select query behind a report to give me the results I need. The query works with two tables (Client List and Atty_Pmt). Atty_Pmt is related to Client List on a one-many relationship, using ClientList_ID primary key.The payments table structure is as follows:Atty_PmtIDDatePayAmtPayNotesClientList_IDThe Client List table has fields like 'lname', 'fname', 'dob', etc, etc.The ClientList table structure is as follows:IDLnameFnamedobstatusIm trying to structure a query that will list each client, and ONLY the last payment they made. I tried using a select query Top n, making 'n' value 1, and it only lists one client, one payment record, which isnt even the last payment they made.This is the query that I currently have....SELECT TOP 1 [Client List].ID, [Client List].Lname, [Client List].Fname, Atty_Pmt.Atty_PmtID, Atty_Pmt.Date, Atty_Pmt.PayAmt, Atty_Pmt.PayNotes FROM [Client List] INNER JOIN Atty_Pmt ON [Client List].ID = Atty_Pmt.ClientList_ID;Can someone tell me how to single out the most recent payment (either by greatest date - maybe closest date to current date - or by the 'Atty_PmtID' field). It could possibly be based on the 'Atty_PmtID' field because the payments are entered in order as they come in, so the most recent payment would be the higher 'Atty_PmtID' autonumber, but I just dont know.Thanks in advance for your suggestions and helpJRSemper-Fi!
I have a query that returns several records, typically 1 to 5. I need to print a label for each record returned by the query. Printing a label is no problem, but how do I print sequentally for each record in the query?