Vba - Access

Hola soy novatillo en Vba y me he encallado. Tengo un subformulario que intenga cargar datos dependiendo el Formulario principal.
strSource = "SELECT * FROM bdFacturas " & " WHERE Ref/id = '" & RefCliente & "'" & " OR Ref='" & ExRef & "'" & " ORDER BY Nfac"
SubFormCli.Form.RecordSource = strSource
SubFormCli.Form.Requery
RefCliente es la variable que contiene el valor por el que quiero que se rija el Select pero el problema es que el campo de la tabla es "Ref/id" y la barra es lo que me molesta ya que cuando ejecuto me salta una ventanita que dice que introduzca un valor para "Ref" olvidándose del "/id". No puedo cambiar el nombre de este campo en la base de datos y quisiera saber si hay alguna fora de solucionar esto. Gracias.

1 Respuesta

Respuesta
1
Por la consulta SQL que muestras se deduce que tienes una tabla bdFacturas al menos con los siguientes 3 campos:
------------------------
Ref/id  Ref  Nfac ...
------------------------
En la versión 2007 de Access la consulta SQL que indicas no debería darte problema por el campo Ref/id. De todas formas, cuando tengas campos con caracteres extraños o incluso con espacios en blanco puedes utilizar los corchetes para evitarte problemas ( [Ref/id], [Ref Id], ... ).
Sin embargo, también puede ser que en realidad tu tabla sólo tenga la columna 'Ref/id' ( y que no tenga la columna 'Ref'). En ese caso, el mensaje de error no viene por el campo 'Ref/id', sino por el 'Ref' que viene después del OR (puede que haya sido un despiste) y entonces el Access interpreta que 'Ref', al no ser un campo de la tabla bdFacturas, debe ser un nombre de variable al que tengas que darle un valor (con el msgbox).
Revisa tu consulta para ver que si estas sugerencias te sirven de ayuda.
Si todavía sigue sin funcionarte el código VBA, no dudes en indicarlo, y vemos la estructura exacta de tu tabla.
Si estas sugerencias te han sido útiles te agradecería que puntuaras esta pregunta.
Gracias! La forma correcta de hacer referencia al campo era la de ([ref/id]). La de vueltas que le he dado para algo tan sencillo. Esto me pasa por novatillo autodidacta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas