Its not that difficult to place a combo box or a text box on given cell of a FlexGrid.
' Add event handler to catch grid click, and activate the correct control type for that column
Private Sub grdObserve_Click()
Dim lInt_SelRow As Integer
Dim lInt_SelCol As Integer
lInt_SelRow = grdObserve.Row
lInt_SelCol = grdObserve.Col
Select Case lInt_SelCol
Case <column(s) that need combo box>
ActivateComboBox
Case <column(s) that need text box>
ActivateTextBox
End Select
Exit Sub
' Bring the combo box up, set the value, position it, and send the user to it.
Private Sub ActivateComboBox()
Dim lInt_Left As Integer
Dim lInt_Top As Integer
Dim lInt_RowID As Integer
Dim lInt_ColID As Integer
lInt_RowID = grdObserve.Row
lInt_ColID = grdObserve.Col
lInt_Left = grdObserve.Left + grdObserve.CellLeft
lInt_Top = grdObserve.Top + grdObserve.CellTop
cboGrid.Top = lInt_Top - 20
cboGrid.Left = lInt_Left - 20
cboGrid.Tag = lInt_RowID & "," & lInt_ColID
cboGrid.Text = grdObserve.Text
cboGrid.Visible = True
cboGrid.Enabled = True
cboGrid.SetFocus
Exit Sub
' Stuff the selected value back into the grid, and hide the combo box
Private Sub cboGrid_LostFocus(rInt_CntlID As Integer)
Dim lVar_PrevPos_Arr As Variant
Dim lInt_RowID As Integer
Dim lInt_ColID As Integer
lVar_PrevPos_Arr = Split(cboGrid.Tag, ","

lInt_RowID = lVar_PrevPos_Arr(0)
lInt_ColID = lVar_PrevPos_Arr(1)
grdObserve.TextMatrix(lInt_RowID, lInt_ColID) = cboGrid.Text
cboGrid.Visible = False
End Sub
The code for textboxes works in a similar manner
Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein