• Domingo 22 de Diciembre de 2024, 14:30

Autor Tema:  Borrar Datos De Tabla Y Rango De Fechas  (Leído 6061 veces)

   

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Borrar Datos De Tabla Y Rango De Fechas
« en: Domingo 10 de Octubre de 2004, 21:35 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Borrar Datos De Tabla Y Rango De Fechas
« Respuesta #1 en: Lunes 11 de Octubre de 2004, 00:04 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Mi mujer tiene un físico bárbaro!!!. Einstein.

   

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Borrar Datos De Tabla Y Rango De Fechas
« Respuesta #2 en: Lunes 11 de Octubre de 2004, 01:41 »
0
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
  1.  
  2. If TxtFecha.Text = RsMasivos!Fecha Then
  3.  
  4.  
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
  1.  
  2.     Dim Rango As String
  3.     Rango = &#34;Select * From MASIVOS Where (Fecha&#62;=&#34; & &#34;'&#34; & DTPickFechaDesde & &#34;'&#34;
  4.     Rango = Rango & &#34; And Fecha&#60;='&#34; & DTPickFechaHasta & &#34;')&#34;
  5.  
  6.     'Buscar Todos los Registros de MASIVOS por Rango de Fechas:
  7.     If RsMasivos.EOF = True Then
  8.         Exit Sub
  9.     End If
  10.     RsMasivos.MoveFirst
  11.     While Not RsMasivos.EOF
  12.         If Rango = RsMasivos!Fecha Then
  13.             RsMostrarBusqueda.AddNew
  14.             RsMostrarBusqueda!Gestion = RsMasivos!Gestion
  15.             RsMostrarBusqueda!Fecha = RsMasivos!Fecha
  16.             RsMostrarBusqueda!Dias_Habiles = RsMasivos!Dias_Habiles
  17.             RsMostrarBusqueda!Cantidad = RsMasivos!Cantidad
  18.             RsMostrarBusqueda!Mes = RsMasivos!Mes
  19.             RsMostrarBusqueda!Oficina = RsMasivos!Oficina
  20.             RsMostrarBusqueda!Servicio = RsMasivos!Servicio
  21.             RsMostrarBusqueda.Update
  22.         End If
  23.         RsMasivos.MoveNext
  24.     Wend
  25.  
  26.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Borrar Datos De Tabla Y Rango De Fechas
« Respuesta #3 en: Lunes 11 de Octubre de 2004, 11:12 »
0
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

============================================
Mi mujer tiene un físico bárbaro!!!. Einstein.

   

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Borrar Datos De Tabla Y Rango De Fechas
« Respuesta #4 en: Martes 12 de Octubre de 2004, 04:56 »
0
Claro, tu código me sirve, lo tomare como principal referencia para tratar mi asunto en base a ciertas modificaciones.

Cualquier error, posteo.