Búsqueda y sumatoria

¿Quisiera hacer un reporte que me haga una búsqueda en una base de datos y luego que me incremente en automático todo los números que hay dentro de esa tabla hay pero no se como?

1 respuesta

Respuesta
1
Creo que deberás hacerlo en dos querys. En la primera haces la consulta y la muestras o almacenas los valores que desees. En la siguiente puedes incrementar los valores:
"Update Tabla1 Set Campo1 = Campo1 + 1 Where Campo1 > 1000"
Esta Query te incrementa en una unidad todos los registros del Campo1 superiores a 1000.
Intenta siempre que puedas poner la query de acción (insert, update o delete) dentro de una transacción (por si las moscas).
¿Perdón pero como se hacen los querys?
:(
Las querys son las instrucciones de código que interpreta cualquier gestor de base de datos (si es estándar).
Para hacer una query (que puede se una inserción, INSERT, una edición, UPDATE, un borrado, DELETE, o una consulta, SELECT) se necesita una conexión a la BBDD (base de datos).
Para que puedas hacer lo que quieres te voy a poner un ejemplo (necesitas la referencia a "Microsoft DAO 3.6" o superior):
Private Sub Command1_Click()
Dim BBDD As Database
Dim DATOS As Recordset
Dim InTrans As Boolean
On Error GoTo TratarError
'Conectamos a la base de datos
Set BBDD = DBEngine.Workspaces(0).OpenDatabase("D:\Gesguard\Gesguard2.mdb")
'Realizamos la consulta
Set DATOS = BBDD.OpenRecordset("Select * from Tabla1 Where (Campo1 > 1000)")
'Actualizamos los datos
DBEngine.Workspaces(0).BeginTrans: InTrans = True
BBDD.Execute "Update Tabla1 Set Campo1 = Campo1 +1 Where (Campo1 > 1000)"
DBEngine.Workspaces(0).CommitTrans: InTrans = False
'Ponemos los datos antiguos, si los hay, en la ventana de inmediato
If Not (DATOS.BOF And DATOS.EOF) Then
DATOS.MoveFirst
Do
Debug.Print DATOS("Campo1")
DATOS.MoveNext
Loop While Not DATOS.EOF
End If
DATOS.Close
BBDD.Close
TratarError:
If InTrans Then DBEngine.Workspaces(0).Rollback
Set DATOS = Nothing
Set BBDD = Nothing
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation, "Error en actualización"
Err.Clear
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas