* Combobox.Refresh * check that item exists and correct it proprly to value ignoring case, or add it if vartype(this.Value) == "C" and !empty(this.ControlSource) local lFound, nitem, cValue, nFIndex, cOrValue m.lFound = .F. m.cOrValue = eval(this.ControlSource) if empty(m.cOrValue) or IsNull(m.cOrValue) return endif m.cValue = upper(allt(m.cOrValue)) if this.ListIndex <= 0 or !(m.cValue == upper(allt(this.List[this.ListIndex,this.BoundColumn]))) && if not match with selected value for m.nitem = 1 to this.ListCount if m.cValue == upper(allt(this.List[m.nitem,this.BoundColumn])) m.lFound = .T. m.nFIndex = m.nitem EXIT endif endfor if m.lFound * fix value in inproper case this.List[m.nFIndex,this.BoundColumn] = m.cOrValue if !empty(this.ControlSource) this.ControlSource = this.ControlSource && to refresh List Index without changing value in table endif else * add value to list local nID m.nID = this.ListCount + 1 THIS.ADDLISTITEM('\'+m.cOrValue, m.nID, 1) THIS.ADDLISTITEM('\'+m.cOrValue, m.nID, 2) THIS.ADDLISTITEM('\'+m.cOrValue, m.nID, 3) if !empty(this.ControlSource) this.ControlSource = this.ControlSource && to refresh List Index without changing value in table endif endif endif endifHTH.