¿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 de orande
1
1
orande, Amplios conocimientos y experiencia en Visual Basic, SQL Server y...
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