I have a query that will be populating a form and then the form will allow the data set to be edited. The issue I am having is that the query is pulling the last row that is normally used to add a new record. This results in having a row that looks shows all fields as blank, but leaves one field with "null".
I played around with the query and was able to find a workaround by selecting "distinct" records, problem is that when you select with distinct, you cannot edit the data set. Is there any other way around this?
I can upload an example of the database if needed.
Thanks!
edit: picture to show the issue: https://imgbomb.com/i/?rO1sp
Related
I have created a form in Access and added a query to insert a row into the database using the values in the form. When I run the query using a macro attached to a button the query appends the same number of rows that exist in the database instead of a single one. I can't understand why. Any help would be appreciated.
Your query pulls not the selected (current) record but all records of the source.
But don't use a query, use the RecordsetClone as shown here:
Duplicate Record with New Primary Key (VBA)
Hi thanks for the replies. It was because I had created a select query first from a Customer table and then changed it to be an append query. So when I checked the SQL for my append query the last line was "From Customer". When I removed this part the append query worked as directed.
i'm hopeing someone will be able to solve this. I have a combo box which shows the records that are available to view. Upon selecting a record, my query updates without any problem. I tried to use this query within a subform however, for some reason, only the first record in the data set is shown upon selection. When I select anyting else from the available options, the subform doesn't change. However, when i re-select the first record, it shows.
The weird thing is, that when I change the drop down box to say the 2nd record & run the query itself, the desired record shows within the query designer.
To explain further: the combo box is called searchByAcc_cb. This is set so that it retrieves the account name & various other fields from the same table. Below that, there is a subform which is set to requery once another account from the drop down box is selected. When I select the 1st account, the record shows. However, upon selecting the 2nd account, 3rd, etc, nothing shows. I can then re-select the 1st record & i see the account information - so i know it's not a problem with the form updating.
The other strange thing is that upon selecting another account within the drop down box & then running the query from the query designer, the account information is retrieved for the 2nd / 3rd 4th record within the datasheet view. So, i know it isn't a problem with the query.
Any ideas on how to resolve? I've tried deleting the subform & re-inserting it (ensuring that the names match).
For anyone else struggeling with the same problem, I managed to resolve it: You need to delete any reference to the child / master fields within the subforms properties.
When I click the Combobox, the dropdown list is populated, yet when I try to click on an option it says "Recordset is not updateable".. I have tried to read up on this error yet can't identify the issue behind this. The joins aren't complicated and it has worked before. The query source for the AwardsSubFrm is attached:
Anyone know how to fix this?
The image of the query design indicates your record source is a GROUP BY query. The recordset from any GROUP BY query is never updateable. You can verify that point by opening the query in Datasheet View of the query designer and confirm Access won't let you change any of the values.
I don't know what the fix is for your situation, but you need something other than just a GROUP BY query. Perhaps a subform whose record source contains the table rows you want to update, and link it to the main form so it displays those records which are related to the current main form row.
Is it possible to generated a "Print When Expression" that detects the last element in an XML datasource file?
Basically I have a report with a column break inserted after a sub-report in a detail band so I can clearly define new pages for the beginning of a new record. But it always leaves me with a blank last page. So I am hoping that I can prevent this if I have a print when condition that prevents the column break if it is the last record element in the XML datasource.
Is this even possible?
The problem is that you don't know it's the last element until after you look for the next element. I don't think there is a simple way.
In principle it should be fine to do something like this:
Create a super-report around the entire report. Run the same query in the super-report. Count the rows. Then pass the number of rows to the original report (which is now a subreport) and re-run the query again. Clearly, running the query twice is another drawback.
If the data source were SQL, then I would suggest modifying the SQL to return the number of rows as part of the result set. But for non-SQL data sources, you need some way of knowing the number of rows (well... some way of identifying the last row) before you reach the last row.
Many years late...
if you sure your datasource is a JRBeanCollectionDataSource, you could use:
$V{REPORT_COUNT} == ((net.sf.jasperreports.engine.data.JRBeanCollectionDataSource)ORIGINAL_DATA_SOURCE( )).getData().size()
i have a huge sql query that is attached to the rowsource of a listbox.
the SQL statement seen here:
ms-access: select from another query
actually returns the correct information if that information is under 2 records.
however if it returns more than 2 records it still populates the listbox but it populates it with null values. when i right click on one of the values and press COPY, it gives me this message:
"there isnt enough memory to retrieve data for the list box"
But does the query work if it is run separately? And is the number of columns in the query the same number of columns as you've specified in the listbox Column Count property?
In your reply you state that you have to combine it? Why? Basic trouble shooting is to see if you can run the query separate from the lixtbox.