Sql

Hola sofocles soy Raúl de Oberá Misiones Argentina.
Mirando respuestas anteriores que distes me encontré con una a Estimado gatosf:
La transforme a mis necesidades, pero, la sentencia SQL se ejecuta bien hasta que pido abrir un informe:
DoCmd.OpenReport "Alumnos", acViewPreview, MiSelect
Y es cuando me aparece Introduzca el valor del parámetro para los tres valores ingresados anteriormente en los combo.
Quiero agradecerte a voz y a quienes conforman todo el equipo, por las atenciones recibidas y la predisposición a contestar, no entiendo porqué aparece.
Realmente me lio con el código mucho.
La nueva presentación del portal es muy buena.
Set MiBD = CurrentDb()
MiSelect = "SELECT Alumnos.ApellidoyNombre, alumnos.Sexo, alumnos.FechaNacimiento, alumnos.Documento "
MiSelect = MiSelect & "FROM Alumnos INNER JOIN Curso ON [alumnos].[IdInscripto]=[Curso].[IdInscripto]"
MiSelect = MiSelect & "WHERE [Curso].Año = " & Forms!seleccionar![cboAno]
MiSelect = MiSelect & " AND [Curso].Curso = " & Forms!seleccionar![cbocurso1]
MiSelect = MiSelect & " AND [Curso].Division = '" & Forms!seleccionar![cboDivision1] & "'"
MiSelect = MiSelect & "ORDER BY alumnos.ApellidoyNombre;"
Un saludo desde la tierra colorada.

1 respuesta

Respuesta
1
Primero, y antes de nada, aclararte que yo no mantengo ninguna relación con la gente de todoexpertos salvo la de que me permiten ayudaros desde aquí. Igualmente indicarte que actúo como profesional independiente, que se ha registrado en este sitio para darse a conocer a los usuarios del mundo de Access.
Y por último darte las gracias por tus brindis que sirven de apoyo en la lucha por conseguir ser alguien reconocido en la vida profesional.
En cuanto a tu problema vamos a intentar resolverlo.
Posiblemente, estas intentando abrir el informe desde el formulario de selección, y este formulario es emergente y modal. Esto hace que pierda el enfoque al abrir el formulario. Por ello, es recomendable que los valores los guardes en el formulario principal que llama al de selección.
Crea campos independientes en el formulario principal, con propiedad de visible = No.
Al dar al botón de selección, pasa los valores predeterminados que desees que aparezcan:
[CboAño]=Year(Date())
[CboCurso1]=[Curso]
[cboDivision1]=[Division]
Es decir, desde el formulario de alumnos, supongo, que tienes un botón que abre el formulario para seleccionar la impresión.
Bien, cuando estés en el formulario de impresión, a los campos que utilizas para seleccionar le puedes asignar los valores que vienen del formulario principal, y después de actualizar en cada campo del formulario de selección, debes enviar el valor a los campos independientes del formulario principal de la siguiente forma:
Division_AfterUpdate()
Forms![Alumnos].[CboDivision]=[Division]
...
Después, al dar al botón de impresión, puedes llamar a una función que imprima el informe que desees y que puede ser genérica para utilizarla desde cualquier formulario, para imprimir cualquier informe (Observa otra que te mande para localizar la existencia de un registro->El trabajo es mejor hacerlo una vez bien que ciento mal.)
Ahora en el informe, debes incluir el código que me indicas, en el evento al abrir.
Nota: Prueba a hacer más sencillo el código, te ayudará.
Set F=Forms![Alumnos]
Set DB = CurrentDb()
Dim sql as string
sql = "SELECT Alumnos.*"
sql = sql & " FROM Alumnos INNER JOIN Curso ON [alumnos].[IdInscripto]=[Curso].[IdInscripto]"
sql = sql & " WHERE [Curso].Año = " & F![cboAno]
sql = sql & " AND [Curso].Curso = " & F![cbocurso1]
sql = sql & " AND [Curso].Division = '" & F![cboDivision1] & "'"
Al incluir el código en el informe, no es necesario ordenar, ya que puedes elegir en la agrupación ({=), la ordenación que deseas, no obstante si insistes en tu criterio, la consulta seguiría...
sql = sql & "ORDER BY alumnos.ApellidoyNombre;"
En el informe, a continuación indicarias el origen de datos de la siguiente forma:
Me.Recordsource = sql
Espero haberte ayudado.
Saludos.
Sofocles.
**********************
Recuerda: Si puedes ayudarme a encontrar trabajo como freelance, enviame un mensaje a:
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas