Programación General > Visual Basic 6.0 e inferiores
Borrar Datos De Tabla Y Rango De Fechas
(1/1)
:
Saludos programadores,
Tengo alrededor de unas 3 dudas de como hacer ciertas operaciones de las cuales busco ayuda para proseguir
Tengo una Base de Datos la cual luego de 6 meses o anualmente se desea hacerle un backup y borrar la informacion de la BD original, es decir, vaciarla para comenzar nuevamente a llenarla.
Problema 1: (Borrar Data de las Tablas)
Ahora en mi caso, pregunto... qué instruccion es o son las que debo usar para poder borrar la data de las tablas, dejando las tablas intactas, es decir, la idea es no borrar la tabla ni sus campos, sino sólo la información dentro de ella. La Base de Datos es Access y la codificación está bajo DAO.
Problema 2: (Busqueda de Registros por Rango de Fechas)
Para una Tabla que ya tenga sus Registros, cómo podría hacer una busqueda de Reportes por Rango de Fechas. Pienso colocar una ventana (form) de Reporte con una Grilla MSFlexGrid para generar un Reporte en base a unos parametros establecidos. En este caso, mostrar los Registros por un rango de fechas (2 fechas: desde - hasta). Las dos fechas son colocadas en unos DTPicker pero esto iría en una sentencia SQL? o podría realizarse por codificación simple de vb?
Problema 3: (control TextBox con / / de fecha)
Como se llama el control TextoBox que tiene / / de fecha, ya que en Componentes no he podido encontrar a qué juego de controles pertenece. Y además, ya que nunca lo he usado, pero se me presenta la oportunidad de implementarlo ¿cómo se usa este control? ¿es bueno?
Problema 4: (Archivo Winzip de la BD)
¿Es posible que un código en VB genere un archivo winzip de la BD?
De ser posible, a que librerias de referencia, controles o código habría que acudir para hacer esto.
Los Problemas algo más Complejos de resolver:
(1) Debo colocar una Imagen en el fondo gris oscuro de un MDI Form, el problema que tengo con esto es que al parecer, no es posible en el MDI colocar la imagen en Mosaico o Expandida como en el caso de los Wallpaper en el Escritorio de Windows. ¿es posible o ya es algo que está fuera de los parametros de vb?
(2) Un post que ya había colocado antes, el de Actualizar una rejilla MSFlexGrid, al parecer no es posible ya que nunca he podido conseguir ni en internet ni en algun otro foro, resolver la actualización en ejecución. Solo funciona al cerrar la ventana que tiene la rejilla y al volverla a llamar. Pero cuando se Guarda, borra o se Edita un archivo y la rejilla está en la misma ventana, a la vista, este cambio (que si se hizo en la BD) no se refleja en la rejilla (en este caso MSFlexGrid).
He probado cerrando y volviendo a abrir la variable de Recordset, usando las propiedades de Refresh pero nada.
Muchas Gracias por tu ayuda para alguno de los 4 primeros problemas o todos.
Saludos.
Sagutxo:
Salu2.
1º. - abres el opendatabase y usas un
dimDB as Database
db= apertura de base
Db.execute "DELETE * FROM 'TABLA' WHERE 'CAMPOTABLA' = "
2º. -
ValStr = "SELECT * FROM Citas WHERE (Fecha>=" & "'" & FechaIni & "'"
ValStr = ValStr & " And Fecha<='" & FechaFin & "')"
3º.- No lo entiendo.
4º.- si es posible, las librerias zip.dll y unzip.dll son gratuitas de hecho utilizo un prog para crearlos. te mando un .bas que es el que uso, espero que te sirva.
:
Muchas gracias Sagutxo, el problema 1 esta resuelto
La sql sobre el rango de Fechas realiza la función de buscar en varias tablas y lo buscado lo coloca en una tabla que se vacia en cada consulta para nuevos ingresos de busqueda de las demas tablas.
Mi problema con el (problema 2) es que si la busqueda fuese en una sola Tabla, mostraria por medio de una sentencia sql esto, pero como es de varias tablas, pense en que todos los registros encontrados, fuesen guardados en una tabla para mostrar en la rejilla de la ventana. Como haría esta sql que me has indicado para varias tablas?
Por ejemplo, este código es referente a una sola tabla
Para buscar registros por una sola fecha exacta es facil, colocando la sentencia IF de esta manera:
--- Código: Text --- If TxtFecha.Text = RsMasivos!Fecha Then y el resto queda igual.
pero para un rango de fechas ya se me complica un poco más esto, como podría ajustar la sql a este codigo que al encontrar en la tabla MASIVOS, lo guarda en otra Tabla que es la que muestra su contenido en la ventana de Busqueda en la rejilla MSFlexGrid
--- Código: Text --- Dim Rango As String Rango = "Select * From MASIVOS Where (Fecha>=" & "'" & DTPickFechaDesde & "'" Rango = Rango & " And Fecha<='" & DTPickFechaHasta & "')" 'Buscar Todos los Registros de MASIVOS por Rango de Fechas: If RsMasivos.EOF = True Then Exit Sub End If RsMasivos.MoveFirst While Not RsMasivos.EOF If Rango = RsMasivos!Fecha Then RsMostrarBusqueda.AddNew RsMostrarBusqueda!Gestion = RsMasivos!Gestion RsMostrarBusqueda!Fecha = RsMasivos!Fecha RsMostrarBusqueda!Dias_Habiles = RsMasivos!Dias_Habiles RsMostrarBusqueda!Cantidad = RsMasivos!Cantidad RsMostrarBusqueda!Mes = RsMasivos!Mes RsMostrarBusqueda!Oficina = RsMasivos!Oficina RsMostrarBusqueda!Servicio = RsMasivos!Servicio RsMostrarBusqueda.Update End If RsMasivos.MoveNext Wend
El problema 3 es referente a un control o TextBox perteneciente al Visual Basic que ya trae dentro de él esto: / / para colocar la fecha y no tener que escribir los / pero he colocado controles DTPicker.
Precisamente uso DTPicket para lo de rango de fechas:
PTPickerFechaDesde y DTPickerFechaHasta lo cual es lo colocado en la sql del codigo que esta arriba.
El adjuntado para pasar la BD a formato zip si me sirve para lo que tengo pensado, gracias amigo.
Nuevamente muchas gracias por ayduarme, ya tengo algunas cosas resueltas gracias a la ayuda del foro, gracias amigo.
Saludos
Sagutxo:
Salu2. me vas a perdonar pero tu código me tiene en la luna. yo pienso que está mal hecho, pero solo es una opinión, :).
=======================
Primero declaras como string yy le metes una SELECT
Y luego lo comparas con un campo FECHA¿?, toy en el aire lo siento.
Dim Rango As String
Rango = "Select * From MASIVOS Where (Fecha>=" & "'" & DTPickFechaDesde & "'"
Rango = Rango & " And Fecha<='" & DTPickFechaHasta & "')"
If Rango = RsMasivos!Fecha Then
osea, si select patatin = a fecha, no coincidira nunca.
=======================
Si habres una taba conrestricciones se supone que solo coge lo que tu le has dicho, tu problema no lo veo.
Ya me perdonarás pero tendras que explicarte mejor.
A ver si este código te acara algo:
=============================
Set BasePrincipal = OpenDatabase(PathDeBase)
ValStr = "SELECT * FROM Citas WHERE (Fecha>=" & "'" & FechaIni & "'"
ValStr = ValStr & " And Fecha<='" & FechaFin & "')"
If GNCli <> 0 Then
ValStr = ValStr & " And IdCliente=" & DameInt(Mid$(Clientes.Text, (Len(Clientes.Text) - 3)))
End If
ValStr = ValStr & " ORDER BY Fecha;"
Set AbreTabla = BasePrincipal.OpenRecordset(ValStr, dbOpenDynaset, dbReadOnly)
If AbreTabla.EOF Then
AbreTabla.Close
BasePrincipal.Close
PulsaS 0, "No tiene trabajos realizados entre las fechas introducidas", "0 TRABAJOS", vbInformation
Exit Function
End If
Tabla1.Redraw = False
AbreTabla.MoveFirst
While Not AbreTabla.EOF
Tabla1.Rows = (Tabla1.Rows + 1)
Tabla1.Row = (Tabla1.Rows - 1)
Tabla1.TextMatrix(Tabla1.Row, 0) = "" & AbreTabla!Trabajo
Tabla1.TextMatrix(Tabla1.Row, 1) = "" & GiraFecha(AbreTabla!Fecha, 4)
Tabla1.TextMatrix(Tabla1.Row, 2) = "" & Mid$(AbreTabla!HoraI, 1, 2) & ":" & _
Mid$(AbreTabla!HoraI, (Len(AbreTabla!HoraI) - 1))
Tabla1.TextMatrix(Tabla1.Row, 3) = "" & Mid$(AbreTabla!HoraF, 1, 2) & ":" & _
Mid$(AbreTabla!HoraF, (Len(AbreTabla!HoraF) - 1))
Tabla1.TextMatrix(Tabla1.Row, 4) = "" & AbreTabla!Precio
If AbreTabla!cobrado = 0 Then
Tabla1.TextMatrix(Tabla1.Row, 5) = "No"
Tabla1.Col = 5
Tabla1.CellBackColor = &H80& 'blanco -2147483643
Else
Tabla1.TextMatrix(Tabla1.Row, 5) = "Si"
Tabla1.Col = 5
Tabla1.CellBackColor = 90 * QBColor(10)
End If
Tabla1.TextMatrix(Tabla1.Row, 6) = "" & AbreTabla!IdCliente
Tabla1.TextMatrix(Tabla1.Row, 7) = "" & AbreTabla!IdCita
AbreTabla.MoveNext
Wend
============================================
:
Claro, tu código me sirve, lo tomare como principal referencia para tratar mi asunto en base a ciertas modificaciones.
Cualquier error, posteo.
Navegación
Ir a la versión completa