Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

buscar fechas en una tabla de la base de datos

Estas en el tema de buscar fechas en una tabla de la base de datos en el foro de Visual Basic clásico en Foros del Web. bueno, hola primeramente espero q les vaya muy bien, tengo un problema y espero que me ayuden a solucionarlo, y espero ser lo mas claro ...
  #1 (permalink)  
Antiguo 10/05/2009, 11:58
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 10 meses
Puntos: 0
buscar fechas en una tabla de la base de datos

bueno, hola primeramente espero q les vaya muy bien, tengo un problema y espero que me ayuden a solucionarlo, y espero ser lo mas claro y especifico posible por q nose exactamente como plantear la pregunta, bueno aqui voy.

tengo una base de datos con unas tablas llamadas nuevo_evento y ventas_evento
cuando agrego un nuevo evento en la tabla "nuevo_evento" esté me agrega tambien los datos necesarios o similares en la tabla ventas_evento, como cuales:

nombre, direccion, hora, costo.

cuando voy a realizar la venta en un formulario en vb 6.0 tengo q ver si el nombre de la caja de texto es igual al nombre del evento en la tabla de ventas_evento.
(por q los datos tambien van en la tabla ventas_evento, los mas relevantes)
yo tengo q realizar varias ventas por dia, la cosa es que no quiero q el sistema me guarde varias ventas del mismo dia, para que no se me acumule tantos registros en la base de datos.

SINO que me actualize la fecha del mismo dia y vaya almacenando la informacion, y cuando haya una nueva fecha o un nuevo dia me agrege otro registro y vaya almacenandose en ese registro la informacion y haci sucesivamente.

el caso es que yo lo hice, pero cuando agrego una nueva fecha siempre me agrega un nuevo registro y nunca lee a ver si la fecha esta repetida para actualizar el registro. aqui esta el codigo que yo hice a ver como me pueden ayudar. el cdate(text1) es donde yo hago la comparacion de la fecha q agrego con la fecha en la base de datos.

a otra cosa, cuando lo voy a actualizar por primera vez le agrego una condicion de que la fecha esta vacia o esta "-----" agrega el registro o lo actualiza y luego con la fecha agregada sique la rutina antes planteada.

aqui esta mi codigo.

Private Sub CmdActualizar_Click()
VentasDias.MoveFirst
While Not VentasDias.EOF
If VentasDias!nombreevento = TxtData(1) Then
If VentasDias!fechadia = CDate(Text1) Or VentasDias!fechadia = "----" Then
VentasDias.Edit
VentasDias!codigo = TxtData(0)
VentasDias!nombreevento = TxtData(1)
VentasDias!precioventa = TxtData(5)
VentasDias!fechadia = DTPnuevo
VentasDias.Update
MsgBox "La venta se realizo con exito!!!!!!!! 2", vbInformation
Exit Sub
Else
If VentasDias!fechadia <> CDate(Text1) Then
VentasDias.AddNew
VentasDias!codigo = TxtData(0)
VentasDias!nombreevento = TxtData(1)
VentasDias!precioventa = TxtData(5)
VentasDias!fechadia = DTPnuevo
VentasDias.Update
MsgBox "La venta se realizo con exito!!!!!!!! 3", vbInformation
Exit Sub
End If
End If
Else
VentasDias.MoveNext
End If
Wend
End Sub

espero q me puedan solucionar el problema o ayudarme con el mismo. gracias
  #2 (permalink)  
Antiguo 10/05/2009, 13:46
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: buscar fechas en una tabla de la base de datos

Que base de datos usas si es mysql utiliza donde la mandas a actualizar esta funcion ejemplo
r!fecha = format_(txtfecha.text,"yyyy-mm-dd") y cuando la llamas al formularios el format seria dd-mm-yyyy
  #3 (permalink)  
Antiguo 10/05/2009, 17:24
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: buscar fechas en una tabla de la base de datos

estoy usando access y ya intente eso y no me funciona
  #4 (permalink)  
Antiguo 10/05/2009, 19:34
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: buscar fechas en una tabla de la base de datos

en acces no se mucho pero el where seria "where fecha=' " & valor del campo & " ' " espero te sirva
  #5 (permalink)  
Antiguo 11/05/2009, 03:36
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: buscar fechas en una tabla de la base de datos

Cita:
Iniciado por vicentecamesella Ver Mensaje
en acces no se mucho pero el where seria "where fecha=' " & valor del campo & " ' " espero te sirva
En Access, para selecionar un campo de fecha se utilizan las almohadillas (#)

...WHERE CampoFecha = #" & Variable & "#"

  #6 (permalink)  
Antiguo 11/05/2009, 11:23
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: buscar fechas en una tabla de la base de datos

hola buenos dias, disculpa pero coloque lo q me difistes lo adapte a mi codigo y no me funciono, es como si el codigo q tengo no recorriera los registros verificando si hay fechas repetidas o no y eso es lo q quiero, que verifique y me muestre las fechas q estan o no repetidas deacuerdo a la fecha q yo le coloque, como condiciones.
  #7 (permalink)  
Antiguo 12/05/2009, 05:35
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: buscar fechas en una tabla de la base de datos

Cita:
Iniciado por davidtcsi Ver Mensaje
hola buenos dias, disculpa pero coloque lo q me difistes lo adapte a mi codigo y no me funciono, es como si el codigo q tengo no recorriera los registros verificando si hay fechas repetidas o no y eso es lo q quiero, que verifique y me muestre las fechas q estan o no repetidas deacuerdo a la fecha q yo le coloque, como condiciones.
Hola, recorrer todo el recordset para obtener un valor no es una buena técnica. Hay otras formas mas rápidas y eficientes de hacer lo que quieres. p.e.

Código vb:
Ver original
  1. Dim rs As New ADODB.Recordset
  2. Dim sql As String
  3. rs.CursorLocation = adUseClient
  4. rs.Open "SELECT * FROM LaTabla WHERE nombreevento = '" & TxtData(1) & "' AND fechadia = #" & _
  5. Text1 & "#", conexion, adOpenStatic, adLockOptimistic
  6. If rs.RecordCount > 0 Then
  7.     sql = "UPDATE LaTabla SET codigo='" & TxtData(0) & "', nombreevento='" & TxtData(1) & _
  8.         "', precioventa=" & TxtData(5) & ", fechadia=#" & Format(DTPnuevo, "mm/dd/yyyy") & _
  9.         "# WHERE nombreevento = '" & TxtData(1) & "' AND fechadia = #" & Text1 & "#"
  10. Else
  11.     sql = "INSERT INTO LaTabla(codigo, nombreevento, precioventa, fechadia) VALUES(" & _
  12.         TxtData(0) & ", '" & TxtData(1) & "', " & TxtData(5) & ", #" & Format(DTPnuevo, "mm/dd/yyyy") & _
  13.         "# WHERE nombreevento = '" & TxtData(1) & "' AND fechadia <> #" & Text1 & "#"
  14. End If
  15. conexion.Execute sql
  16. Set rs = Nothing
En este ejemplo se utiliza la tecnología ADO. Si estás utilizando DAO, solo tienes que cambiar la forma de abrir el recordset.

Nota: El ejemplo no lo he probado, por lo que podría haber algún error de sintaxis, pero ahí está la idea.

  #8 (permalink)  
Antiguo 12/05/2009, 17:16
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: buscar fechas en una tabla de la base de datos

hola buenas el codigo esta bien pero hay cosas q cuando las paso a DAO no me funciona se por lo menos en la tabla q colocastes como rs yo la tengo como VentasDias pero cuando le voy a colocar el atributo OpenRecorset no me funciona qu seria algo haci VentasDias.OpenRecordset por el Open solo no existe en DAO sino en ADO cual pudiera ser la solucion?
  #9 (permalink)  
Antiguo 12/05/2009, 19:11
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: buscar fechas en una tabla de la base de datos

...consejo...pasate a ADO ya y listo...
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #10 (permalink)  
Antiguo 13/05/2009, 02:15
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: buscar fechas en una tabla de la base de datos

Cita:
Iniciado por davidtcsi Ver Mensaje
hola buenas el codigo esta bien pero hay cosas q cuando las paso a DAO no me funciona se por lo menos en la tabla q colocastes como rs yo la tengo como VentasDias pero cuando le voy a colocar el atributo OpenRecorset no me funciona qu seria algo haci VentasDias.OpenRecordset por el Open solo no existe en DAO sino en ADO cual pudiera ser la solucion?
Es igual; sólo cambia la forma de abrir la BD y el recordset por el método DAO:

Set conexion = OpenDatabase("MiBaseDeDatos.mdb")
Set recordset = conexion.OpenRecordset("SELECT * FROM LaTabla....")


Cambia el nombre de las variables "conexion" y "recordset" por los que les hayas asignado en tu código.

  #11 (permalink)  
Antiguo 13/05/2009, 10:12
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: buscar fechas en una tabla de la base de datos

primeramente deberan querer matarme por q sigo teniendo problemitas, ayuda plis:

Set BdEvento = OpenDatabase(App.Path & "\BdEvento.mdb")
Set VentasDias = BdEvento.OpenRecordset("SELECT * FROM ventadias WHERE nombreevento = '" & TxtData(1).Text & "' AND fechadia = #" & Text1.Text & "#", conexion, adOpenStatic, adLockOptimistic)

esto deberia de funcionar a la perfeccion pero me sale un error que dice: "Argumento no valido" en la liea de codigo: Set VentasDias = ..................

VentasDias es la tabla y BdEvento es la base de datos.

aqui esta el codigo completo a ver

Dim sql As String
Set BdEvento = OpenDatabase(App.Path & "\BdEvento.mdb")
Set VentasDias = BdEvento.OpenRecordset("SELECT * FROM ventadias WHERE nombreevento = '" & TxtData(1).Text & "' AND fechadia = #" & Text1.Text & "#", conexion, adOpenStatic, adLockOptimistic)
If VentasDias.RecordCount > 0 Then
sql = "UPDATE ventadias SET codigo='" & TxtData(0) & "', nombreevento='" & TxtData(1) & _
"', precioventa=" & TxtData(5) & ", fechadia=#" & Format(DTPnuevo, "mm/dd/yyyy") & _
"# WHERE nombreevento = '" & TxtData(1) & "' AND fechadia = #" & Text1 & "#"
Else
sql = "INSERT INTO ventadias(codigo, nombreevento, precioventa, fechadia) VALUES(" & _
TxtData(0) & ", '" & TxtData(1) & "', " & TxtData(5) & ", #" & Format(DTPnuevo, "mm/dd/yyyy") & _
"# WHERE nombreevento = '" & TxtData(1) & "' AND fechadia <> #" & Text1 & "#"
End If
conexion.Execute sql
Set VentasDias = Nothing

una ayudita mas, esto es lo q necesito para completar ensi el funcionamiento de mi sistema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.