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

VB 6 et antérieur Discussion :

[VB6]Prob avec les requêtes multiples [Infos]


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 1
    Points
    1
    Par défaut [VB6]Prob avec les requêtes multiples
    Bonjour à tous,

    Je cherche à récupérer, dans une base Access2000, un recordset contenant plusieurs recordsets avec un code du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRS.open "SELECT * FROM TABLE1; SELECT * FROM TABLE2", maConnection
    Je reçoit un message m'indiquant "Caractères trouvés à la fin de l'instruction SQL".
    J'ai essayé les curseurs coté client et serveur, j'ai même copié l'exemple de Microsoft (en l'adaptant très peu, mais assez pour correspondre à ma base), j'ai utilisé toutes les syntaxes d'ouverture de recordset (la méthode Open du recordset, les méthodes Execute de la Command et de la Connexion)..... Rien n'y fait...
    Ai-je oublié de paramétrer une propriété du Recordset pour qu'il accepte les recordsets multiples? Access2000 accepte-t'il cela?

    Merci d'avance...

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Table1.*, Table2.* FROM Table1, Table2
    c'est ca que tu cherches à faire :

    sinon je ne comprends pas le sens de ta question

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ce n'est pas ce que je recherche. En fait, je voudrais que mon recordset contienne plusieurs recordsets (correpondant à plusieurs instructions Select), afin de n'accéder qu'une seule fois à la base de données (économies de ressources et de temps). En imaginant que le recordset contienne 3 instructions Select, le principe est que je récupère les info du 1er recordset, et qu'ensuite je passe au suivant par l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set monRS = monRS.NextRecordset
    , que je récupère les infos du 2em recordset, et ainsi de suite.

  4. #4
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour
    Il me semble que tu pourrais utiliser tout simplement un filtre, mais je n'ai pas vraiment compris ce que tu cherches à faire

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par cammipascal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set monRS = monRS.NextRecordset
    et ou tu as vu que cette instruction existe

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    C'est une des méthodes de l'objet Recordset, elle est documentée dans l'aide de VB (pour ADO, ce que j'utilise -il existe la même méthode pour DAO ou RDO-), et j'ai même vu un exemple d'utilisation de cette méthode pour ADO.NET en faisant une recherche sur ce site (on tombe sur un article de Leduke). Non,non, je n'ai pas rèvé, cette méthode existe bien.

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    J'ai effectivement trouvé un exemple dans la doc ADO, mais pour SQLServer, et je ne suis pas sur que Jet accepte cette syntaxe, en tout cas je ne l'ai jamais utilisé

    Pour info voila ce que j'ai trouvé :
    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
     
    Public Sub NextRecordsetX()
     
       Dim rstCompound As ADODB.Recordset
       Dim strCnn As String
       Dim intCount As Integer
     
       ' Ouvre un jeu d'enregistrements composé.
       strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set rstCompound = New ADODB.Recordset
       rstCompound.Open "SELECT * FROM authors; " & _
          "SELECT * FROM stores; " & _
          "SELECT * FROM jobs", strCnn, , , adCmdText
       ' Affiche les résultats de chaque instruction SELECT.
       intCount = 1
       Do Until rstCompound Is Nothing
          Debug.Print "Contents of recordset #" & intCount
          Do While Not rstCompound.EOF
             Debug.Print , rstCompound.Fields(0), _
             rstCompound.Fields(1)
             rstCompound.MoveNext
          Loop
          Set rstCompound = rstCompound.NextRecordset
          intCount = intCount + 1
       Loop
    End Sub
    mais le provider est SQLServer, pas Jet4

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui, cela correspond aux exemples que j'ai trouvé et à partir desquels j'ai construit mon recordset multiple...
    Je vais me connecter à une base SQL Server pour voir s'il supporte la requête, auquel cas mon problème viendrait bien du fait que Jet ne supporte pas cette méthode....
    Réponse dans quelques instants...
    Merci de votre aide.

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bon... J'ai essayé sur SQL Server, et la requête passe comme une lettre à la poste... Le problème vient donc bien du fait que Jet ne supporte pas ce style de requête.
    Le plus regretable dans l'histoire, ce n'est même pas que ça ne marche pas (on peut contourner le problème en lançant plusieurs requêtes consécutives), c'est de perdre près d'une demi-journée pour rien alors que l'aide aurait pû contenir un petit mot du style "Méthode non supportée par le moteur Jet"... (auquel cas, on passe directement à une méthode supportée par la base Access)...
    Merci de votre aide.

  10. #10
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Pas de quoi, c'est une info qui peut toujours servir

Discussions similaires

  1. Prob avec les composants dbswing
    Par BigZaw dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2006, 19h06
  2. [VB6] Probleme avec les evenements keydown et keyup
    Par johnson95 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/07/2006, 13h50
  3. Prob avec les boutons radio
    Par King_T dans le forum Langage
    Réponses: 2
    Dernier message: 10/05/2006, 00h44
  4. Prob avec les variables de session
    Par King_T dans le forum Langage
    Réponses: 8
    Dernier message: 07/05/2006, 23h14
  5. [VB6]prob avec crystal report sous WIN XP
    Par oumarsaw dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/03/2006, 16h13

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