
MODIFICAR UN SOLO CAMPO DE UNA TABLA EN TODOS LOS REGISTROS
Publicado por Oscar (1 intervención) el 07/05/2024 22:10:50
Buenas tardes, mi problema es el siguiente:
Quisiera modificar (mediante un solo paso) un único campo de una tabla especifica para todos los registros.
Tengo una Tabla en mi base de datos llamada PRODUCTOS, Allí guardo toda la información de estos (Código, Descripción, Stock, Precio, Etc.), pero me gustaría saber como modificar un solo campo (por ejemplo, cambiar el PRECIO de todos los registros mediante una sola acción). Actualmente lo hago en forma manual, es decir, añado producto por producto en una nueva grilla a una tabla en mi base de datos que nombre PRODUCTOSTEMPORAL mediante el siguiente codigo:
With RsProductosTemporal
.Requery
.AddNew
!CodigoProducto = LblCodigoProducto.Caption
!Referencia = TxtReferencia.Text
!Descripcion = TxtDescripcion.Text
!Precio_Producto= CDbl(TxtPrecio.Text)
!Stock = TxtStock.Text
!Stock_Minimo = Val(TxtMinimo.Text)
!Reponer = Val(TxtReponer.Text)
!Foto1 = TxtFoto1.Text
!Foto2 = TxtFoto2.Text
!Foto3 = TxtFoto3.Text
!CostoPromedio = CDbl(TxtCosto.Text)
!Marca = LblCodigoMarca.Caption
!Clasificacion = LblCodigoClasificacion.Caption
!Proveedor = LblCodigoProveedor.Caption
!VentaMensual = Val(TxtVentaMensual.Text)
.Update
.Requery
End With
AdoModificar.RecordSource = "Select * From TablaProductosTemporal Order By [Descripcion],[Referencia]"
Set GrillaModificar.DataSource = RsProductosTemporal
FormatoGrillaProductosTemporal
Y luego grabo la informacion a mi tabla PRODUCTOS:
Dim RegistrosDatos As Integer
RegistrosDatos = RsProductosTemporal.RecordCount
RsProductosTemporal.Requery
RsProductosTemporal.MoveFirst
For X = 1 To RegistrosDatos
With RsProductos
.Requery
.Find "Codigo='" & Trim(GrillaModificar.Columns(0).Text) & "'"
!Precio_Producto = CDbl(GrillaModificar.Columns(4).Text)
.UpdateBatch
End With
If X = RegistrosDatos Then Else RsProductosTemporal.MoveNext
Next
Asi me funciona bien, pero queria saber si hay una forma de hacerlo automaticamente, es decir, que con un CommandButton (u otra opcion) se puedan agregar todos los productos de un DataGrid1 a un DataGrid2 y desde alli hacer las modificaciones.
O cualquier otra idea que se les ocurra.
Muchos les agradeceria lo que puedan hacer por mi ya que estoy aprendiento por tutoriales y foros.
Saludos
Quisiera modificar (mediante un solo paso) un único campo de una tabla especifica para todos los registros.
Tengo una Tabla en mi base de datos llamada PRODUCTOS, Allí guardo toda la información de estos (Código, Descripción, Stock, Precio, Etc.), pero me gustaría saber como modificar un solo campo (por ejemplo, cambiar el PRECIO de todos los registros mediante una sola acción). Actualmente lo hago en forma manual, es decir, añado producto por producto en una nueva grilla a una tabla en mi base de datos que nombre PRODUCTOSTEMPORAL mediante el siguiente codigo:
With RsProductosTemporal
.Requery
.AddNew
!CodigoProducto = LblCodigoProducto.Caption
!Referencia = TxtReferencia.Text
!Descripcion = TxtDescripcion.Text
!Precio_Producto= CDbl(TxtPrecio.Text)
!Stock = TxtStock.Text
!Stock_Minimo = Val(TxtMinimo.Text)
!Reponer = Val(TxtReponer.Text)
!Foto1 = TxtFoto1.Text
!Foto2 = TxtFoto2.Text
!Foto3 = TxtFoto3.Text
!CostoPromedio = CDbl(TxtCosto.Text)
!Marca = LblCodigoMarca.Caption
!Clasificacion = LblCodigoClasificacion.Caption
!Proveedor = LblCodigoProveedor.Caption
!VentaMensual = Val(TxtVentaMensual.Text)
.Update
.Requery
End With
AdoModificar.RecordSource = "Select * From TablaProductosTemporal Order By [Descripcion],[Referencia]"
Set GrillaModificar.DataSource = RsProductosTemporal
FormatoGrillaProductosTemporal
Y luego grabo la informacion a mi tabla PRODUCTOS:
Dim RegistrosDatos As Integer
RegistrosDatos = RsProductosTemporal.RecordCount
RsProductosTemporal.Requery
RsProductosTemporal.MoveFirst
For X = 1 To RegistrosDatos
With RsProductos
.Requery
.Find "Codigo='" & Trim(GrillaModificar.Columns(0).Text) & "'"
!Precio_Producto = CDbl(GrillaModificar.Columns(4).Text)
.UpdateBatch
End With
If X = RegistrosDatos Then Else RsProductosTemporal.MoveNext
Next
Asi me funciona bien, pero queria saber si hay una forma de hacerlo automaticamente, es decir, que con un CommandButton (u otra opcion) se puedan agregar todos los productos de un DataGrid1 a un DataGrid2 y desde alli hacer las modificaciones.
O cualquier otra idea que se les ocurra.
Muchos les agradeceria lo que puedan hacer por mi ya que estoy aprendiento por tutoriales y foros.
Saludos
Valora esta pregunta


0