Access - Formulario Independiente con SQL

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Formulario Independiente con SQL

Publicado por José Maria (139 intervenciones) el 26/06/2015 20:34:30
Muy Buenas estoy haciendo una prueba con una Base de Datos que tengo conectada en Azure,el problema que me encuentro es que cuando creo una consulta al tener muchos datos va muy lento por lo que me gustaría que el formulario fuese independiente para que al abrir no se quedase pillado y una vez dentro en un cuadro de texto poner un filtro que al darle me rellene el formulario evitando así que cargue todos los datos.

Tengo una tabla dbo_T_Gremio (lo del dbo me sale porque esta vinculada mediante ODBC con SQL Server de Azure)

en dicha tabla tengo Id_Gemio y Gremio.

Tengo un formulario independiente el cual contiene un cuadro de texto txtFiltro y 2 mas txtId y txtGremio.



He hecho lo siguiente:

Dim sql As String

sql = "select Id_Gremio,Gremio From dbo_T_Gremio Where Id_Gremio like '" & Form!txtFiltro.Value & "*'""

Form.RecordSource = sql


Lo que no sé es como hacer para que me rellene el formulario ya que el txt.Id y el txtGremio que tengo me salen en blanco, sin embarho el formulario si me cuenta los registros pero no me los muestra.

Muchas gracias
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
sin imagen de perfil

Formulario Independiente con SQL

Publicado por Enrique Heliodoro (1664 intervenciones) el 26/06/2015 23:37:06
Lo he visionado varias veces intentado interpretarlo y creo que falta algo ....

Lo primero es que 'la independencia' no la veo por parte alguna, el origen de datos del formulario (filtrado o no) se basa en la tabla vinculada

Utilizar la variable de texto ... es innecesaria (pero si gusta ...)
La referencia en el LIKE esta incompleta, un formulario no tiene datos en si mismo, los datos están 'en sus objetos' o en sus propiedades, la propiedad value (que suele obviarse por ser 'la de por defecto') no define nada útil para este caso, analicemos la condicion:
..... Where Id_Gremio like '" & Form!txtFiltro.Value & "*'""

Where ==> indicador del comienzo del condicional
Id_Gremio ==> objeto con posible valor a localizar
like ==> comparador utilizado, busca por aproximación (es impreciso)
Form ==> referencia a la colección de formularios si esta en plural, en singular se utiliza para indicar que el objeto afectado es un formulario (en funciones de subformulario)
txtFiltro ==> se le supone el nombre del formulario
Value ==> propiedad el formulario (no tiene sentido en este contexto)
* ==> no tiene asterisco al inicio y si al final lo que implica 'que comience por ....

Lo que falta (en mi opinión) es que en lugar de 'Value' se le indique uno de sus objetos (normalmente un cuadro de texto o combo, cuadro de lista....) esto es, uno con un valor que sirva de referente en la búsqueda

Supongo que la referencia a 'txtFiltro' se hace como objeto del formulario, pero ¿de que formulario?.
Una referencia absoluta se compone de
Colección ==> FORMS
Nombre del objeto en esa colección ==> la duda a resolver
Nombre del objeto de/en el formulario ==> ¿quizás txtFiltro ?

La causa de que no se visualicen datos ... depende de si están bien referenciados en el origen del cuadro de texto y (suponiendo que no aplique el filtro por ser inadecuado) debería presentar por defecto el primer registro (si no hay otras circunstancias que lo impidan, tal como ir a un nuevo registro)...
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
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Formulario Independiente con SQL

Publicado por José Maria (139 intervenciones) el 27/06/2015 12:12:14
Gracias por tu respuesta, Finalmente lo he resuelto de la siguiente manera, no sé si es la más optima pero al menos el formulario es independiente y no me peta al cargar.

Dim sql As String

sql = "select Id_Gremio,Gremio From dbo_T_Gremio Where Id_Gremio = " & Me.txtFiltro



Form.RecordSource = sql


txtId.ControlSource = "Id_Gremio"
txtGremio.ControlSource = "GRemio"



End Sub
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
sin imagen de perfil

Formulario Independiente con SQL

Publicado por Enrique Heliodoro (1664 intervenciones) el 27/06/2015 14:09:09
La independencia (bajo mi punto de vista) sigue siendo efímera, un cambio en la tabla y (cuando pase el tiempo que Access tiene marcado por defecto y diseño) los datos serán reemplazados o cuando se quieran asentar habrá que aceptar los errores de actualización.

Por lo que se ha expuesto, se le asigna con VBA lo que debería asignarse en diseño (el origen de datos de los cuadros de texto) es una forma de hacerlo ....

Insisto en que sobra la variable (la SQL se puede asignar de forma directa como origen de datos)

Si se desea 'independencia' se debería utilizar ADO y así si que se lograría una copia independiente de los datos (con sus ventajas e inconvenientes)
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
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Formulario Independiente con SQL

Publicado por José Maria (139 intervenciones) el 27/06/2015 15:02:22
Y como lo podria hacer con ADO?? Puedes ponerme un ejemplo?
He usado este codigo para que no me tarde tanto al cargar cuando abro el formulario.
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
sin imagen de perfil

Formulario Independiente con SQL

Publicado por Enrique Heliodoro (1664 intervenciones) el 27/06/2015 16:54:24
No trabajo con ADO (no lo he necesitado en mis aplicaciones) pero si (en cualquier buscador) efectúas una búsqueda con el contexto 'formularios desconectados', aparecerán un buen montón de posibilidades, analízalas y aplica aquella que se ajuste mejor a tu necesidad (y sobre todo y mas importante: la entiendas)
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