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

Access Discussion :

[VBA] pb récupération données d'un recordset dans tableau


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut [VBA] pb récupération données d'un recordset dans tableau
    Bonjour a tous,

    Voici mon problème, je crée un tableau dont les données proviennent d'un recordset, malheuresement lors de l'attribution des données dans le tableau, access me renvoie l'erreur suivante :

    Erreur d'exécution 94
    Utilisation incorrecte de Null

    pourtant j'ai vérifié le résultat rs10(5) * rs10(riskrempl + 10) qui pose un pb et j'ai bien une valeur

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    'générer risk matrix
    Private Sub Commande50_Click()
     
    'création object excel
    Dim Appexcel As Excel.Application
    Dim Wbexcel As Excel.Workbook
     
    'ouverture du fichier excel spécifié
    Set Appexcel = CreateObject("Excel.Application")
    Appexcel.Visible = True
    Set Wbexcel = Appexcel.Workbooks.Open("H:\RiskMatrix.xls")
    Appexcel.Sheets("HF Risk Matrix").Select
     
    'déclaration variables
     Dim rs10 As DAO.Recordset
     Dim j As Integer
     Dim compteur As Integer
     Dim riskrempl As Integer
     Dim Tabtemp(200) As Long
     Dim test As Double
     
     
     'remplisssage tableau avec des zéros
    For compteur = 1 To 200
        Tabtemp(compteur) = 0
    Next compteur
     
    'création du recordset à partir de la requete
    Set rs10 = CurrentDb.OpenRecordset("Risk Matrix by composition")
     
    j = 0
     
    While Not rs10.EOF
     
     
      'données initiales : analyst, stratégies...
        Appexcel.Cells(1, 6 + j) = rs10(72)
        Appexcel.Cells(2, 6 + j) = j + 1
        Appexcel.Cells(3, 6 + j) = rs10(73)
        Appexcel.Cells(4, 6 + j) = rs10(69)
        Appexcel.Cells(5, 6 + j) = rs10(5)
     
     'boucle permettant de remplir tous les risques de chaque fond
     For riskrempl = 0 To 58
        Appexcel.Cells(8 + riskrempl, 6 + j) = rs10(riskrempl + 10)
       Tabtemp(riskrempl+1) = Tabtemp(riskrempl+1) + rs10(5) * rs10(riskrempl + 10)
       Next riskrempl
    MsgBox test
     
     
    j = j + 1
    rs10.MoveNext
     
    Wend
    Set rs10 = Nothing
    End Sub

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Dans ta boucle, essaie ça et vérifie que tu affiches bien toutes les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    msgbox rs10(5)
    msgbox rs10(riskrempl)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut
    C'est ce que j'ai vérifié en premier et les données s'affichent, le problème vient quand j'essaye de mettre la valeur dans une variable

    test2 = rs10(riskrempl + 10)

    si je fais test2=rs10(10) ou de rs10(11) ca marche

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut
    Je crois avoir trouvé mon erreur mon boucle "allait trop loin"

    EDDIT:
    Encore une "petite erreur" qui te fait perdre quasiment toute une après-midi

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

Discussions similaires

  1. [XL-2003] Récupération données d'une ligne dans userform
    Par cantal15 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/06/2009, 15h52
  2. [XL-2002] Insérer les données d'un Recordset dans une ADOX.Table
    Par -={-_-}=- dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/05/2009, 00h12
  3. Réponses: 2
    Dernier message: 31/03/2008, 14h32
  4. [VBA] fonction qui donne la valeur présente dans une table
    Par zanou666 dans le forum VBA Access
    Réponses: 7
    Dernier message: 25/09/2007, 17h33
  5. [VBA-E] Récupération données fichier texte
    Par Theo28fr dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2006, 08h08

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