Ayuda para modificar una consulta ya creada en Microsoft Access

Y es el siguiente:
Tengo la siguiente consulta:
SELECT [FACTURACIÓ VIATGES].CodiProjecte, [FACTURACIÓ VIATGES].NúmImprés, [FACTURACIÓ VIATGES].DataImprés, [FACTURACIÓ VIATGES].NomPersonal, [FACTURACIÓ VIATGES].NúmFra, [FACTURACIÓ VIATGES].TotalFra, [FACTURACIÓ VIATGES].TotalIva, [FACTURACIÓ VIATGES].DataVençiment, [FACTURACIÓ VIATGES].ReposicióCtt
FROM [FACTURACIÓ VIATGES]
WHERE ((([FACTURACIÓ VIATGES].CodiProjecte)="C1"));
Esta consulta esta vinculada a un informe, pero a mi no me interesa siempre que me de el proyecto "C1" sino que yo le diga en tiempo de ejecución cual es desde un formulario. He visto algo de currentdb. Queries pero me da error y no me encuentra la propiedad queries. Sabes como puedo solucionar esto, sin tener que hacer parámetros, para que no me salga la ventana de insertar dato sino que directamente la coja de lo que yo tengo en el formulario.

1 respuesta

Respuesta
1
Bon día!
Tot i que jo soc de Barcelona et contestaré en castellà per si algú vol llegir la meva resposta...
Antes que nada indicarte que no es práctico utilizar acentos y caracteres especiales en los nombres de campos, tablas o cualquier objeto... como has hecho en el caso de : Facturació, Imprés o DataVençiment... La razón es que es posible que otra persona escriba erróneamente los acentos y por consiguiente tenga problemas al momento de programar... si te das cuenta.. Imprés lleva el acento al revés... i DataVençiment es con c i no con ç...
Otra cosilla... tampoco es bueno dejar espacios...
Claro que es únicamente un consejo y no es de necesario cumplimentación...
Pero vamos al grano... la cuestión es guardar la consulta sin la sentencia Where.. con lo que quedaría por ejemplo :
qryConsulta="SELECT * FROM [Facturació Viatges]"
Ahora desde el formulario al que llamamos al informe, tenemos un cuadro de texto llamado por ejemplo txtCodiProjecte... y un botón al que llamamos a un informe que tiene asociada la consulta qryConsulta...
En el botón escribiríamos el siguiente código...
if nz(txtCodiProjecte,0)=0 then
msgbox "Indiqui el codi de projecte a visualitzar..",vbInformation
Else
docmd.OpenReport "NomInforme",acViewPreview,,"CodiProjecte=" & me.txtCodiProjecte
end if
Substituye acViewPreview por acViewNormal si deseas imprimir el informe y no visualizarlo...
Salutacions
Jordi Pérez i Madern
Mataró (Barcelona)
Hola, gracias por la contestación y por el consejo de los acentos y espacios en blanco lo he tenido en cuenta.He intentado hacer lo que en la anterior respuesta y no me ha funcionado pues me sigue apareciendo la ventana pidiéndome el parámetro.
Te explico lo que quiero hacer desde un principio a ver si así sabes como ayudarme.
Tengo un formulario con una caja de texto(texto11) independiente. En esta caja introduciré el código de proyecto deseado para hacer mi informe.
Por otro lado tengo un informe vinculado a una consulta sin parámetros ni condiciones que me muestra todos los registros que tengo.
Quiero que los datos que aparezcan en el informe estén filtrados por el código que he puesto en el formulario.
Tengo un botón con el siguiente código( el que tu nos distes):
If Nz(Texto11, 0) = 0 Then
MsgBox "indiqueu codi"
Else
DoCmd.OpenReport "informe_P",acViewPreview, , "codiprojecte=" & Me.Texto11
End If
Pero este cuando ejecuta el informe nos muestra la ventana de introducir parámetro con el titulo de ventana igual al código introducido por mi en el formulario.(Ej en vez de pedir codiprojecte pone "S234") si es posible hacerlo, ¿me podrías dar una solución? También seria posible poder filtrar por más de un parámetro(ej, ¿intervalo de fechas)?
Gracias!
Te pide el parámetro porque estamos igualando un parámetro de texto como si de un número se tratase...
Encierra texto11 entre comillas tal y como sigue..
"CodiProjecte=" & "'" & me.Texto11 & "'"
Y sí... se puede realizar por otros parámetros... por ejemplo fechas... pero debemos tener en cuenta que las fechas deben pasarse en el formato #mm/dd/aaaa# para ello utilizamos la función siguiente...
dim strData as string
strData="#" & format(Fecha,"mm/dd/yyyy") & "#"
para abrir el informe con este criterio escribiríamos...
"CodiProjecte=" & "'" & me.Texto11 & "' AND Fecha = " & strdata
si queremos entre dos fechas haríamos...
"CodiProjecte=" & "'" & me.Texto11 & "' AND Fecha Between " & strdata & " AND " & strAltreData
Donde strAltreData es una variable igual que la anterior..
Espero que ahora si te sirva..
Disculpa mi error al no indicarte las comillas..
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas