Access - Aydua con Código para adapatarlo a mi base de datos

 
Vista:
sin imagen de perfil

Aydua con Código para adapatarlo a mi base de datos

Publicado por José Manuel (9 intervenciones) el 28/03/2018 17:50:08
Alguno de vosotros podría ayudarme con esto. Siento molestar, pero llevo dándole mil vueltas y leyendo mil cosas y no soy capaz de solucionarlo.
Mirad el código casi cumple lo que necesito, me explico:
Tengo una base de datos con una tabla llamada Citas y en ella un campo FechaCita con valor fecha/hora
Con esta base de datos he creado un formulario llamado FormCitas.
Cuando inserto una fecha que ya existe me avisa con un
MsgBox "Pulsa SI para Borra el registro y escribe la fecha a buscar", vbInformation, "ESTA FECHA LA EXISTE"
Hasta aqui todo bien, pero despues me saca una ventana para introduzca el valor del parametro Fecha_Cita en donde escribo la fecha que quiero
que me busque y no me lleva a ese registro, siempre me lleva al primer registro de la tabla.
Lo que necesito es que me lleve al egistro que contiene el valor que le pongo (que es una fecha, ejem.26/03/2018).
Os agradezco vuestra ayuda, ya no se que hacer. Gracias

Os pongo el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Private Sub Fecha_Cita_AfterUpdate()
Dim vPlan As Variant
    Dim vTPlan As Variant
    vPlan = Me.Fecha_Cita.Value
    If IsNull(vPlan) Then Exit Sub
        'Creamos el recordset
    Dim Rst As Recordset
    Set Rst = CurrentDb.OpenRecordset("Citas", dbOpenSnapshot)
    If Rst.RecordCount = 0 Then Exit Sub
    Rst.MoveFirst
        'Recorremos los registros de la tabla para ver si ya
'existe el valor introducido
    Do Until Rst.EOF
        vTPlan = Rst.Fields("FechaCita").Value
                'Si existe lanza un aviso y abre el registro en cuestión
                'en el formulario anticipos
            If vTPlan = vPlan Then
                MsgBox "Pulsa SI para Borra el registro y escribe la fecha a buscar", vbInformation, "ESTA FECHA LA EXISTE"
                DoCmd.DoMenuItem acEliminarReg, acEditMenu, 8, , acMenuVer70
                DoCmd.DoMenuItem acEliminarReg, acEditMenu, 6, , acMenuVer70
                DoCmd.OpenForm "FormCitas", , , "[Fecha_Cita] = '" & vPlan & "'"
 
 
                Exit Do
            End If
                             'Si no existe te deja añadirlo como uno nuevo, sin comentarte nada
        Rst.MoveNext
    Loop
        'Cerramos conexiones y liberamos memoria
    Rst.Close
    Set Rst = Nothing
 
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Aydua con Código para adapatarlo a mi base de datos

Publicado por Norberto (753 intervenciones) el 10/04/2018 09:23:47
Hola.

El problema es que estás tratando la fecha como cadena de texto. Pon el código tal que así:

1
DoCmd.OpenForm "FormCitas", , , "[Fecha_Cita] = #" & Format(vPlan, "mm/dd/yyyy") & "#"

Las fechas en SQL deben de estar entre almohadillas y en orden américano, es decir, mes, día y año.

Otra opción es definir la variable como Long (Double si incluyese la hora) y usarla sin ningún delimitador:
1
2
3
4
5
...
Dim lPlan As Long
...
DoCmd.OpenForm "FormCitas", , , "[Fecha_Cita] =" & lPlan
...

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Aydua con Código para adapatarlo a mi base de datos

Publicado por José Manuel (9 intervenciones) el 10/04/2018 12:32:38
Muchas gracias por contestar, voy a probarlo y te comento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar