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

VBA Access Discussion :

Remplacer données dans une variable tableau


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut Remplacer données dans une variable tableau
    Bonjour,

    J'aimerais pouvoir remplacer des valeurs dans une variable tableau sans avoir à passer en revu chaque valeur avec une boucle. Est ce possible ?

    Pour info : ma variable tableau est alimentée à l'aide d'un GetRows depuis un RecordSet créé à partir d'une requête SQL. Peut être est il possible de faire la modif en amont sans, bien entendu, toucher à la table d'origine ?

    Merci

    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
     
    Function rqt_sql_ope(ByVal nom_process As String) As Variant
     
    Dim rcd As DAO.Recordset
    Dim rqt_sql As String
    Dim rqt_tab As Variant
    Dim cpt As Integer
     
    rqt_sql = "RQT SQL" 'celle-ci fonctionne très bien. Je l'ai enlevé.
     
    Set rcd = CurrentDb.OpenRecordset(rqt_sql, dbOpenSnapshot)
     
    rcd.MoveLast
    cpt = rcd.RecordCount
    rcd.MoveFirst
     
    rqt_tab = rcd.GetRows(cpt)
     
    rcd.Close
    Set rcd = Nothing
     
    'ici j'aimerais remplacer des valeurs qui sont maintenant dans rqt_tab
     
    End Function

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Bonjour,

    N'est il pas possible de modifier le SQL pour qu'il ramène directement les données qui vont bien ?
    [Access] Les bases du débogage => ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    Merci pour votre réponse. Justement cela serait une solution, mais comment dire dans une requete sql de chercher et remplacer ?

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Champ1, Champ2, replace(Champ3, 'toto', 'tutu') from LaTable
    on ne peut pas y arriver ?
    [Access] Les bases du débogage => ici

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    Je pensais à qqch de plus simple parce qu'il y a dans la fonction SQL un WHERE qui est variable et en fonction du résultat de la requête les champs dont les données sont à remplacer peuvent être n'importe où ...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 28
    Par défaut
    Salut,

    Pourquoi tu ne tentes pas un replace() sur le résultat du recordset?

    J'aurais fait comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Set rst = CurrentDb.OpenRecordset("SELECT...;", dbOpenSnapshot, dbReadOnly)
     
        If rst.RecordCount <> 0 Then
            Do Until rst.EOF
                For i = 0 To rst.Fields.Count - 1
                    debug.print Replace(rst(i), "TOTO", "TITI")
                Next i
     
                rst.MoveNext
            Loop
        End If

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 28
    Par défaut
    Citation Envoyé par polo68 Voir le message
    Bonjour,

    ...

    sans avoir à passer en revu chaque valeur avec une boucle

    ...

    J'avais pas vu ça, oublie moi

    => [] o(^^ o)(o ^^)o

Discussions similaires

  1. recherche dans une variable tableau
    Par le petit nicolas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2007, 12h41
  2. [VBA-E]Recherche dans une variable tableau
    Par illight dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/12/2006, 17h50
  3. lire une donnée dans une variable de session
    Par pblb62 dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2006, 14h23
  4. [VB.NET] lien d'une base de donnée dans une variable
    Par Anubis666 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2006, 10h56
  5. Réponses: 2
    Dernier message: 14/10/2005, 10h11

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