>>>SELECT * FROM SEC_CA WHERE CATEGORY = UPPER(ALLTRIM(this.caption)) INTO CURSOR csrCA >> >>FYI, you can get better performance out of that select command. Even if you have no indexes on sec_ca, you should avoid the this.caption and the upper(alltrim()) like this.... >> >>LOCAL lcCaption >>lcCaption = UPPER(ALLTRIM(THIS.Caption)) >>SELECT * FROM SEC_CA WHERE CATEGORY = m.lcCaption >> >>and if you have an index like UPPER(CATEGORY) >> >>then SELECT * FROM SEC_CA WHERE UPPER(CATEGORY) = m.lcCaption would be the optimal way to do it. >> >> >> >>> >>>THISFORM.oDE.ADDOBJECT("ca"+this.caption, "caSectional") >>>oCA = EVALUATE("thisform.oDE.ca"+ ALLTRIM(this.caption)) >>> >>>WITH oCA >>> .Alias = "csr" + lcCategory >>> .BufferModeOverride = 5 >>> .CursorSchema = "" >>> .DataSourceType = "NATIVE" >>> .FetchSize = -1 >>> .KeyFieldList = "SECT_NO" >>> .SelectCmd = ALLTRIM(csrCA.Selcmd) >>> .Tables = ALLTRIM(csrCA.tablenames) >>> .UpdatableFieldList = ALLTRIM(csrCA.Updfldlst) >>> .UpdateNameList = ALLTRIM(csrCA.UpdnamLst) >>>* The following line gets the data AND automatically displays it in a browse window! >>>* Needless to say, that's very annoying. >>> .CursorFill() >>>ENDWITH >>>>>>