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

MS SQL Server Discussion :

[SQL2K]Requete sous VBA : Invalid objet


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut [SQL2K]Requete sous VBA : Invalid objet
    Bonjour,

    Problème simple et certainement classique mais qui me resiste ...
    Je souhaite importer des données depuis un serveur MS-SQL 2000 vers excel via vba (office 200).

    La connexion à la base fonctionne, je parviens a également à faire des requetes vers la Bdd "pubs".

    La ou ça bloque c'est lorque j'essai d'effectué des requetes vers d'autres bdd : Il me retourne un 'invalid objet' . J'ai verifier les droits utilisateur et normalement c'est Open bar ...

    Après parcours du forum, il semblerai que mon pb pourrai etre résolu avec une syntaxe du type "monserveur.mabase.monID.matable"
    Je n'arrive pas a valider cette hypothese car le nom de mon serveur comprend un '-' et je recolte de ce fait un jolie 'Incorrect syntaxe'

    Mes qestions : Comment solutionner mon pb de '-'
    Quelle ouverture de droit sur le serveur j'ai pu oublier ?


    Désolé je n'ai pas le bout de code sous la main, il est resté au boulot mais promis si ca interesse quelqu'un je le poste demain matin

    Merci

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Quelques éléments, au choix :
    - depuis vba, tu ouvre une connexion ado ? Tu as une propriété .DefaultDatabase qui te permet de spécifier la base avant l'ouverture de la connexion.
    - Tu peux essayer de lancer la commande "USE [mabase]" avec d'effectuer ta requête
    - pour régler ton problème de -, utilise les délimiteurs []. Exemple :
    [ma-base].dbo.matable.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Merci de ton aide
    J'ai implémenté tes propositions malheureusement sans succès

    Voici mon code ...

    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
     
    Dim conn As ADODB.Connection
    Dim table As ADODB.Recordset
    Dim sql As String
     
     
    Set conn = New ADODB.Connection
    Set table = New ADODB.Recordset
     
    With conn
         .Provider = "SQLOLEDB;Data Source=10.x.xxx.xx,1433; Network Library=DBMSSOCN;Initial Catalog=mabase;User ID=monID;Password=monpass;"
        .Open
        .DefaultDatabase = "mabase"
    End With
     
     
    sql = "USE [mabase];"
    table.Open sql, conn
     
     
    sql = "SELECT * from [monserveur].[mabase].[monid].matable];"
    table.Open sql, conn
    test = table.GetRows(1)
    MsgBox test(1, 0)
    Mon message d'erreur Invalid object name 'mabase'
    sur la requete sql = "SELECT * from [monserveur].[mabase].[monid].matable];"

    J'ai le sentiment que cela viens du serveur

    Merci ...

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    resalut,

    Qq pistes :
    - DefaultDatabase doit être attribué AVANT l'ouverture de la connexion
    - Enlève [monserveur], à moins que tu appelles un serveur lié. Tu es déjà sur le serveur. Comme quand tu appelles un numéro au téléphone, tu n'as pas besoin de faire d'abord ton numéro

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    - DefaultDatabase doit être attribué AVANT l'ouverture de la connexion
    J'ai verifié cette commande est impossible si la connexion n'est pas ouverte

    Comment m'assurer que j'ai les droits ?

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Ok, désolé pour le DefaultDatabase, la doc en ligne que j'ai lue était probablement erronée. En vérifiant ailleurs les infos sont différentes.

    Pour vérifier que tu as bien les droits, tu peux par exemple essayer de te connecter sur le serveur avec Query Analyzer ou SSMS, ton login et password, et de lancer ainsi les requêtes que tu veux exécuter.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Ca marche ...
    C'était un problème de droits utilisateur : j'ai bidouillé et hop ...
    Le pb c'est que j'ai pas compris ce que j'ai fait !
    En tout cas merci pour l'aide

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

Discussions similaires

  1. [AC-2003] Créer une requete sous vba Access
    Par facteur dans le forum VBA Access
    Réponses: 23
    Dernier message: 22/01/2013, 13h50
  2. [AC-2007] Temps d'execution d'une requete sous VBA 4 minutes
    Par sihamelm dans le forum VBA Access
    Réponses: 6
    Dernier message: 24/11/2012, 00h04
  3. PB recuperation valeur requetes sous VBA
    Par stan314 dans le forum Access
    Réponses: 2
    Dernier message: 25/05/2006, 11h09
  4. Resultat requete sous VBA
    Par stan314 dans le forum Access
    Réponses: 1
    Dernier message: 25/05/2006, 07h09
  5. (VBA-A] Requete access sous VBA
    Par vanima dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/07/2004, 16h07

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