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

Macros et VBA Excel Discussion :

Nouveau xls / SQL [XL-2003]


Sujet :

Macros et VBA Excel

  1. #21
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Points : 77
    Points
    77
    Par défaut
    J'ai suivi les instructions comme dite rdurupt, mais rien n'y fait.

    Erreur à ce niveau la : For I = 1 To Rec.Fields.Count
    Erreur 91.

    Il faut savoir que à chaque execution, j'ai l'erreur, mais en meme temps un fichier Classseur (i) est crée deriere, vide et non enregistré.

    Je pense que le probleme viens du Rec qui n'est pas specifié en tant que type recordSet dans la declaration ...

  2. #22
    Invité
    Invité(e)
    Par défaut
    Est-ce que le programme passe par OpenConnetion = True dans la fonction
    Public Function OpenConnetion()
    Si elle n'y passe pas remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Else
      ''MsgBox Err.Description
     
        End If
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Else
     MsgBox Err.Description
     
        End If
    et refais un test

  3. #23
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Points : 77
    Points
    77
    Par défaut
    J'explique grossomodo les erreurs actuelle:

    • Dans un prmier temps,quand j'ai enlevé le commentaire comme demandé, j'ai maintenant ce message la : Fichier 'c:\Users\nom\AppData\Local\Temp\Temp2_test-ADODBRD.zip\Test-ADODBRD\Test-ADODBRD.mdb' introuvable.
    • Dans un second temps; Erreur 91 à ce niveau la :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      For I = 1 To Rec.Fields.Count
    • Il crée à chaque fois que j'execute un nouveau classeur.


    Voila ...
    Avec la methode DAO, j'ai réussi à avoir le resultat voulu, mais c'est bricolé, le fichier ne peut etre ouvert directement apres compilation, sinon le format n'est pas reconnu. Et franchement je suis attiré par la methode que tu me proposes la, elle est + clean. Autant plus que je voudrais en apprendre plus sur l'ADO.

    Donc ... si tu as des solutions pour le code que tu m'a proposé :/ , je ne comprends pas pourquoi ça marche chez toi et pas chez moi.

  4. #24
    Invité
    Invité(e)
    Par défaut
    L’erreur est juste car tu as exécuté le fichier directement du Zip.
    Donc tu n’as pas dézipé la base de données.
    Il faut déziper le répertoire dans sa totalité sur le disque dur (sur le bureau par exemple)

  5. #25
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Points : 77
    Points
    77
    Par défaut
    Correct...
    Resulat propre, sans soucis.

    Je fais le teste de tt ça, j'avance un peu sur ce code la.
    J'avoue il est bien pratique et plus simple que ce que j'ai pu construire moi.

    Je laisse la discussion ouverte au cas où j'ai des soucis. Si ça ne pose pas de probleme. Ton aide m'a été tres benefique, elle me le sera encore plus apres je pense !!!

    First Question
    A ce niveau la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rec = con.CloseRecordSet(RS)
    le RS, il correspond à quoi?
    Je sais qu'il est declaré au niveau de la classe du module, mais est'il possible de l'utiliser dans l'integralité du VBA Projet? car quand j'essaye de fermer une requete au niveau d'un userform par exemple, le RS est declaré comme non defini !
    Merci !

  6. #26
    Invité
    Invité(e)
    Par défaut
    Dim Rec est la déclaration d’un objet Variant.
    Le RS n’est plus utilisé mon code a évolué en fonction du temps j’ai vue qu’il n’avait aucune utilité.
    (Même les vieux ont le droit de changer d’avis).
    L’instruction Set Rec = con.OpenRecordSet(SQL) a pour but lier la variable Rec à con.OpenRecordSet(SQL) dans la class.
    En revanche tu peux faire Rec.Close set Rec= Nothing.

  7. #27
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Points : 77
    Points
    77
    Par défaut
    Rebonjour !
    Effectivement, j'ai opté pour le Rec.Close, plus pratique je pense.

    Cependant, j'ai la meme erreur que tte à l'heure.

    Maintenant, j'explique.
    Sur un module, j'ai ce code la :
    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
     
    Public cnx As New ADODBRD
    Public wrk As Workbook
    Public rst
     
    Public rep As String
    Public sql As String
     
    Public i As Integer
     
     
     
    Sub connexion()
    rep = ActiveWorkbook.Path
    cnx.TYPEBASE = 4
    cnx.Fichier = rep & "\bdxls.mdb"
    End Sub
    Ce code me permet d'etablie la connexion avec la BD une bonne fois pour toute.
    La connexion fonctionne, car je teste le remplissage d'un combobox sur un userform, ça fonctionne à merveille.

    Cependant, dés que je clique sur un bouton qui me permet de faire une requete sql parametré, et d'inserer les resultats de la requete sur le nouveau fichier crée, la meme erreur, au niveau du

    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
    Private Sub cmd_valider_Click()
    Dim choix As String
    choix = comboBox_conditions.Value
    sql = "SELECT [table].[id], [table].[Name], FROM [table] WHERE [" & choix & "] > 0;"
    Set rst = cnx.OpenRecordSet(sql)
     
    Set wrk = Application.Workbooks.Add
    
    'insert les en-tetes
    For i = 1 To rst.Fields.Count    wrk.Sheets(1).Cells(1, i).Value = rst.Fields(i - 1).Name
    Next i
     
    'Ajout des données à partir de A2
    wrk.Sheets(1).Range("A2").CopyFromRecordset rst
     
    'Enregistrement en lecture seule
    wrk.SaveAs rep & "\dossier\Test.xlsx", XlFileFormat.xlWorkbookDefault, , , True
    End Sub

    J'avoue que ça m'enerve, car tout ce deroulait bien, jusqu'à quand j'ai voulu au final appliquer ce code à mon programme.
    Je comprends pas, au niveau du combobox ça fonctionne, mais quand j'ai voulu "cliquer", le rst n'est plus reconnu . . .

    Si tu as des propositions...


    It Work.
    Le probleme venait du "As Value" dans la requete .

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Comment créer un nouveau serveur SQL ?
    Par jjcasalo dans le forum Administration
    Réponses: 5
    Dernier message: 26/09/2008, 13h34
  2. Enregistrer un nouveau server sql
    Par GodGives dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 06/06/2008, 09h43
  3. [SQL2K] Pb "Enregistrer un nouveau serveur SQL"
    Par Ludoblanc dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 13/02/2006, 09h31
  4. Enregistrement d'un nouveau serveur Sql Server
    Par viva-emptiness dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 18h00

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