How can I update my mail merge / serial document data source?

I prepared a Calc spreadsheet detailing my students’ exam results and averaged grades.

I would like to print a slip of paper for each student listing their results.

I set up a Writer document and followed these steps:
https://jb-blog.readthedocs.io/en/latest/posts/0003-mailmerge-lo.html
to use my spreadsheet as a database. This worked fine.

I later spotted a few small errors in the original spreadsheet, so I updated and saved the spreadsheet. I thought I could just hit the Refresh/Rebuild button in the Writer toolbar to read the fixed data into Writer but that doesn’t seem to work; the updated numbers only appeared in the Writer document after I essentially started over by going back to the Writer menu Edit > Exchange Database…, re-selecting the spreadsheet, and dragging the relevant fields into the Writer document again.

Is there a more elegant way to do this?

Hello,

Have spent a bit of time with this and fail to duplicate your problem. Using LO v6.1.4.2 on Mint 18.3, here is what I did:

  • Open a new Writer doc

  • From menu Edit->Exchange Database...

  • Searched for Calc file, selected wanted sheet, clicked Define then Close; Never have to do again

  • Created document wording and inserted fields using Data Source from newly registered sheet.

  • Performed mail merge; all records OK

  • Saved document then closed it

  • Changed Calc data, saved & closed

  • Open saved Writer Doc; first record had old data but after scrolling past first record, all were displayed with updated data including the first one when scrolled back to; could also see all as updated when Edit Individual Documents was selected.

Based on your comment about re-doing Exchange Database, it appears something wasn’t saved or selected during your process as the Calc sheet was available to other Writer documents since you only need to register it once.

I found a solution that is clumsy but works.

Save my document, shut down LibreOffice entirely, then reload my document. It reconnects to the database.

A spreadsheet connection is the worst choice.

  1. Create a new directory
  2. Save the spreadsheet that contains no more than the list with column headers as dBase (*.dbf) within that directory.
  3. In your Base document call Edit>Database>Connection type… and switch from Spreadsheet to dBase.
  4. Click [Next] and specify the directory dBase created in 1).
  5. Save the database document

    A dBase connection is still very limited compared to a full blown database, however you can edit the data in the Base window, in the data source window and by means of input forms. After editing a record, you save only that single record, not the entire database.
    Refreshing is no problem anymore.