Como validar login,password a Sql desde Excel

16/05/2005 - 20:52 por Alr | Informe spam
Saludos al grupo.
Estoy conectandome a un servidor Sql de donde se extraen datos que generan
unos reportes (estos ya estan funcionando) y cualquier usuario puede
ejecutar los reportes, sin embargo ahora al iniciarse el reporte pido un
nombre de usuario y un password para validarlo vs el servidor Sql, el
problema es que cuando el nombre de usuario o el password no coincide no se
como enviar un mensaje de aviso, ya que simplemente el codigo despues de
ejecutar la linea para conectarse al servidor que seria algo asi como:

Public cn As New ADODB.Connection
Public Scn As String
Public pUsuario As String
Public pPasswo As String
Public pSrv As String
... se pide el nombre de usuario y el password
Scn = "Provider=SQLOLEDB;Persist Security Info=True;Data Source=" &
pSrv & ";Initial Catalog=NombreDB;User ID=" & pUsuari & ";Password=" &
pPasswo
cn.Open Scn

se salta hasta el final del procedimiento (o Sub()), sin embargo la variable
"cn" si se llena con informacion aunque en la propiedad de error el valor
Count marca 0, de forma que no puedo hacer esto con el atrapador de errores
(con el -> On ERROR goto ERRORX). La propiedad State tiene el valor 0 cuando
no logro conectarse al la Db por cuestion del nombre de usuario o password
incorrectos, pero cuando si logra conectarse cambia a 1, no se que significa
la propiedad State, me podria ir por este valor para determinar si la
coneccion se logro o no?

Tambien quiero saber si puedo obtener una lista de los servidores Sql a los
que la maquina tiene acceso, ya que el nombre del servidor a donde me
conecto lo tengo guardado en una celda. Esto no es necesario, ya que
solamente hay un servidor Sql, mas el de mi pc, es solo que me gustaria
saber como hacerlo mediante Vba. Me imagino algo asi como cuando se crea una
nueva fuente de datos con ODBC, que si selecciono Sql Server me muestra una
lista de los servidores a los que tengo acceso.


Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
17/05/2005 - 08:51 | Informe spam
hola, Alr !

... conectandome a un servidor Sql... pido un nombre de usuario y un password
... problema... cuando el nombre de usuario o el password no coincide
... como enviar un mensaje de aviso, ya que... el codigo despues de... conectarse
... se salta hasta el final del procedimiento
... la variable "cn"... la propiedad State tiene el valor 0... cuando si logra conectarse cambia a 1
... que significa la propiedad State... para determinar si la coneccion se logro o no?
... saber si puedo obtener una lista de los servidores Sql a los que la maquina tiene acceso
... Esto no es necesario... es solo que me gustaria saber como hacerlo mediante Vba [...]



-> la propiedad 'State' -precisamente- 'devuelve' el estado en que se 'encuentra' un proceso de conexion...
puedes usar sus valores o sus 'constantes', y sus 'significados' son...
0 - adStateClosed = la conexion esta 'cerrada'
1 - adStateOpen = la conexion esta 'abierta'
2 - adStateConnecting = la conexion se esta 'realizando'
4 - adStateExecuting = la conexion esta 'ejecutando un comando'
8 - adStateFetching = los registros/filas del objeto se estan 'trayendo'
-> podrias usar una 'estructura' [p.e.] Select Case cn.State... Case 0... End Select
o un 'simple' If cn.State = 0 Then '<< volver a solicitar usuario y/o password o... 'terminas' >>' -?-
[probablemente] con 'esta idea general', podras encontrar la mejor manera de 'manejar' tales situaciones ;)
-> con relacion a obtener una lista de servidores sql 'disponibles'... [aunque no he encontrado nada 'en concreto] :-(
podrias iniciar en la pagina de Carl Prothman [antes 'Able-Consulting']...
http://www.carlprothman.net/

saludos,
hector.
Respuesta Responder a este mensaje
#2 Alr
17/05/2005 - 21:28 | Informe spam
Muchisimas gracias nuevamente.

La forma para tener una lista de los servidores Sql disponibles esta en
http://neo-mx.com/blog/archive/2004/10/07/166.aspx
Solo hay que agregar la referencia "Microsoft SQLDMO Object Library".



"Héctor Miguel" wrote in message
news:
hola, Alr !

... conectandome a un servidor Sql... pido un nombre de usuario y un
password
... problema... cuando el nombre de usuario o el password no coincide
... como enviar un mensaje de aviso, ya que... el codigo despues de...
conectarse
... se salta hasta el final del procedimiento
... la variable "cn"... la propiedad State tiene el valor 0... cuando si
logra conectarse cambia a 1
... que significa la propiedad State... para determinar si la coneccion
se logro o no?
... saber si puedo obtener una lista de los servidores Sql a los que la
maquina tiene acceso
... Esto no es necesario... es solo que me gustaria saber como hacerlo
mediante Vba [...]



-> la propiedad 'State' -precisamente- 'devuelve' el estado en que se
'encuentra' un proceso de conexion...
puedes usar sus valores o sus 'constantes', y sus 'significados' son...
0 - adStateClosed = la conexion esta 'cerrada'
1 - adStateOpen = la conexion esta 'abierta'
2 - adStateConnecting = la conexion se esta 'realizando'
4 - adStateExecuting = la conexion esta 'ejecutando un comando'
8 - adStateFetching = los registros/filas del objeto se estan
'trayendo'
-> podrias usar una 'estructura' [p.e.] Select Case cn.State... Case 0...
End Select
o un 'simple' If cn.State = 0 Then '<< volver a solicitar usuario y/o
password o... 'terminas' >>' -?-
[probablemente] con 'esta idea general', podras encontrar la mejor
manera de 'manejar' tales situaciones ;)
-> con relacion a obtener una lista de servidores sql 'disponibles'...
[aunque no he encontrado nada 'en concreto] :-(
podrias iniciar en la pagina de Carl Prothman [antes
'Able-Consulting']...
http://www.carlprothman.net/

saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida