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 :

Parcourir table ACCESS et supprimer certains enregistrements


Sujet :

VBA Access

  1. #41
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Aie malheureusement ca ne marche pas
    ca ne change rien

    merci qd meme

  2. #42
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    En fait ca ne marche pas je pense car ca n'est pas adapté.
    Il n'y a pas d'elements null mais seulement des éléments qu'il ne retrouve pas d'une table à l'autre et donc qd il croise les deux tables,

    il met des "#Erreur" dans colB de table2 là ou il n'y a pas de donnée colB associé d'aprés la table1.

    On peut facilement s'embrouiller en me lisant
    lol

  3. #43
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bonjour JpCheck si tu passes par là ,

    as tu d'autres idées pour mon petit soucis

    Moi je continue de plancher dessus

    sinon pour afficher une fenetre "parcourir" et pouvoir aller chercher le nom et l'emplacement de mon fichier Excel pour mon code vba j'ai vu qu'il fallait utiliser les Microsoft Comon Dialog
    cependant je ne pense pas avoir ce "module" sur ma version d'Access ..
    connais tu une autre solution ?

    A plus tard et bonne journée

  4. #44
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Pense à utiliser la
    http://access.developpez.com/faq/?pa...#AffBoitDialog

    si tu ne veux pas de valeur à #Erreur, penche toi sur l'article des jointures évoqué plus tôt dans cette discussion

  5. #45
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Je suis sur mes deux trucs en parrallele.
    pour le erreur je n'est pas encore trouvé mais je fais des petits tests...

    sinon pour l'affichage de la fenetre parcourir pour récuperer l'adresse du fichier uj'ai bien copié le code dans un module sauver sous "OuvrirUnFichier" et copier le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox OuvrirUnFichier(Me.Hwnd, "Parcourir", 1, "Fichier Excel", "xls")
    dans mon code.

    cependant il m'affiche l'erreur:
    "Variable ou procédure attendue, et non un module"

    Je ne me suis pas encore attardé sur le code pour trouver l'erreur mais faut il ajouter des references particulieres a access pour pouvoir utiliser ce code ?

  6. #46
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    les premières lignes doivent être copiées dans ton code de formulaire (oui formulaire, acr on voit le Me. dans l'appel de fonction )

  7. #47
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Re
    merci pour ta réponse

    qu'entend tu par "premières lignes" ?
    tu parles de ca ?
    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
    'Déclaration de l'API
    Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
                       "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
     'Structure du fichier
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
    .............etc
    pour l'instant il est placer dans un module du projet access

    dois je le placer directement a la suite de mon code d'importation de mes données excel vers access ?

    merci pour ton aide, j'ai peur de m'embrouiller un peu avec mon code.

  8. #48
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    oui, dans la mesure où la portée actuelle est en Private.

    Par défaut, chaque fonction issue d'une API doit être déclarée dans chaque module où elle est utilisée

  9. #49
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    je ne dois pas copier au bonne endroit ou ne pas faire les bonnes modifictations....je continue d'y travailler

    Sinon j'ai résolu mon soucis de "#Erreur" en modifiant ma requete SQL precédente. j'ai insérer un WHERE ....IS NOT NULL à la fin.
    Merci pour ton lien sur les jointures...

  10. #50
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon ben j'ai suivi tes conseils et j'ai reussi a sortir un truc
    la fenetre s'affiche bien et me laisse selectionner un fichier
    ensuite il faut ke je comprenne ou il est stocké et que je lui dise de l'utiliser dans mon code.

    pour l'instant j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MsgBox OuvrirUnFichier(Me.Hwnd, "Fichier Excel à Importer", 1, "Fichier Excel", "xls", "F:/")
     
     
    Set oApp = CreateObject("Excel.Application")
    Set oWkb = oApp.Workbooks.Open("F:/Fichier.xls")
    Set oWSht = oWkb.Worksheets("BILAN")
    Une idée ?
    bon de te facon je continue qd meme de chercher

    En tout cas ton aide
    est super sympa
    et je te remercie encore...

  11. #51
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    tu as trouvé le résultat, vu que tu l'affichage avec ton MsgBox, non ?

  12. #52
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    OUi ma fenetre s'affcihe bien et il me fais bien choisir un fichier avec la fonction "ouvrirunfichier" mais je ne sais pas où les informations de :

    *nom du fichier
    *chemin du fichier

    sont stockés

    en fait la je n'ai pas supprimé le reste de mon ancien code
    ces lignes la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set oApp = CreateObject("Excel.Application")
    Set oWkb = oApp.Workbooks.Open("F:/fichierexcel.xls")
    Set oWSht = oWkb.Worksheets("BILAN")
    et je veux qu'il remplace ds ce code le oWkb automatiquement par le fichier que je selectionne avec ma fenetre parcourir

  13. #53
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    ton msgbox affiche le résultat => la fonction renvoie donc une chaine de caractère (ou false si clic sur annuler)

    donc tu peux utiliser une variable pour stocker tout ca.

    (oui je te laisse chercher un peu, tu pêcheras encore mieux après )

  14. #54
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    salut Jpcheck
    J'ai finalement reussi a faire ce que je voulais faire
    j'étais effectivement fatigué vendredi soir
    bon ben il me reste a faire que tte ces requete macro etc s'execute par un bouton unique sur un formulaire et alimente ce dernier
    je me planche la dessus
    je suis pas sur que sans ma table complete qq puisse le faire


    en tt cas merci pour ton aide ton lien et ta dispo

    bye

    PS: bein sur je re p-e plus tard si j'ai une question précise

  15. #55
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bonjour jpcheck ,

    Voilà je travaillé sur mon code qd j'ai découvert un petit soucis

    j'ai bien créé ma fenetre "explorer" grace à ton code qui va me chercher l'adresse et le nom du fichier excel que je veux importer.
    Cependant si qd la fenetre s'ouvre , je clique sur "x" (si je ferme cette fenetre) le code bug

    COmment lui dire que si aucun fichier n'est selectionné et que si la fenetre est fermé , je souhaite qu'il abandonne tt le code et qu'il ne tente pas l'extraction

    Je pensais a une boucle sur la variable contenant le chemin du fichier
    Du genre si cette variable est Null alors il ne fait rien , sinon il effectue le code d'importation.

    Qd penses tu ?

  16. #56
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,
    il me semble que la fonction renvoie une chaîne vide ou bien le booléen False lorsque l'utilisateur clique sur annuler ou la croix de fermeture du formulaire.

    Adapte une série de tests en amont du code pour vérifier que la fonction renvoie bien une chaîne de caractères qui pointe sur un fichier (Dir())

  17. #57
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    re coucou

    voila tu avez bien raison
    J'ai inséré une boucle If sur tout mon code apres avoir testé la sortie

    Si on click sur Annuler ou si on ferme la fenetre il renvoit ""

    Thx

  18. #58
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Salut jpcheck

    Bon en fait je suis revenu sur mon code initial dans ma requete car ce que j'avais fait ne marchait pas

    en fait mon probleme c'était dans mon equivalent rechercheV

    qd il ne trouvai pas l'equivalent il renvoyait "#Erreur" et ma solution était d'eliminer ts ces cas
    mais en fait on ma demander de les garder et de remplacer le "#Erreur" par un ""
    si tu as une idée ?

    je dois corriger ca pour demain matin
    c'est la panique a bord

    tu m'as deja pas mal aidé donc t'embete pas trop

    la mon idée c'était de faire un IIf ([col]=" #Erreur";"";[col]) et d'afficher ce resultat au lieu du précedent ou ds une autre requete

    bref ca ne marche pas

    en excel c'était estna() mais je ne trouve pas sous access

  19. #59
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    essaie de voir la fonction IsError()

  20. #60
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    essaie de voir la fonction IsError()
    J'ai donc essayé la fonction NZ et ca ne change rien

    et je viens d'essayer la fonction IsError et c'est le meme probleme

    Ma syntaxe est correcte mais il affiche toujours le "#Erreur"



    merci pour ton tps de reponse
    impressionant

Discussions similaires

  1. Supprimer une ligne d'enregistrement de table Access en VBA
    Par ivoratparis dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/08/2013, 12h02
  2. [AC-2007] Parcourir un RecordSet et supprimer certains Enregistrements
    Par symbabeauchat dans le forum IHM
    Réponses: 4
    Dernier message: 12/11/2011, 17h09
  3. Supprimer certains enregistrements
    Par Dennis Nedry dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2008, 16h51
  4. Requête supprimant certains enregistrements
    Par marcGR dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/03/2008, 18h01
  5. [VBA Access] supprimer les enregistrements/remplir table/dll
    Par genirette dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/01/2008, 09h23

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