Sentencia SQL

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Sentencia SQL

Notapor Ramón Almonte » 23 Ago 2006 13:53

Saludos everytodos.

Mi inquietud es la siguiente.

Tengo un problema con filtrar algunos datos que están en una base de datos ejemplo:

De esta forma no funcina

Sub Macro1()


Dim Celda As Long

Celda = Sheets("Sheet1").Cells(1, 8)
Set qtQtrResults = _
Sheets("Sheet1").QueryTables(1)
With qtQtrResults
.CommandType = xlCmdSql
.CommandText = _
"Select * From Prueba where ID='Celda' order by TIPO"
.Refresh
End With

End Sub

De esta forma si funciona

Sub Macro1()

Set qtQtrResults = _
Sheets("Sheet1").QueryTables(1)
With qtQtrResults
.CommandType = xlCmdSql
.CommandText = _
"Select * From Prueba where ID='1972' order by TIPO"
.Refresh
End With

End Sub

Nota: He notado que cuando pongo el valor directo de la variabble Celda,osea, el valor 1972 me funciona perfectamente, pero, cuando utilizo la varoable Celda no me filtra o no funiona el Query.

No se si me he explicado bien, pero he intentado muchas maneras y no me funciona,aunque voy a tratar de seguir investiganfo sólo quiero que ustedes me den una manita.

Gracias y Saludos.

Ramón(Monchy).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor Ramón Almonte » 23 Ago 2006 14:10

Disculpen se me olvida tengo que aclarar lo siguiente:

"Celda" es un valor que le doy a una celda,osea, no es parte de la base dato y tambieé lo siguiente y es para corregir la siguiente lí­nea
Celda = Sheets("Sheet1").Cells(1, 8)

Gracias y Saludos.

Ramón(Monchy).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor p@li » 23 Ago 2006 14:11

Nunca probé esto, pero me parece que así­ podrí­a funcionar, ahora voy a ver de que se trata esto, nunca la habí­a visto.
Saludos



Sub Macro1()

Dim Celda As Long

Celda = Sheets("Sheet1").Cells(1,
Set qtQtrResults = _
Sheets("Sheet1").QueryTables(1)

With qtQtrResults
.CommandType = xlCmdSql
.CommandText = _
"Select * From Prueba where ID='" & Celda & "' order by TIPO"
.Refresh
End With

End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
p@li
Miembro Frecuente
Miembro Frecuente
 
Registrado: 04 Oct 2005 16:55
Ubicación: Argentina

Re: Sentencia SQL

Notapor Ramón Almonte » 23 Ago 2006 14:14

Perdonen pero por que sustituye "8)" por una carita
"Celda = Sheets("Sheet1").Cells(1, 8)"

Excusenme.

Ramón(Monchy).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor p@li » 23 Ago 2006 14:16

creo que si pones un espacio en el medio no sale la carita
Celda = Sheets("Sheet1").Cells(1, 8 )
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
p@li
Miembro Frecuente
Miembro Frecuente
 
Registrado: 04 Oct 2005 16:55
Ubicación: Argentina

Re: Sentencia SQL

Notapor Ramón Almonte » 23 Ago 2006 14:28

Okay p@li, te aviso más tarde

Gracias hermano.

Ramón(Monchy).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor federico ramirez marron » 23 Ago 2006 16:21

de casualidad no eres el senador electo ramon almonte borja?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
federico ramirez marron
Miembro Frecuente
Miembro Frecuente
 
Registrado: 21 Sep 2004 21:24
Ubicación: ACAPULCO

Re: Sentencia SQL

Notapor Ramón Almonte » 24 Ago 2006 13:34

No, Soy de Rep. Dominicana, mi nombre es Ramon Almonte Torres

Saludos.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor Ramón Almonte » 24 Ago 2006 13:50

hola p@li, no he dado todavia con el problema, he modificado la senetencia con lo siguiente, pero no me sale, en este caso si modifico la linea :
qt.Sql = "SELECT * FROM prueba WHERE (ID=?)"
por
qt.Sql = "SELECT * FROM prueba " ----> asi funciona

quizas me puede ayudar,le puede poner una base de datos cualquiera lo unico que quiero es saber como corregir el codigo


sub macro1 ()

Set qt = Sheets("sheet1").QueryTables(1)
qt.Sql = "SELECT * FROM prueba WHERE (ID=?)"
Set param1 = qt.Parameters.Add("ID Parameter", _
xlParamTypeVarChar)
param1.SetParam xlRange, Range("sheet2!h1")
qt.Refresh

end sub

Gracias y Saludos

Ramon(Monchy).
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana

Re: Sentencia SQL

Notapor KL » 24 Ago 2006 15:06

Hola Ramon,

No sera que usas la sintaxis incorrecta con una cadena de texto? Tal vez algo asi:

Código: Seleccionar todo
Sub macro1()
    Set qt = Sheets("sheet1").QueryTables(1)
    qt.Sql = "SELECT * FROM prueba WHERE ID='?'"
    Set param1 = qt.Parameters.Add("ID Parameter", _
    xlParamTypeVarChar)
    param1.SetParam xlRange, Range("sheet2!h1")
    qt.Refresh
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Sentencia SQL

Notapor Ramón Almonte » 24 Ago 2006 17:14

Hola KL, voy a intertarlo

Gracias y un abraso.

Ramon(Monchy)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Ramón Almonte
Miembro Frecuente
Miembro Frecuente
 
Registrado: 05 Ago 2005 14:47
Ubicación: Santiago,Rep. Dominicana


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: dkjohan, segunet y 6 invitados