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

Cargar registros con DTPicker

Estas en el tema de Cargar registros con DTPicker en el foro de Visual Basic clásico en Foros del Web. Hola muy buenas, estoy haciendo un programa en el cual una de sus funciones es guardar citaciones usando un dtpicker con un richtextbox(descripción de la ...
  #1 (permalink)  
Antiguo 30/07/2008, 19:16
Avatar de er_davilito  
Fecha de Ingreso: julio-2008
Ubicación: La Línea
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Cargar registros con DTPicker

Hola muy buenas, estoy haciendo un programa en el cual una de sus funciones es guardar citaciones usando un dtpicker con un richtextbox(descripción de la cita) y un combo (para la hora).
Selecciono la fecha del calendario, también selecciono la hora del combo (tengo las en punto y las medias en el combo) y escribo una descripción (en mi caso como es para citas de tatuajes pues un ejemplo es: Miguel López - Tribal en el brazo) en el Richtextbox. Pues entonces lo guardo y se queda registrado en mi tabla "citas" de una base de datos en access. Pues bien, aquí tengo el problema: tengo un formulario para VER las citas que existen en el día que yo seleccione (dtpicker,combo por si el mismo dia hay 3 ó 4 citas con horas distintas, richtextbox para que muestre la descripción) cuando pincho en mi dtpicker y elijo una fecha no me sale nada, está todo en blanco.

Este es mi código, ah uso vb6.



Option Explicit
Dim conexion As ADODB.Connection
Dim record As ADODB.Recordset
Dim sql As String

Private Sub DTPicker1_Click()
Set conexion = New ADODB.Connection
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\david\Escritorio\PROYECTO\bd1.mdb;Persist Security Info=False"

Set record = New ADODB.Recordset
sql = "SELECT * FROM citas where fecha = '" & DTPicker1.Value & "'"

record.Open sql, conexion

RichTextBox1.Text = record!descripcion
Text1.Text = record!seña
Combo1.Text = record!hora

record.Close
conexion.Close
End Sub

Private Sub Form_Load()
DTPicker1.Value = Date

Set conexion = New ADODB.Connection
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\david\Escritorio\PROYECTO\bd1.mdb;Persist Security Info=False"

Set record = New ADODB.Recordset
sql = "SELECT fecha FROM citas"
record.Open sql, conexion
record.Close
conexion.Close

End Sub


No me carga nada, aunque también sé que no tengo nada puesto para que una vez elija el dia me salga más de una hora si la hay en el combo, y luego al elegir alguna hora me salga ya la descripcion.

Gracias de antemano, estaré al tanto de las posibles respuestas. Gracias y un Saludo!!
  #2 (permalink)  
Antiguo 31/07/2008, 01:42
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: Cargar registros con DTPicker

Hola, bueno decirte que
1º El evento Click del DTPicker no retorna ningún valor cuando pinchas en un día con el calendario desplegado, debes utilizar el evento CloseUp.

2º En el Load del Form haces la conexión a la BD y abres el recordset y a continuación los cierras sin haber hecho nada?

Podrías hacer un procedimiento para seleccionar los registros mas o menos así:

Código:
Sub CargarValores()
Set record = New ADODB.Recordset
record.CursorLocation = adUseClient
sql = "SELECT * FROM citas where fecha = #" & DTPicker1.Value & "#"
' Nota: Di no te dá los valores correctos, ponlo así:
' where fecha = #" & Format(DTPicker1.value, "mm/dd/yyyy) & "#"

record.Open sql, conexion
Combo1.Clear
If record.RecordCount = 0 Then
    MsgBox "No hay citas para este día"
    Exit Sub
ElseIf record.RecordCount = 1 Then
    ' solamente hay una cita para este día
    RichTextBox1.Text = record!descripcion
    Text1.Text = record!seña
    Combo1.Text = record!hora
Else
    ' hay más de una cita en este día, mostramos el primero
    RichTextBox1.Text = record!descripcion
    Text1.Text = record!seña
    ' y cargamos en el combo todas las horas
    Do Until record.EOF
        Combo1.AddItem record!hora
        record.MoveNext
    Loop
    Combo1.ListIndex = 0
End Sub
En el evento Load del formulario:
Código:
Private Sub Form_Load()
DTPicker1.Value = Date
' abrimos la conexión que nos va a servir para todo el módulo de formulario y solamente la
' cerraremos en el evento Unload del Form
Set conexion = New ADODB.Connection
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\david\Escritorio\PROYECTO\bd1.mdb;Persist Security Info=False"
CargarValores
End Sub
En el evento CloseUp del DTPicker llamamos al procedimiento:
Código:
Private Sub DTPicker1_CloseUp()
CargarValores
End Sub
y en el evento Click del Combo mostramos el registro que coincida con la hora seleccionada:
Código:
Private Sub Combo1_Click()
Set record = New ADODB.Recordset
record.CursorLocation = adUseClient
' 0jo con los formatos de fecha y hora, depende cómo los tengas declarados en la BD
sql = "SELECT * FROM citas where fecha = #" & DTPicker1.Value & "# And hora = #" & Combo1.Text & "#"
RichTextBox1.Text = record!descripcion
Text1.Text = record!seña
End Sub
  #3 (permalink)  
Antiguo 31/07/2008, 12:13
Avatar de er_davilito  
Fecha de Ingreso: julio-2008
Ubicación: La Línea
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cargar registros con DTPicker

Muchas Gracias, esta noche lo probaré y ya te diré como me ha ido.

Gracias!!
  #4 (permalink)  
Antiguo 31/07/2008, 15:13
Avatar de er_davilito  
Fecha de Ingreso: julio-2008
Ubicación: La Línea
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cargar registros con DTPicker

Me va bien pero no me carga todas las citas, hay algunas que me dice que no existen pero si que las hay.
Y cuando elijo un día en el cual existen más de una cita, me señala el error en el evento combo1_click() en:

RichTextBox1.Text = record!descripcion

No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
  #5 (permalink)  
Antiguo 31/07/2008, 16:13
Avatar de er_davilito  
Fecha de Ingreso: julio-2008
Ubicación: La Línea
Mensajes: 10
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cargar registros con DTPicker

creo que mejor voy a poner un DataGrid, y cuando seleccione el día que me salga todas las citas de ese día, y así también se ve mejor. aunque aver como arreglo lo de que no se salte ninguna cita porque me sigue saliendo lo mismo
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 05:15.