También puedes hacer edición con MSFlexGrid, Colocas 1º el control MSFG y encima le dibujas un control TextBox; te envío Código de Ejemplo: Si no sale completo, me avisas y lo envío por Mail
Dim contador As Integer
Sub msflexgridedit(MSFlexGrid As Control, edt As Control, keyascii As Integer)
Select Case keyascii
Case 0 To 32
edt = MSFlexGrid
edt.SelStart = 1000
Case Else
edt = Chr(keyascii)
edt.SelStart = 1
End Select
edt.Move MSFlexGrid.CellLeft, MSFlexGrid.CellTop, _
MSFlexGrid.CellWidth, MSFlexGrid.CellHeight
edt.Visible = True
edt.SetFocus
End Sub
Private Sub command1_Click()
'borra un determinado registro
Dim d As Integer
Set GenIsap = base.OpenRecordset("select * from Genisapre")
d = Val(fg2.TextMatrix(fg2.Row, 1))
strbusca = "idisap =" & d
GenIsap.FindFirst strbusca
GenIsap.Delete
GenIsap.Close
Call Form_Load
End Sub
Private Sub fg2_DblClick()
msflexgridedit fg2, txtedit, 32
End Sub
Private Sub fg2_KeyPress(keyascii As Integer)
msflexgridedit fg2, txtedit, keyascii
End Sub
Private Sub Guardar_Click()
Dim registro As Integer
Dim linea As Integer
On Error Resume Next
Set GenIsap = base.OpenRecordset("select * from GenIsapre")
For linea = 1 To fg2.Rows - 1
registro = Val(fg2.TextMatrix(linea, 1))
strbusca = "idisap =" & registro
GenIsap.FindFirst strbusca
If GenIsap.NoMatch Then
GenIsap.AddNew
GenIsap!idisap = reg