IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

VBA obtenir texte SQL requète avec ADO


Sujet :

Requêtes et SQL.

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 047
    Points : 1 042
    Points
    1 042
    Par défaut VBA obtenir texte SQL requète avec ADO
    Bonjour,
    Je souhaiterais pouvoir lire le texte d'une requete sQL server pour pouvoir la modifier avec ADO car j'utilise SQL 2005 avec ACCESS.
    merci pour vos réponses

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Les Vues dans ADOX ne sont pas supportées par le fournisseur SQLOLEDB.

    Voila une alternative:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Public Const SERVER_N = "LZ2"
    Public Const SQLOLEDBconn = "Provider=SQLOLEDB" & _
                ";DATA SOURCE=" & SERVER_N & _
                ";INITIAL CATALOG=MOP" & _
                ";Trusted_Connection=Yes"  ' authentification NT
    '            ";USER ID=MOPREAD" & _
    '            ";PASSWORD=xxxxxxx"
    
    Function LireSQLview(ViewName As String, Optional Owner As String = "*")
    Dim oConn As ADODB.Connection, oRS As ADODB.Recordset
    Dim strSQL As String, strView As String, p As Long
    
    strSQL = "SELECT VIEW_DEFINITION text, TABLE_SCHEMA owner" & vbCrLf & _
             "FROM INFORMATION_SCHEMA.VIEWS" & vbCrLf & _
             "WHERE (TABLE_NAME = '" & ViewName & "')"
    If Owner <> "*" Then
       strSQL = strSQL & " AND (TABLE_SCHEMA='" & Owner & "')"
    End If
    
    Set oConn = New ADODB.Connection
    oConn.ConnectionString = SQLOLEDBconn ' Const connexion déclarée plus haut
    oConn.Open
    
    Set oRS = New ADODB.Recordset
    oRS.CursorLocation = adUseClient
    oRS.Open strSQL, oConn, adOpenForwardOnly, adLockOptimistic, adCmdText
    
    If Not oRS.EOF Then
       strView = oRS!Text
       p = InStr(1, oRS!Text, vbCrLf & "AS" & vbCrLf) + 6
       If p > 7 Then
          strView = Mid(oRS!Text, p, Len(oRS!Text) - p - 1)
       End If
    Else
       strView = "NON TROUVE"
    End If
    
    oRS.Close
    Set oRS = Nothing
    Set oConn = Nothing
    
    LireSQLview = strView
    End Function
    La recherche d'une ligne ne contenant que "AS" sert à ce que la fonction ne retourne que la requête à partir de SELECT.
    SQL server stocke les Vues sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE VIEW nomVue 
    AS
    SELECT ....
    Bon courage.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 047
    Points : 1 042
    Points
    1 042
    Par défaut
    merci pour la réponse cela fonctionne parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sql requête avec NOT EXISTS
    Par wang_xue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/10/2007, 19h48
  2. [VBA] Erreur sur une requête avec un opérateur
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2006, 17h12
  3. [Débutant / SQL] Requête avec la fonction MAX
    Par bugmenot dans le forum Access
    Réponses: 3
    Dernier message: 14/04/2006, 10h43
  4. SQL Requête avec des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/03/2006, 18h20
  5. [SQL]Problème avec ADO - Order by
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/11/2005, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo