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 :

Problème de mise jour à des données avec ADO


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut Problème de mise jour à des données avec ADO
    Bonjour tout le monde,

    J'aimerai avoir votre aide sur ce problème ci:

    J'ai un formulaire qui est basée sur une requête. Il est ouvert ouvert en appliquant un filtre. Voici l'instruction d'ouverture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    stFiltre = saisieValeur(msg, titre)
        If Len(stFiltre) = 0 Then
            MsgBox "Ouverture annulée!"
            Exit Sub
        Else
            stLinkCriteria = "Code_postal LIKE '" & stFiltre & "*'"
        End If
        stDocName = IIf(Me.opgMotif.Value = 1, "Fiches_vierges", "Rappels")
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Voici la requête source de mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Entreprises.*, *
    FROM Entreprises
    WHERE (((Entreprises.Num_serie) Not In (SELECT DISTINCT Entreprise FROM Prospections)));
    J'utilise également une fonction qui permet de verrouiller les enregistrement contenus dans le RecordSource de mon formulaire dont je viens de parler ci haut. Voici la fonction :
    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
    'Vérrouillage de toutes les fiches des entreprises
    Private Sub deverrouillage()
        Dim bd As New ADODB.Connection
        Dim rs As New ADODB.Recordset
     
        Set bd = CurrentProject.Connection
        'Ouvrir la table Entreprises
        'rs.Open "Entreprises", bd, adOpenDynamic, adLockOptimistic
        Dim stSql As String
        stSql = "SELECT * FROM Entreprises WHERE " & Me.Filter
        rs.Open stSql, bd, adOpenDynamic, adLockOptimistic
     
        'Verrouiller tous ceux qui satisfond
        'à la condition du filtre
        With rs
            '.Find Me.Filter
            Do Until .EOF
                rs("Verrouille") = Null
                .Update
                .MoveNext
            Loop
        End With
     
        'Fermeture des objets et
        'libération de la mémoire
        rs.Close
        Set rs = Nothing
        bd.Close
    End Sub
    Le problème est que le formulaire s'ouvre normalement avec les bons enregistrements. Mais ma fonction qui s'exécute lors du chargement des données ne marche pas. La méthode Find du RecordSet ne retourne rien parce que c'est comme si l'exécution sautait la boucle Do Until.

    J'ai beau chercher et vérifié mais je n'arrive toujours pas à retrouver où se cache l'erreur.
    J'espère avoir été clair dans les explications.
    Quelqu'un pourrait-il m'aider à voir ce qui cloche.
    Je vous remercie d'avance pour vos interventions.

    @omzo
    @omzo
    "L'ignorant qui ignore qu'il ignore est plus ignorant que l'ignorant qui n'ignore pas qu'il ignore."
    [Proverbe arabe]

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    ADO utilise les caractères génériques SQL ANSI % et _ en lieu et place de * et ?.

    Trouvé ici :
    L'utilisation des caractères génériques ANSI exclut celle de caractères génériques Microsoft Jet et inversement.
    Vous devez donc utiliser un jeu de caractères ou l'autre, mais pas les deux à la fois.
    Les caractères génériques SQL ANSI ne sont disponibles que lors de l’utilisation de Jet 4.X
    et du Fournisseur OLE DB Microsoft pour Jet.
    Si vous utilisez les caractères génériques SQL ANSI avec Microsoft Access ou DAO,
    ils seront interprétés comme des caractères littéraux.
    L’inverse est vrai, si vous utilisez le Fournisseur OLE DB Microsoft pour Jet avec Jet 4.X..
    Essaie de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        stSql = "SELECT * FROM Entreprises WHERE " & Me.Filter
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        stSql = "SELECT * FROM Entreprises WHERE " & Replace(Me.Filter, "*", "%")
    Ou bien encore, utilise DAO au lieu de ADO.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut
    Salut,
    Merci LedZeppII pour votre réponse.

    Je vais essayer votre méthode et voir ce que ça donne.

    A bientôt.
    @omzo
    "L'ignorant qui ignore qu'il ignore est plus ignorant que l'ignorant qui n'ignore pas qu'il ignore."
    [Proverbe arabe]

Discussions similaires

  1. Problème de mise à jour des données en base
    Par raiseyourfist59 dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/08/2011, 20h50
  2. Réponses: 2
    Dernier message: 16/09/2010, 14h44
  3. Problème de mise à jour des données sur un onglet
    Par PenPen_lepingouin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2008, 17h49
  4. [C#][Access]Problème de mise à jour des données
    Par vvvvv dans le forum ASP.NET
    Réponses: 10
    Dernier message: 11/04/2006, 10h43
  5. Problème de mise à jour de données avec IBClientDataset
    Par Papino dans le forum Bases de données
    Réponses: 6
    Dernier message: 26/09/2005, 14h04

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