Hola. Creo una tabla/recordset temporal osea todo en memoria y mediante un boton voy agregando registros a este recordset con metodo rs.addnew y rs.delete hasta ahi todo bien(Utilizo un datagrid).
Ahora aplicar el rs.delete previamente debo seleccionar el item del Datagrid(Si no lo hago me manda error pero se soluciona seleccioando una fila).
El gran problema esta en que quiero utilizar un MSHFlexgrid ya tengo todo listo pero logicamente el rs.delete no me funciona y me tira error ya que no estoy seleccionando nada ya que el grid herarquico solo muestra los registros y no tiene una conexion directa.
Como puedo aplicar un sentencia sql DELETE o UPDATE directamente a mi especie de recordset o tabla temporal o que debo hacer, intente buscando con el metodo .find pero hize bolas.
NOTA: el codigo actual todabia funciona por que utilizo el datagrid y si lo quito logicamente estaria tirando un rs.delete al aire.
Dim rsTemp As New Recordset
Sub TablaTemporal2()
rsTemp.CursorType = adOpenStatic
rsTemp.Fields.Append "IDn", adVarChar, 6, adFldIsNullable
rsTemp.Fields.Append "Nombre", adVarChar, 35, adFldIsNullable
rsTemp.Fields.Append "Marca", adVarChar, 35, adFldIsNullable
rsTemp.Open
Set DataGrid2.DataSource = rsTemp
Call Seteo_Grid_Herarquico(MSHFlexgrid1)
End Sub
Private Sub Form_Load()
Call TablaTemporal2
End Sub
Sub Seteo_Grid_Herarquico(Grid As MSHFlexGrid)
Dim i As Long
With Grid
Set .DataSource = Nothing
.Rows = 2
'.Clear
For i = 0 To .Cols - 1
.TextMatrix(1, i) = "" '<-- limpiar a mano la primera fila del flexgrid
Next
End With
If rsTemp.RecordCount > 0 Then
Set Grid.DataSource = rsTemp
End If
Grid.FormatString = "ID |NOMBRE |MARCA"
End Sub
Private Sub btnAgregar_Click()
rsTemp.AddNew
rsTemp.Fields(0) = Trim(txtIDn)
rsTemp.Fields(1) = Trim(txtNombre)
rsTemp.Fields(2) = Trim(txtMarca)
rsTemp.Update
Call Seteo_Grid_Herarquico(MSHFlexgrid1)
End Sub
Private Sub btnDelete_Click()
rsTemp.Delete
Call Seteo_Grid_Herarquico(MSHFlexgrid1)
End Sub