Macro Excel con base de datos Sql
Tengo una macro excel con base de datos SQL, funciona bien, PERO, el problema es que por cada consulta que hace la macro me vuelve a pedir que acepte la base de datos de donde necesito sacar la información, y eso aunque haya sólo una base de datos SQL corriendo igual me pide por cada consulta que pinche la base de datos para extraer la información.
Trabajamos con excel 2003 y SQL Anywher 10
Me aparace el cuadro SELECCIONAR ORIGEN DE DATOS,
SELECCIONO LA BASE DE DATOS
ACEPTO
HACE LA EXTRACCIÓN Y AL SIGUIENTE PASO ME VUELVE A MOSTRAR
SELECCIONAR LA BASE DE DATOS y así sucesivamente hasta que termina de correr la macro.
¿Qué puedo hacer para que consulte la base de datos sóla una vez?
Mi correo [email protected]
Te pido ayuda Por favor es para mi trabajo.
Te agrego la macro, la base de datos que consulta se llama Pmariano o la que corresponada a la escuela, y como bien te pude explicar debo presionar el origen a cada consulta que realizo.
Sub reports_weekly()
Application.Goto Reference:="Macro_Color"
Macro_Color = Selection.Value
' Macro_Color = 10
' recuperar parametros de fecha
Application.Goto Reference:="week"
nro_week = Right("00" & Trim(Str(Selection.Value)), 2)
'Application.Goto Reference:="month"
'nro_month = Selection.Value
Application.Goto Reference:="year_wk"
nro_year = Right("00" & Trim(Str(Selection.Value)), 2)
' activar pagina de sql
Sheets("Sqls").Select
' inq by source
Range("inq_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' app by source
Range("app_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' int by source
Range("int_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' enr by source
Range("enr_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total inq
Range("tot_inq").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total app
Range("tot_app").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total int
Range("tot_int").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("tot_enr").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' Walk-In Inq, Int, Enr
Range("winq").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("wint").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("wenr").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
Application.Goto Reference:="inq_code"
Selection.Copy
Range("An30:An50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_inq"
Selection.Copy
Range("AO30:AO50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="app_code"
Selection.Copy
Range("As30:As50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_app"
Selection.Copy
Range("At30:At50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="int_code"
Selection.Copy
Range("Ax30:Ax50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="enr_code"
Selection.Copy
Range("bc30:bc50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_enr"
Selection.Copy
Range("bd30:bd50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
' weekly_lesson_lecciones=
Range("weekly_lesson_lecciones").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_lesson_platas=
Range("weekly_lesson_platas").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_enrollment=
Range("wk_enrollment").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_lecc_contratadas=
...
Trabajamos con excel 2003 y SQL Anywher 10
Me aparace el cuadro SELECCIONAR ORIGEN DE DATOS,
SELECCIONO LA BASE DE DATOS
ACEPTO
HACE LA EXTRACCIÓN Y AL SIGUIENTE PASO ME VUELVE A MOSTRAR
SELECCIONAR LA BASE DE DATOS y así sucesivamente hasta que termina de correr la macro.
¿Qué puedo hacer para que consulte la base de datos sóla una vez?
Mi correo [email protected]
Te pido ayuda Por favor es para mi trabajo.
Te agrego la macro, la base de datos que consulta se llama Pmariano o la que corresponada a la escuela, y como bien te pude explicar debo presionar el origen a cada consulta que realizo.
Sub reports_weekly()
Application.Goto Reference:="Macro_Color"
Macro_Color = Selection.Value
' Macro_Color = 10
' recuperar parametros de fecha
Application.Goto Reference:="week"
nro_week = Right("00" & Trim(Str(Selection.Value)), 2)
'Application.Goto Reference:="month"
'nro_month = Selection.Value
Application.Goto Reference:="year_wk"
nro_year = Right("00" & Trim(Str(Selection.Value)), 2)
' activar pagina de sql
Sheets("Sqls").Select
' inq by source
Range("inq_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' app by source
Range("app_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' int by source
Range("int_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' enr by source
Range("enr_source").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total inq
Range("tot_inq").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total app
Range("tot_app").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total int
Range("tot_int").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("tot_enr").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' Walk-In Inq, Int, Enr
Range("winq").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("wint").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' total enr
Range("wenr").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
Application.Goto Reference:="inq_code"
Selection.Copy
Range("An30:An50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_inq"
Selection.Copy
Range("AO30:AO50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="app_code"
Selection.Copy
Range("As30:As50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_app"
Selection.Copy
Range("At30:At50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="int_code"
Selection.Copy
Range("Ax30:Ax50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="enr_code"
Selection.Copy
Range("bc30:bc50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Goto Reference:="buscar_enr"
Selection.Copy
Range("bd30:bd50").Select
ActiveSheet.Paste
Application.CutCopyMode = False
' weekly_lesson_lecciones=
Range("weekly_lesson_lecciones").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_lesson_platas=
Range("weekly_lesson_platas").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_enrollment=
Range("wk_enrollment").Select
Selection.QueryTable.Connection = "ODBC;DSN=LCMS2;UID=DBA;PWD=SQL;"
Selection.QueryTable.Refresh BackgroundQuery:=False
' weekly_lecc_contratadas=
...
Respuesta de santiagomf
1
1 respuesta más de otro experto
Respuesta de themanky
1