*** Set Tables property (Table for INSERT, UPDATE or DELETE) CURSORSETPROP( "TABLES", "ITCR42KDAT.UDFields", "lcCursor" ) *** Key Field(Key field for WHERE clause) CURSORSETPROP( "KEYFIELDLIST", "idnumber", "lcCursor" ) *** Updateable Field List (Fields which are updatable) CURSORSETPROP( "UPDATABLEFIELDLIST", lcUpdFields, "lcCursor" ) *** UpdateNameList (Back-end table name for each cursor field ) CURSORSETPROP( "UPDATENAMELIST", lcUpdNames ,"lcCursor" ) *** Set Where Type and Send update flag CURSORSETPROP( "WHERETYPE", 1, "lcCursor" ) CURSORSETPROP( "SENDUPDATES", .T., "lcCursor" ) *** Also set the Buffer/Locking Mode to Table/Optimistic CURSORSETPROP( "Buffering", 5, "lcCursor" ) *** Update the display lcSql = " update UDFields set firstname = 'Tzzz' where UDFields.SSNo = '"+g+"'" * BROWSE z = TABLEUPDATE(.t.,.t.,"lcCursor") AERROR(test2) RELEASE test2 lnRes = .oCon.CloseConn(.nConBut the access table didn't get updated. The aerror() keeps saying "alias not found." Also the actually access database doesn't have a primary key defined but it does have a field that has unique numbers so I used that in KEYFIELDLIST. I thought my lcCursor would be alias because it is the selected cursor. I must be doing something wrong again. Any suggestions?