I'm trying to produce a list of names and addresses of our clients that have paid within a particular timeframe.
Doing a query with just the client table is fine, but when I link in the payment table and access fields from that, the clients address (memo field from the client table) is displayed only as little square symbols. If I leave the payment table joined in on the query but don't print any fields from it, all's well but, as soon as I use data then the address gets fried.
Any idea what's wrong?
This may be of interest: Index corrupts memo-field in joined table
It suggests using the solution offered by http://allenbrowne.com/bug-18.html
Related
Creating a report that is a display of a persons online application, so there are text boxes and multiple tables per person. I need each person to print on the same page, so a user can select either a particular application, or a date range, like all applications for today and yesterday. I currently have everything in a LIST object with a page break set on it, however the tables in the LIST would throw the "detail member with inner members" error. I found a a way around that using the solution here: http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/reporting-services-error-the-tablix/ , which got rid of the error, but any multiple row tables return a new row per page, so a person with 3 aliases, will have a 3 page report. So, I am looking for a new tutorial on how to keep everything on one page, but allow my tables to return all results on the same page. Thanks.
I don't know if you are writing the query out or using a stored procedure. If you are using a stored procedure if would make it a lot easier to use SSRS. But to get the grouping correct find a common record between the user and the aliases. Then be sure to pull that common identifier into the stored procedure. Then use the table wizard and pull in all the information you want to see and pull the common identifier into the row group box and it will format for you and group that person on the common identifier and hopefully give you the results you are looking for.
I wanted to get some advice on how to go about storing invoice data in a mysql database.
My first understanding would be to have two tables..
Invoices & Invoice_rows..
Invoices would hold FK to Client ID, invoice number, invoice date, paid or unpaid flag
Invoice_rows would hold all the items to invoice, FK to invoices, description, price, tax
Only thing is after the invoice is created it might need to be updated.. spelling mistake, extra item needed to be added etc. So for this is i will first need to query to get all of the rows, then I will need to execute multiple updates to all the rows every time a change is made.
Would storing all the rows as JSON in a text field for each individual invoice in the single invoices table work well or cause more of a problem? the fact that all rows will need to be updated regardless if there was only a change to one row upon save makes no difference just converting it to json and replacing the text field with the new JSON surely? The JSON wouldn't need to be searchable either as it's the client that will be searched and will list all of their invoices based upon their ID.
Any recommendation to make this efficient and easy to work with is most appreciated!
Just keep track of the changes in the front end and call your AJAX method when they're done. The method should take the invoice number and any updated rows including the PKs.
Do NOT store JSON in the database. That would be a truly awful thing. JSON is just a useful mechanism for transit and your choice of UI. It is not your data but a temporary transformation of it.
I am reworking and expanding a somewhat complex database schema that has a small number of tables and queries but they are closely related. The only problem I had with it was that in one of the tables the 2 fields that were relating to another table were using the field name of the record and not the ID of the record.
I changed the referring fields data type from text to number and entered some data. The queries and the reports work fine with 1 exception:
There is one report that uses both referring fields. One of the fields is ok but the other one shows symbols instead of numbers. ( The IDs in my sample entries were 14 and 20 and the symbols shown were a double barred music note /alt code 14/ and the symbol for an end of a paragraph /alt code 20/ ) Investigating further I have found that if I make a query that contains the query source for the report both fields display fine, but if I add another table to that query the second field once again shows symbols instead of numbers.
I have found a workaround of this by converting those fields back to text and the id fields in the other tables to text as well. This text key will probably haunt me later on, so I'd like to make it right before it is too late.
This is all access 2010 btw. The source file was already in 2010 (couldn't open in 2007 even)
Sounds like a corruption issue for sure. I would try adding a new column and run an update query to populate it with the values from the old column (maybe use cint(indexfield)), then delete the old column.
It might also be a good idea to decompile the database. This often helps resolve corruption issues.
Basics about the database
I am working on a (relatively) simple database that stores inventory data. I am using Microsoft Access 2010 in order to do this. I have six tables with the following relationships:
Relationships of Database
I have created forms which combine the Transaction table with Ordered, Received, Allocated, or Dispensed. Each form requests an amount which will then be used to update On Hand, On Order, or Allocated (from the Material table) respectively.
The Problem
For example, my form to update Transaction and Order should be able to take in the Amount ordered, save all the data from the fields to the Transaction and Order tables as well as add the amount from Amount to On Order in the Materials table.
I have been working on this database for the past two days. I have searched several times for possible ways to perform a similar function, but have come up with nothing. All the tutorials I have found which seem remotely close to what I need to accomplish are for versions of Access which are much older than 2010. Unfortunately I have had little experience with the actual coding within Access, so I am stuck clicking around within the buttons on its menus.
What I have tried
Currently, the program is set to run the following Update query:
Screenshot of update query
This query works if I have one Material stored in the database but adds all the Amount values from Ordered to On Order every time it is ran, which is unfortunately not what I need it to do. I only need each Amount value added to On Order once.
You need to relate the Ordered and Material tables by adding a foreign key field to the Material table, ex. OrderedFK (Long Integer). This new field must be updated whenever a row is inserted into the Ordered table (assuming the "No" Field is AutoNumber). This is typically performed by using a Form (Ordered) and Sub-Form (Material) and setting the sub-form' Link Master (No) and Link Child fields (OrderedFK).
You can then join the Ordered and Material tables on the Update Query to achieve the desired result.
I'm trying to make access conditionally only show rows that meet a certain condition, allow me to give you some background info before I proceed :
I've created an Access form and linked it to a test DB on my machine. The particular table I am interested in contains the following (important) rows :
ID , Office, Name, SecurityNumber
The thing is, ID is not unique. There are two Office locations, and each Office has it's own set of unique ID numbers. This means that ID 10 here and there may or may not be the same person. (this data comes out of a legacy security system we're not looking to change yet, so I cannot change it)
But ID -is- unique to each Office.
SO! I created an Access form with TABS! Two tabs, one for each office. What I am trying to achieve now is :
Have the ID/Name/SecurityNumber fields for each tab populate with only rows that match it's particular 'Office' value.
Thank you for reading and thank you for helping! :D
If you want the data for the office locations presented in separate tab page controls, you could use subforms on the pages which differ only in the WHERE clause of the queries used as their record sources. So for the Office1 subform, the query could be:
SELECT ID, Office, [Name], SecurityNumber
FROM YourTable
WHERE Office = 'Office1'
ORDER BY [Name];
Then for Office2, the query would be the same except for the WHERE clause:
WHERE Office = 'Office2'
As I understand your question, that approach would do what you're asking for.
However, that's not really the easy "Access way" to do it. Instead consider a combo box control to allow your users to choose which office they want to view. In the code for the combo's after update event, either modify the SELECT statement used as the form's record source or create a filter expression an apply it.
Also, since you're pulling the form's data from SQL Server, consider whether you want your form to load every record for the selected office location. It may not be much concern if you have only a few to moderate number of rows for each location, but if you'll be dealing with multiple thousands of rows it could be. In general, you should try to avoid pulling copious amounts of data across the wire; pull sparingly instead ... only what you need for the immediate task at hand.