Exportation de SQL Server à un fichier . CSV avec VBA

richert90

XLDnaute Occasionnel
Bonjour,

Je voudrais savoir s'il est possible avec VBA d’exécuter un fichier ou un script qui permet de se connecter à SQL Server pour choisir une base de données ou une vue et de l'exporter en fichier .CSV?

J'ai penser aux recordsets ou alors de rentrer des paramètres de connexions sur un fichier de configuration .ini (nom de la base, nom du serveur, mot de passe etc...) ensuite VBA va lire ce fichier .ini mais après je ne sais pas comment je peux faire pour , une fois connecté a la base, l'exporter en format .CSV.

Merci de l'aide!
 
G

Guest

Guest
Re : Exportation de SQL Server à un fichier . CSV avec VBA

Bonjour,

Regarde du côté des connexions de classeur, (sous 2007: onglet Données) tu pourras importer tes données dans excel et les enregistrer en .csv

A+
 

richert90

XLDnaute Occasionnel
Re : Exportation de SQL Server à un fichier . CSV avec VBA

Re

Alors j'ai en effet essayer les ADOBD
J'ai joint le fichier pour que vous voyez ce que ça donne. Évidemment ça ne fonctionne pas sinon je ne l'aurai pas joint :p
(je rappel que je cherche à me connecter à une Base de SQL Server pour pouvoir ensuite l'exporter en format .csv.)

J'ai laisser à la fin du programme des commentaires sur mes problèmes$

Merci d'avance de l'aide,
 

Pièces jointes

  • Test.xlsm
    14.6 KB · Affichages: 63
  • Test.xlsm
    14.6 KB · Affichages: 75
  • Test.xlsm
    14.6 KB · Affichages: 77
G

Guest

Guest
Re : Exportation de SQL Server à un fichier . CSV avec VBA

Re,

Déjà va voir SQL Server connection strings - ConnectionStrings.com pour trouver la bonne connexion.

Et peut-être par là: Ce lien n'existe plus

Ensuite utilise
Code:
connect.CursorLocation=adUseClient
avant l'ouverture de la connexion et à défaut
Code:
rs.CursorLocation=adUseClient

Il y a un guillement mal placé dans :
Code:
requete = "SELECT * FROM V_DEFECTS_LIST  'requete sql;"

C'est:
Code:
requete = "SELECT * FROM V_DEFECTS_LIST;"  'requete sql
Ne pas oublié le ; des requêtes SQL

Tu peux utiliser GetOpenFileName pour trouver le chemin vers la base de données toute fois SQLServer connait le nom de la base si tu as la bonne chaine de connexion avec lui.

Ceci fonctionne très bien sur une base access sur c:
Code:
Public connect As ADODB.Connection

'Subroutine de connection
Sub ConnDB(ByRef connect As ADODB.Connection, ByVal cheminBase As String)
    connect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & cheminBase & _
                ";Persist Security Info=False;"
    connect.CursorLocation = adUseClient
    connect.Open
    
End Sub
'Subroutine principal
Sub Main()
    Dim rs As New ADODB.Recordset 'Déclaration du recordset
    
    Set connect = New ADODB.Connection 'Déclaration de la connection
    
    ConnDB connect, "c\.....\Base.accdb" 'connection à la base
    requete = "SELECT * FROM Modes"  'requete sql"
    
    
    'je mets le CursorType sur adOpenKeySet pour pouvoir utiliser la fonction RecordCount
    rs.Open requete, connect, adOpenDynamic, adLockBatchOptimistic
    
    nbre_ligne = rs.RecordCount
    rs.MoveFirst
    
    rs.Close
    
End Sub
A+
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
3
Affichages
360

Statistiques des forums

Discussions
312 158
Messages
2 085 830
Membres
102 994
dernier inscrit
snoopy70