4

I am using QGIS 2.18.3.

I have a shapefile (which defines parcels) and a .csv file (non-spatial) as a table (added to the project through add vector layer) with additional data regarding the parcels. I have joined the .csv based table to the shapefile layer.

If I select the parcel layer, toggle editing, have "auto open form" checked and click on a parcel the Feature Attributes form opens fine and shows the fields and data from both the shapefile and the .csv table.

However, the problem is that the attributes from the shapefile are editable but the attribute fields from the .csv table are grayed out and cannot be edited.

Is there a way edit the attributes from the joined .csv based table in the Feature Attributes form?


I created a new shapefile layer using the save as and the fields are editable. That process renamed the attribute fields from the table but that is a minor item to fix.

More significant would be the workflow that this creates if I am not missing something. When the parcel layer is updated it would seem that I would need to extract the data from the joined shapefile for the table data attributes, recreate a .csv or Excel file, bring that data back in as a layer, join it with the new parcel layer, recreate a new shapefile layer from the join and then set up the styles, labels and form fields again.

Is there a better way for me to bring in additional data that needs to be joined with the parcel layer but also needs to be editable? (Note, I did activate the EditableGEOCSV plugin and the .csv table is directly editable but because this is for a field use application where the data needs to be updated it really only works if you can click on a parcel and have a form pop up for editing the additional data associated with that parcel.)


Here is an update. It took weeks to get IT to look at the permissions issue and so far they have not been able to resolve it. Both CSV and Excel files continue to not be editable from within QGIS while on the network drive. So, I copied all of the files and projects back to my C:/ drive and with no changes the CSV files can be edited. Excel still are not but I can work with that. Now when I click on the Identify Tool the Relation fields are editable. This works for now, long term I will need to workout the network permissions issues with IT. The one remaining issue to figure out is that now that the fields are Relational rather than through a join they are not showing up in the fields available for rule based styling. Is there a way to add them in? I can do both a Relation for editing and a join of the same table for styling and the styling shows up but will this cause conflicts or other problems?


To help other people seeing this discussion understand and apply the above comments here is a screenshot and a summary of the problem that was being solved. I will try to keep it concise. What I am creating is a QGIS project that is loaded onto a laptop and used as a field device for entering inspection data. The solution that fits our needs seems to be using both relations (for data editing) and joins (for styling), although I am still testing this to see if that creates conflicts or issues. The inspection data that we are generating new needs to be kept separate from the data coming in from the parcel layer. This is critical for updating and synchronizing of data from multiple field devices and updates to the parcel layer driven by a different department. The editing (adding of inspection observations) needs to occur through the Identify tool so that the person doing the inspections can visually identify the parcel through the parcel lines and aerial photographs, click on the parcel and enter the data. The styling is needed to show the work progress, shading parcels that are done, so the styling needs to pull from the inspection data table as well. The project design needs to allow the parcel layer to be updated without having to redo joins, shapefile save as, styles etc. … Hope that helps to understand and apply the comments.

enter image description here

  • Please take the 2-minute Tour because the protocols of focussed Q&A sites like this are quite different to (and I think much better than) those of discussion forums. – PolyGeo Mar 29 '17 at 23:42
7

You can't edit joined vector layers or csv tables through attribute table of original layer, but you can edit your .csv (added through add vector layer) separately in it's attribute table, same way as other vector layer. Or as @ConstanceL wrote in his answer, export layer with joined table via Save as...


Update:

Now I get it, you want use auto open form via Identify tool. For this you don't need joins at all. You have to create relation of layers in project properties.

Go to Project-->Project Properties-->Relations and add relation. Set your csv table as a Child and vector layer as a Parent. Now after hitting (auto open form) identify you get Feature Attributes window with editable attribute table of related data, like this:

enter image description here

  • Thanks Oto. I got partially there. I got the relation set up and got the features from the relation added to the feature attributes form and they show up similar to your illustration. However, the edit and other buttons are all grayed out and inactive. I figure there is probably something simple to turn this on but have not found it yet. – Michael Mar 1 '17 at 16:06
  • do you have write permission to csv file (or parrent folder)? Can you edit table separately (via attribute table)? – Oto Kaláb Mar 1 '17 at 16:25
  • Hmmm. Interesting. Yes on the parent folder. The csv/xls files no. I could a week ago and have made edits to both in the past. Thinking through this past week it dawns on my that all of the supporting files were migrated from my machine (C:) to a network server. I bet there are write permission setting issues with the new network server. Something along the line of I can edit the parent because it is a shape file but not csv/xls. I will post what I find out. Thanks. – Michael Mar 2 '17 at 15:39
1

Save your shapefile with joined csv as a new shapefile.

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.