OVH Cloud OVH Cloud

VBA - SQL - ODBC

1 réponse
Avatar
Wolvy
Salut tous le monde !

J'ai fait un fichier excel qui récupère des infos sur une base sql de
différents serveurs via une liste de serveurs sur une feuille.
Il peut arriver que, pour une raison ou une autre, le serveur ne soit pas
accessible, comment puis-je gérer cette erreur possible afin qu'il passe au
serveur suivant sans se mettre en erreur de connexion ? Merci

===============================
dim connectionstring, server as string

Application.StatusBar = "Serveur cible : " + Serveur

connectionstring = "ODBC;DRIVER=SQL Server;SERVER=" + Serveur +
";UID=admin;PWD=password;APP=Microsoft Open Database
Connectivity;WSID=station08;DATABASE=base;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"


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

1 réponse

Avatar
isabelle
bonjour Wolvy,

ajoute ce code à ta macro

On Error Resume Next
'commande
Err.Clear

isabelle


Salut tous le monde !

J'ai fait un fichier excel qui récupère des infos sur une base sql de
différents serveurs via une liste de serveurs sur une feuille.
Il peut arriver que, pour une raison ou une autre, le serveur ne soit pas
accessible, comment puis-je gérer cette erreur possible afin qu'il passe au
serveur suivant sans se mettre en erreur de connexion ? Merci

============================== > dim connectionstring, server as string

Application.StatusBar = "Serveur cible : " + Serveur

connectionstring = "ODBC;DRIVER=SQL Server;SERVER=" + Serveur +
";UID­min;PWD=password;APP=Microsoft Open Database
Connectivity;WSID=station08;DATABASEºse;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"

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