[VBA] : Lire un RecordSet

Résolu
jeate Messages postés 15 Statut Membre -  
 jeate -
Bonjour,

J'aimerais prendre les éléments de mon recordSet et les mettre dans une string et c'est pour ça que j'utilise la méthode GetString mais cela ne marche pas. Qqn pourrait me dire pk ou me conseiller une autre méthode ?

Voici mon code :

Public Function EmailToSend_Click()
Set cdb = CurrentDb()
Dim SqlSelectRecepients As String

SqlSelectRecepients = "SELECT myTableId.mySpalteEmail FROM myTableId;"
Set rst_SqlSelectRecepients = cdb.OpenRecordset(SqlSelectRecepients)

' ERREUR ICI : "cet objet ne gère pas cette propriété"
txt = rst_SqlSelectRecepients.GetString(adClipString)

5 réponses

  1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    on peut procéder autrement, en parcourant le recordset et en récupérant les valeurs des champs (avec ! indiquant que l'on parle d'un champ)
    Dim Rs As Recordset
    Dim toto as String
    Set Rs = CurrentDb.OpenRecordset("Table1", dbOpenTable, dbReadOnly)
    Rs.MoveFirst
    While Not Rs.EOF
        With Rs
            toto = !champ1
            MsgBox toto & !champ2
        End With
        Rs.MoveNext
    Wend
    Rs.Close
    


    Ca irait comme ça ?
    14
  2. jeate
     
    Salut! Alors je ne comprends pas très bien ta question...

    De plus, un bouton qui fait deux choses à la fois, ça me paraît pas très clair comme tu l'as expliqué. Quand tu clique une fois, il fait l'action X et quand tu cliques deux fois, il fait l'action Y par exemple?
    3
  3. jeate Messages postés 15 Statut Membre 3
     
    Salut blux !

    D'abord, merci de bien vouloir m'aider !

    Ben écoute, j'ai essayé ta méthode, mais je reçois toujours l'erreur "Invalid argument" à la ligne :

    Set Rs = CurrentDb.OpenRecordset("tblEmail", dbOpenDynaset, dbReadOnly)

    Pourtant, ma table tblEmail existe et n'est pas vide (elle contient 3 champs dans la colonne Email)

    Saurais-tu pk ça plante ?
    1
    1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Si je ne m'abuse, l'option dbOpenDynaset permet d'ouvrir l'objet en modification, ce qui me parait un peu incompatible avec le dbReadOnly...

      As-tu essayé avec :
      Set Rs = CurrentDb.OpenRecordset("Table1", dbOpenSnapshot, dbReadOnly)
      ?
      0
  4. jeate Messages postés 15 Statut Membre 3
     
    Oui, j'avais essayé, bien pensé qd m !

    Et je vous remercie de votre aide, c très gentil !

    Entre-temps, g fait un peu différemment et g trouvé la solution, la voici :

    Private Sub Commande53_Click()

    Set cdb = CurrentDb()
    Dim SqlSelectRecepients As String
    Dim MonMessage As Object
    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

    SqlSelectRecepients = "SELECT tblEmail.Email FROM tblEmail;"
    Set rst_SqlSelectRecepients = cdb.OpenRecordset(SqlSelectRecepients)

    Do Until rst_SqlSelectRecepients.EOF 'Reihe auslesen
    myEmail = rst_SqlSelectRecepients!Email
    MonMessage.To = MonMessage.To + " " & myEmail & ", "
    rst_SqlSelectRecepients.MoveNext
    Loop
    rst_SqlSelectRecepients.Close

    MonMessage.Subject = "Refeering"
    MonMessage.Display
    Set MonOutlook = Nothing
    End Sub
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. badrelimane
     
    alors je fait une base de données qui gére un stock mais je trouve des diffuclté
    par exemple j'aime crée un bouton qui fait deux opération en mémé temps
    il fiat la mis à jours du tableau produit
    il fait un adjout dans le tableau opération effectue
    aide mois.
    merci </code</gras>></gras></gras>
    -2