Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gestion des erreurs de connexion odbc à un ou plusieurs serveurs SQL

1 réponse
Avatar
Wolvy
Salut,

Comment faire pour éviter la connexion à un serveur qui, pour une raison x
ou y ne répond pas ?

J'ai essayé

on error resume next
Er.clear

Mais cela ne fonctionne pas... Merci de votre aide, voici le code que
j'emplois...

Application.StatusBar = "Serveur cible : " + Serveur

connectionstring = "ODBC;DRIVER=SQL Server;SERVER=" + Serveur +
";UID=login_sql;PWD=passlogin;APP=Microsoft Open Database
Connectivity;WSID=comput108;DATABASE=xbase;Regional=Yes"


sqlstring = "set nocount on "
sqlstring = sqlstring + "select TIR_NUM_TIERS, sum(RIC_VALEUR_1) as
NB_ARTICLE_NONEBIP, sum(RIC_VALEUR_2) as NB_ARTICLE_TOTAL,
(sum(RIC_VALEUR_1)/sum(RIC_VALEUR_2 )) as PCT_NONEBIP,
1-(sum(RIC_VALEUR_1)/sum(RIC_VALEUR_2)) as PCT_BIP from caisse..riva_stats
(nolock) "
sqlstring = sqlstring + "where RIC_NATURE_STAT = 102 and RIC_DATE between '"
& Sheets("Menu").TextBox2.Text & "' and '" & Sheets("Menu").TextBox3.Text &
"' "
sqlstring = sqlstring + "group by tir_num_tiers"

'L'execution se fait ici...

With ActiveSheet.QueryTables.Add(Connection:=connectionstring,
Destination:=Range("A2"))
.CommandText = sqlstring
.Refresh
End With

1 réponse

Avatar
isabelle
bonjour Wolvy,

voici un exemple de gestion d'erreur trouvé dans l'aide excel :

Cet exemple montre comment générer une erreur intentionnelle en tentant
d'établir une connexion avec la base de données Northwind en utilisant
une chaîne de connexion incorrecte (Northwind est mal orthographié). Les
informations sur les erreurs s'affichent dans la feuille Sheet1.

chan = SQLOpen("DSN=Nortwind")
returnArray = SQLError()
For i = LBound(returnArray, 1) To UBound(returnArray, 1)
Worksheets("Sheet1").Cells(1, i).Formula = returnArray(i)
Next i
SQLClose chan


isabelle


Salut,

Comment faire pour éviter la connexion à un serveur qui, pour une raison x
ou y ne répond pas ?

J'ai essayé

on error resume next
Er.clear

Mais cela ne fonctionne pas... Merci de votre aide, voici le code que
j'emplois...

Application.StatusBar = "Serveur cible : " + Serveur

connectionstring = "ODBC;DRIVER=SQL Server;SERVER=" + Serveur +
";UID=login_sql;PWD=passlogin;APP=Microsoft Open Database
Connectivity;WSID=comput108;DATABASE=xbase;Regional=Yes"

sqlstring = "set nocount on "
sqlstring = sqlstring + "select TIR_NUM_TIERS, sum(RIC_VALEUR_1) as
NB_ARTICLE_NONEBIP, sum(RIC_VALEUR_2) as NB_ARTICLE_TOTAL,
(sum(RIC_VALEUR_1)/sum(RIC_VALEUR_2 )) as PCT_NONEBIP,
1-(sum(RIC_VALEUR_1)/sum(RIC_VALEUR_2)) as PCT_BIP from caisse..riva_stats
(nolock) "
sqlstring = sqlstring + "where RIC_NATURE_STAT = 102 and RIC_DATE between '"
& Sheets("Menu").TextBox2.Text & "' and '" & Sheets("Menu").TextBox3.Text &
"' "
sqlstring = sqlstring + "group by tir_num_tiers"

'L'execution se fait ici...

With ActiveSheet.QueryTables.Add(Connection:=connectionstring,
Destination:=Range("A2"))
.CommandText = sqlstring
.Refresh
End With