Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Guides   Examples
New in version: 8.3   8.4   8.5   9.0   9.1   9.2   9.3   9.4   9.5   10.0    Statistic  


Update an existing record in a table in one line.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
FM FMSQL 6.0 Yes Yes Yes Yes Yes
MBS( "FM.UpdateRecord"; FileName; TableName; IDField; IDValue; FieldName; FieldValue )   More


Parameter Description Example value
FileName The file name of where the table is inside. Can be empty to look for the table in all files. Get(FileName)
TableName The name of the table to insert record into. "Assets"
IDField The name of the field which provides an unique ID for each record, so we can identify the field.
Can be RecordID for the record ID.
IDValue The value for the ID field to identify the record.
Data type of parameter must match the data type of the field.
FieldName A field name to set. "Model"
FieldValue A field value to use for setting the field in the parameter before.
Data type of parameter must match the data type of the field.


Returns OK or error.


Update an existing record in a table in one line.
You pass to this function table name (and optional filename).
To identify the record you pass the name of the ID field and the value for the record. The ID field must be unique.
Then you pass one pair of field name and value for each field you like to set in the new record.

Please note that FM.UpdateRecord and FM.UpdateRecords are nearly identical. Just FM.UpdateRecord provides the check to make sure only one record matches while FM.UpdateRecords allows several records to be updated. So with FM.UpdateRecords you can easily erase a lot of data if you pass wrong ID!

With plugin version 7.2 or later, you can specify fields and table via IDs and the plugin will lookup them for you at runtime. Table IDs and table names must be unique across all open files for this to work correctly.

With plugin version 8.4 or newer, you can use GetFieldName() function to query field names and the plugin removes the table prefix with :: in the field name before passing it to SQL engine.

You can use FM.ExecuteSQL.LastSQL function to see later what SQL was created and run.


Update a record:

MBS( "FM.UpdateRecord";
""; "Asset Management"; /* file and table name */
"Asset ID"; "1"; /* ID field and value */
"Information"; "Just a test"; /* first field and value */
"Category"; "BestItems" ) /* second field and value */

Update a record:

MBS( "FM.UpdateRecord"; Get(FileName); "Kontakte"; "Vorname"; "Joe"; "Firma"; "Test" )

Update a repeating field:

Set Variable [ $r ; Value: MBS( "FM.UpdateRecord"; ""; "Contacts"; "RowID"; 1; "repeating[5]"; "Hello" ) ]
Show Custom Dialog [ Get ( RecordID ) & ": " & Contacts::repeating[5] ]

See also

Example Databases

Blog Entries

Release notes

  • Version 9.3
    • Changed field quoting for FM.UpdateRecord and others to not quote ROWID as field name.

Created 5th December 2015, last changed 17th December 2019

FM.TableStatistics   -   FM.UpdateRecord2

Feedback: Report problem or ask question.

MBS Xojo Plugins