Urgente!!!!

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:
     

Urgente!!!!

Notapor dmplacebo » 23 Jun 2005 08:19

Querí­a preguntar lo siguiente,

Yo tengo un código SQL que está incluido en una macro que se ejecuta al pulsar el botón "Aceptar" de un formulario, dicho formulario incluye una caja de texto donde se recoge una información y se le desea pasar a la macro que se ejecuta al pulsar dicho botón "Aceptar" y ahí­ me viene el problema.

El código es el siguiente:

"SELECT T_BLOC_ARRET.I_ZON_NUMERO, T_BLOC_ARRET.C_BA__DATE_DE_DEBUT, T_BLOC_ARRET.C_BAP_LIBELLE_ARRET, T_POSTE_ARCHIVE.I_HPO_DATE, T_POSTE_ARCHIVE.C_HPO_EQUIPE" & Chr(13) & "" & Chr(10) & "FROM SMP.T_BLOC_ARRET T_BLOC_ARRET, SMP." _
, _
"T_POSTE_ARCHIVE T_POSTE_ARCHIVE" & Chr(13) & "" & Chr(10) & "WHERE T_BLOC_ARRET.I_ZON_NUMERO = T_POSTE_ARCHIVE.I_ZON_NUMERO AND T_BLOC_ARRET.I_HPO_NUMERO = T_POSTE_ARCHIVE.I_HPO_NUMERO AND [color=red]

T_BLOC_ARRET.C_BA__DATE_DE_DEBUT > TextBox1.value AND

((T_BLOC_ARRET.I_ZON_NUMERO=1002))" _

El problema lo tengo en la zona siguiente:

T_BLOC_ARRET.C_BA__DATE_DE_DEBUT > TextBox1.value

¿Cómo hago para que la macro reciba el valor recogido de la caja de texto e incluirlo en mi consulta SQL?

Muchas gracias, David.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
dmplacebo
Miembro Nuevo
Miembro Nuevo
 
Registrado: 23 Jun 2005 08:12
Ubicación: Valladolid (Espaí±a)

Notapor Sakuragi » 23 Jun 2005 10:23

Hola David, prueba escribiendo lo siguiente :

"SELECT T_BLOC_ARRET.I_ZON_NUMERO, T_BLOC_ARRET.C_BA__DATE_DE_DEBUT, T_BLOC_ARRET.C_BAP_LIBELLE_ARRET, T_POSTE_ARCHIVE.I_HPO_DATE, T_POSTE_ARCHIVE.C_HPO_EQUIPE" & Chr(13) & "" & Chr(10) & "FROM SMP.T_BLOC_ARRET T_BLOC_ARRET, SMP." _
, _
"T_POSTE_ARCHIVE T_POSTE_ARCHIVE" & Chr(13) & "" & Chr(10) & "WHERE T_BLOC_ARRET.I_ZON_NUMERO = T_POSTE_ARCHIVE.I_ZON_NUMERO AND T_BLOC_ARRET.I_HPO_NUMERO = T_POSTE_ARCHIVE.I_HPO_NUMERO AND
T_BLOC_ARRET.C_BA__DATE_DE_DEBUT > " & TextBox1.value & " AND
((T_BLOC_ARRET.I_ZON_NUMERO=1002))" _


Prueba esto, y me avisas como te fue.


Saludos.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Sakuragi
Miembro Frecuente
Miembro Frecuente
 
Registrado: 24 May 2005 19:15
Ubicación: Santiago, Chile

Re: Urgente!!!!

Notapor dmplacebo » 24 Jun 2005 06:46

Hola!!!

Lo primero es darte las gracias por tu pronta respuesta que aunque no me funciona de momento como yo desearí­a pues sí­ que me ha ayudado a ver que se me habí­a olvidado poner una cosaimportante, o eso creo, como te comento más abajo.

El código completo que tengo es el que muestro a continuación y que te comento por si me puedes ayudar o algun miembro más del foro que tu conoces se lo pasa y me ayuda ya que sigue sin funcionar y el error que da se me escapa.

Lo que hace Private Sub CommandButton1_Click() es que cuando se pulse al botón que va asociado a esta función se ejecute la macro de busqueda. Esta función deberí­a tener acceso a la caja de texto que contiene el formulario pero se ve que algo mal hay o que como es una consulta SQL da problemas pero no creo yo que sea eso.

Lo que hace Private Sub CommandButton2_Click() es cerrar el formulario UserFom1.

Lo que hace Private Sub TextBox1_Change() es el código asociado a la caja de texto de la que se recoge la información.

Private Sub CommandButton1_Click()

'
' Macro_Prueba Macro
' Macro grabada el 22/06/2005
'

With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=*****;UID=****;PWD=*****;SERVER=*****;", Destination:=Range( _
"A1"))
.CommandText = Array( _
"SELECT T_BLOC_ARRET.I_ZON_NUMERO, T_BLOC_ARRET.C_BA__DATE_DE_DEBUT, T_BLOC_ARRET.C_BAP_LIBELLE_ARRET, T_POSTE_ARCHIVE.I_HPO_DATE, T_POSTE_ARCHIVE.C_HPO_EQUIPE" & Chr(13) & "" & Chr(10) & "FROM SMP.T_BLOC_ARRET T_BLOC_ARRET, SMP." _
, _
"T_POSTE_ARCHIVE T_POSTE_ARCHIVE" & Chr(13) & "" & Chr(10) & "WHERE T_BLOC_ARRET.I_ZON_NUMERO = T_POSTE_ARCHIVE.I_ZON_NUMERO AND T_BLOC_ARRET.I_HPO_NUMERO = T_POSTE_ARCHIVE.I_HPO_NUMERO AND


T_BLOC_ARRET.C_BA__DATE_DE_DEBUT > " & UserForm1.TextBox1.Value & "

/*********Como verás le he añadido a tu sugerencia el objeto origen que es el formulario UserForm1 y así­ tení­a mejor pinta pero me da el error que te comento más abajo**********/


AND ((T_BLOC_ARRET.I_ZON_NUMERO=1002))" _
)
.Name = "Consulta desde *******"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True

.Refresh BackgroundQuery:=True /****** =>Lí
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
dmplacebo
Miembro Nuevo
Miembro Nuevo
 
Registrado: 23 Jun 2005 08:12
Ubicación: Valladolid (Espaí±a)


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados