>>>LOCAL lcSource, lnCount, lnI, lnJ, lnK >>>FOR lnJ = 1 TO 1000 >>> WITH ThisForm.Grid1 >>> lcSource = .RecordSource >>> .RecordSource = "" >>> lnCount = .ColumnCount >>> FOR lnI = lnCount TO 1 STEP -1 >>> .RemoveObject(.Columns(lnI).Name) >>> ENDFOR >>> FOR lnI = 1 TO 3 >>> .AddObject('Column' + TRANSFORM(lnI), 'Column') >>> IF lnI = 2 >>> .Columns(lnI).AddObject("Combo1", "Combobox") >>> .Columns(lnI).RemoveObject("Text1") >>> .Columns(lnI).CurrentControl = "Combo1" >>> ENDIF >>> .Columns(lnI).Visible = .t. >>> ENDFOR >>> lnK = 1 >>> .RecordSource = (lcSource) >>> FOR lnI = 1 TO 3 >>> DO WHILE lnK <= FCOUNT(lcSource) AND NOT INLIST(TYPE(FIELD(lnK)), "C", "D") >>> IF lnK > FCOUNT(lcSource) >>> EXIT >>> ENDIF >>> lnK = lnK + 1 >>> LOOP >>> ENDDO >>> .Columns(lnI).ControlSource = lcSource + "." + FIELD(lnK) >>> lnK = lnK + 1 >>> ENDFOR >>> ENDWITH >>>ENDFOR>>>I have clicked the button several times and got no C5 error. Please try exactly what I did and see if you get the error.