Ayuda con funciones de SQL en Excel

16/06/2006 - 00:19 por Juan Martín | Informe spam
Quisiera saber si me pueden ayudar.

El problema es que tengo un libro (que lo uso como base de datos) con dos
hojas, una "Vigentes" que es donde está la BD y la otra "Mis_Datos".

En "Mis_Datos" tengo un DataGrid que lo alimento con los datos de la hoja
"Vigentes" cada vez que entro en ella, así siempre está actualizada la
grilla, pero cuando uso filtros en la hoja "Vigentes" no me muestra en la
grilla sólo los registros filtrados.

He querido usar el Where en el Select que uso en la conexión, pasándole los
parámetros, pero ahí está mi problema, no sé como hacer que el Where tome
como un campo una columna, si alguien me lo puede explicar, se lo
agradeceré.

Gracias.

Juan Martín

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
18/06/2006 - 05:42 | Informe spam
hola, Juan Martín !

... tengo un peque#o problema, la grilla yo la "dibuje" para que salga en toda la hoja visible
... cuando se ejecuta, solo se ve un cuadradito peque#o
... mi pantalla que tiene una resolucion de 1280 x 1024 se ve solo de 3 cm x 2.5cm
... he probado igualando las propiedades de grillas que use en otro caso y no logro que se vea del tama#o real que le puse [...]



podrias exponer el codigo 'del caso' donde si funciona... y las adapaciones que haces donde no funciona ?
o revisa la siguiente conversacion: -> http://tinyurl.com/7zrta
y tambien las siguientes: -> http://tinyurl.com/835jo

saludos,
hector.
Respuesta Responder a este mensaje
#7 Juan Martín
18/06/2006 - 07:21 | Informe spam
Hola Héctor:

Antes que nada gracias por quererme ayudar.

Lo que pasa es que si me funciona el DataGrid en VB y no en el Excel.

Uso los mismos nombres en todo, pero no me sale, te paso la parte del código
para que veas donde puede estar mi error.

recSet.Open miSQL, datConnection, adOpenStatic

'copiar datos
If recSet.RecordCount > 0 Then

dtgListado.Visible = True
Set ActiveSheet.dtgListado.DataSource = recSet
ActiveSheet.dtgListado.Refresh
Range("F16").Value = recSet.RecordCount

No sé porqué en VB si sale bien, cada columna con su respectivo tamaño y se
visualiza en todo el ancho que le dí al control, pero en el excel sólo se ve
como dije en el mensaje anterior un pequeño cuadrado, la información está,
si me muevo en ese cuadradito que sale, están todas las columnas y
registros, pero no los puedo apreciar como quiero.

Ojalá me entiendas y me puedas ayudar.

Saludos,

Juan Martín.
Respuesta Responder a este mensaje
#8 Héctor Miguel
18/06/2006 - 08:43 | Informe spam
hola, Juan Martín !

Lo que pasa es que si me funciona el DataGrid en VB y no en el Excel...



1) [hasa donde se]... algunos controles ActiveX y caracteristicas 'nativas' de VB [stand-alone]
controles de la libreria comctl/32.dll [el listview y el datagrid entre ellos] como...
- Visual Basic style control arrays
- Multi-threaded ActiveX controls
- Drag-and-drop events on controls
- Delete events on controls

2) NO tienen 'garantizado' un funcionamiento... 'completo/apropiado/sin falla/...'
-> cuando el control se incrusta en una hoja de calculo :-(

3) lo anterior se debe a que la interfase grafica de las aplicaciones [word, excel y powerpoint -access-]

a) no tiene soporte para funcionalidades como: IDataObject, IViewObject, ISimpleFrameSite
b) SOLO algunos de 'esos' controles -> requieren del 'apoyo' de la interfase vba a traves de formularios :(

4) la situacion descrita, se viene 'presentando' desde la version 97 de las aplicaciones office :-((
revisa: OFF97: Limitations of ActiveX Control Support in Office Document
http://support.microsoft.com/defaul...-us;168392

5) si requieres hacer [NO 'lo mismo'... sino] algo 'parecido' a la funcionalidad de un control datagrid en VBA...
necesitarias emplear otro tipo de objetos como controles de lista [y quizas formularios y eventos por codigo] :-((

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el resto del mensaje __
Uso los mismos nombres en todo, pero no me sale
te paso la parte del codigo para que veas donde puede estar mi error.
recSet.Open miSQL, datConnection, adOpenStatic
'copiar datos
If recSet.RecordCount > 0 Then
dtgListado.Visible = True
Set ActiveSheet.dtgListado.DataSource = recSet
ActiveSheet.dtgListado.Refresh
Range("F16").Value = recSet.RecordCount
No se porque en VB si sale bien, cada columna con su respectivo tama#o y se visualiza en todo el ancho que le di al control
pero en el excel solo se ve como dije en el mensaje anterior un peque#o cuadrado, la informacion esta
si me muevo en ese cuadradito que sale, estan todas las columnas y registros, pero no los puedo apreciar como quiero...
Respuesta Responder a este mensaje
#9 Juan Martín
18/06/2006 - 20:23 | Informe spam
Héctor:

Gracias nuevamente.

Que mala noticia me das que no se pueda ver una grilla en excel.

lastimosamente necesita trabajar con una grilla, ya que el programita que
estoy tratando de hacer, es para que los usuarios seleccionen registros como
se hace con el Datagrid y necesito que se vea lo más similar posible.

Trabajarlo con listas sería mucho más engorroso, ya que una de las cosas que
tiene el programa es que tiene 5 filtros que el usuario puede ir
seleccionando y se iba refrescando la grilla.

Como dije antes, todo ya funcionaba, sólo me faltaba que se vea bien la
grilla.

Ojalá me puedas orientar y a ver si me recomiendas algún sitio donde
encontrar más información para aprender más, ya que lo poco que sé lo
aprendí leyendo tutoriales y libros que me bajé de internet.

Saludos,

Juan Martín.
Respuesta Responder a este mensaje
#10 Héctor Miguel
19/06/2006 - 03:26 | Informe spam
hola, Juan Martín !

... mala noticia... que no se pueda ver una grilla en excel.
... para que los usuarios seleccionen registros como se hace con el Datagrid y necesito que se vea lo mas similar posible.
... con listas seria mucho mas engorroso, ya que una de las cosas que tiene el programa es
... 5 filtros que el usuario puede ir seleccionando y se iba refrescando la grilla.
... todo ya funcionaba, solo me faltaba que se vea bien la grilla.



1) a reserva de que comentes [+/- exactamente]...
-> 'que' necesita el usuario 'hacer' con/en/desde/... los datos en 'la grilla' [de un control datagrid]...
-> [pregunta]: no te sirve la 'grilla' propia del excel [es decir... las celdas de una hoja de calculo] -?-

2) [creo que] te saldria mas 'barato' [en lineas de codigo y 'peso' del archivo de excel]...
-> usar autofiltros y/o filtros avanzados por codigo [ya sea en la misma hoja o en otra]...
-> que usar sentencias SQL para llenar un control 'ajeno' [y ademas] incrustado en una hoja de excel -?-
[toma en cuenta que podrias seguir usando 'combos' para los criterios de filtrado] ;)

comentas [si hubiera] algun detalle 'en el tintero' ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida