Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con consulta SQL en Access

Estas en el tema de Problema con consulta SQL en Access en el foro de Bases de Datos General en Foros del Web. Buenas a todos y gracias por su atención, Estoy trabajando con una base de datos en access, he creado unos formularios para visualizar los datos, ...
  #1 (permalink)  
Antiguo 23/10/2011, 09:00
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 15 años
Puntos: 1
Pregunta Problema con consulta SQL en Access

Buenas a todos y gracias por su atención,

Estoy trabajando con una base de datos en access, he creado unos formularios para visualizar los datos, pero al ejecutar una consulta SQL para generar un Recordset me arroja el siguiente error:

Pocos parámetros, se esperaba 1.

Este es el código:
Código:
Busqueda = Forms![PACIENTE]![CODIGO PACIENTE]
MsgBox (Busqueda)
Set Rst = CurrentDb.OpenRecordset("SELECT [EPISODIO].[CODIGO PACIENTE] FROM EPISODIO WHERE [EPISODIO].[CODIGO PACIENTE] = Busqueda")
Al mostrar el MsgBox se ve correctamente el dato guardado en "Busqueda", que es de tipo numérico.

Si pongo la expresión SQL de la sitguiente manera con Busqueda entre comillas simples:
Código:
Set Rst = CurrentDb.OpenRecordset("SELECT [EPISODIO].[CODIGO PACIENTE] FROM EPISODIO WHERE [EPISODIO].[CODIGO PACIENTE] = 'Busqueda'")
Me muestra el siguiente error:
"No coinciden los tipos de datos en la expresión de criterios."

Podéis echarme una mano a resolver este problema?
Gracias de nuevo por vuestra ayuda, un saludo a todos.
__________________
Lets Rock!
  #2 (permalink)  
Antiguo 23/10/2011, 09:27
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con consulta SQL en Access

Buenas de nuevo, he conseguido que funcione la consulta...

Tratando el dato "Busqueda" como si fuera de tipo texto y cambiando la consulta a esta forma:

Código:
Busqueda = Forms![PACIENTE]![CODIGO PACIENTE]
    Set Rst = CurrentDb.OpenRecordset("SELECT [EPISODIO].[CODIGO PACIENTE] FROM EPISODIO WHERE [EPISODIO].[CODIGO PACIENTE] LIKE 'Busqueda'")
El problema que tengo ahora es que al comprobar el contenido del RecordSet, solo funciona cuando se ha encontrado el dato, si no se encuentra el dato no hace lo que debería:

Código:
If Rst.NoMatch Then
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.GoToRecord , , acNewRec
        Forms![EPISODIO]![CODIGO PACIENTE] = Forms![PACIENTE]![CODIGO PACIENTE]
        MsgBox ("Nuevo episodio del paciente")
    Else
        stLinkCriteria = "[CODIGO PACIENTE]=" & Me![CODIGO PACIENTE]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    End If
    
    Rst.Close
    Set Rst = Nothing
__________________
Lets Rock!

Etiquetas: access, basic, sql, visual
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 10:41.