Usuario
Control TDBGrid Agregar y eliminar filas y demas eventos?

Pregunta
-
Buenos Dias
Tengo ese control TDBGrid que no logro hacer que agrege o elimine filas, asi de simple, es en VB6, agradezco cualquier ayuda.
Gracias
PD
No se encuentra mucho de este control por la web no?, a lo sumo pude crear una nueva columna a la izqueirda, pero eso no necesito ahroa
Iparraguirre Meza Kenny
Todas las respuestas
-
El control TrueDbGrid tiene la propiedad AllowAddNew que debe tener el valor True si quieres que el usuario pueda agregar registros desde el propio TrueDbGrid y la propiedad AllowDelete que tendrá el valor True si el usuario puede eliminar filas.
No se como estás utilizando este control, si lo enlazas a base de datos o si lo utilizas en unbound. Tampoco dices que versión es la que usas.
Saludos, Javier J
-
Es al versión 7 del control, desconozco si hay otra forma de trabajarlo que no sea enlazarlo a un origen de datos.
Con lo de agregar me referia a pasar de un textbox, un combo a filas de TDBGrid, despues de hacer click en un boton.
Como era para ayer tuve que hacer lo siguiente, claro no es la mejor forma, si pudieras decirme como acortar este codigo, te agradeceria mucho.
Function fn_AgregarDatos() Set rst = New ADODB.Recordset rst.CursorType = adOpenKeyset rst.LockType = adLockBatchOptimistic rst.CursorLocation = adUseClient Dim xNumero As String Dim xCodigo As String Dim xProducto As String Dim xCantidad As String Dim i As Integer rst.Fields.Append "Numero", adBSTR, 10, adFldUpdatable rst.Fields.Append "Codigo", adBSTR, 10, adFldUpdatable rst.Fields.Append "Producto", adBSTR, 50, adFldUpdatable rst.Fields.Append "Cantidad", adBSTR, 10, adFldUpdatable If (dtpReceta.ApproxCount = 0) Then rst.Open rst.AddNew rst.Fields("Numero").Value = "" rst.Fields("Codigo").Value = txtCodigoProductoAlmacen.Text rst.Fields("Producto").Value = cboProductoAlmacen.Text rst.Fields("Cantidad").Value = txtCantidad.Text rst.MoveFirst Set dtpReceta.DataSource = rst Else rst.Open For i = 1 To dtpReceta.ApproxCount xNumero = Trim(dtpReceta.Columns(0)) xCodigo = Trim(dtpReceta.Columns(1)) xProducto = Trim(dtpReceta.Columns(2)) xCantidad = Trim(dtpReceta.Columns(3)) rst.AddNew rst.Fields("Numero").Value = xNumero rst.Fields("Codigo").Value = xCodigo rst.Fields("Producto").Value = xProducto rst.Fields("Cantidad").Value = xCantidad rst.Update dtpReceta.MoveNext Next rst.AddNew rst.Fields("Numero").Value = Trim("") rst.Fields("Codigo").Value = Trim(txtCodigoProductoAlmacen.Text) rst.Fields("Producto").Value = Trim(cboProductoAlmacen.Text) rst.Fields("Cantidad").Value = Trim(txtCantidad.Text) rst.Update Set dtpReceta.DataSource = Nothing Set dtpReceta.DataSource = rst rst.MoveFirst End If CmdGenerar.Enabled = True End Function
Y este es el de Eliminar
Function fn_EliminarDatos() Dim xPosicion As String Dim i As Integer Dim xNumero As String Dim xCodigo As String Dim xProducto As String Dim xCantidad As String Set rstVacio = New ADODB.Recordset rstVacio.CursorType = adOpenKeyset rstVacio.LockType = adLockBatchOptimistic rstVacio.CursorLocation = adUseClient rstVacio.Fields.Append "Numero", adBSTR, 10, adFldUpdatable rstVacio.Fields.Append "Codigo", adBSTR, 10, adFldUpdatable rstVacio.Fields.Append "Producto", adBSTR, 50, adFldUpdatable rstVacio.Fields.Append "Cantidad", adBSTR, 10, adFldUpdatable rstVacio.Open If (dtpReceta.ApproxCount >= 1) Then xPosicion = Trim(dtpReceta.Columns(1)) dtpReceta.MoveFirst For i = 1 To dtpReceta.ApproxCount xNumero = Trim(dtpReceta.Columns(0)) xCodigo = Trim(dtpReceta.Columns(1)) xProducto = Trim(dtpReceta.Columns(2)) xCantidad = Trim(dtpReceta.Columns(3)) If (xCodigo = xPosicion) Then dtpReceta.MoveNext Else rstVacio.AddNew rstVacio.Fields("Numero").Value = xNumero rstVacio.Fields("Codigo").Value = xCodigo rstVacio.Fields("Producto").Value = xProducto rstVacio.Fields("Cantidad").Value = xCantidad rstVacio.Update dtpReceta.MoveNext End If Next Set dtpReceta.DataSource = Nothing Set dtpReceta.DataSource = rstVacio Else MsgBox "No hay filas que eliminar", vbCritical, "Mantenimiento Receta" End If End Function
Cualquier cosa me comentas
Gracias
Iparraguirre Meza Kenny