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 :

Visu d'une requete dans un tableau


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut Visu d'une requete dans un tableau
    Bonjour à tous comme j ai pas eu de reponse j'ai crée une nouvelle discution

    j'ai une feuille de recherche (environ 40requete pour satisfaire toutes recherches).Je veux visualiser le resultat dans un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim strSQL As String
       Set db = CurrentDb()
       strSQL = "SELECT Tableau.Date, Tableau.Semaine, Tableau.Equipe, Tableau.Machine, Tableau.[Nom Pièce], Tableau.Îlot, Tableau.[Pièces Bonnes], Tableau.Réappairage, Tableau.[Coût Réappairage], Tableau.[% Rebut], Tableau.[Coût rebut], Tableau.[% Pièces bonnes / qté produite], Tableau.[% Rebuts / qté produite] INTO NewTable FROM Tableau WHERE Tableau.semaine Like '" & semaine_rechercheavance.Value & "'"
       db.Execute (strSQL)
       DoCmd.OpenTable "NewTable", acViewNormal, acReadOnly
    ce bout de code me permet d'executer ma requete

    PROBLEME : apres la premiere recherche le tableau "NewTable" s'enregistre automatiquement dans ma base de données et du coup j'arrive plus à faire la meme recherche 2fois (j'espere que je suis assez clair)car ça me renvoie une erreur comme quoi NewTable existe deja.

    J ai pensé à deux solutions , soit de crée un tableau pour chaque requete de recherche et du coup j aurais dans mon code qu'à ouvrir le tableau qui correspond à ma recherche.

    Soit à supprimer le tableau apres que l'utilisateur quitte la page recherche

    Mais je n'ai aucune idée du code qui me permetrai de realiser l'une des deux solutions

    Dans l attente de vos reponses mes salutations les plus distinguées

    Merci

  2. #2
    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 629
    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 629
    Points : 34 334
    Points
    34 334
    Par défaut
    issu d'autres threads :
    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
    Function DoesTableExist(ByVal NomTable As String) As Boolean
        Dim str As String
        On Error GoTo NoTable
        str = CurrentDb.TableDefs(NomTable).Name
        DoesTableExist = True
        Exit Function
    NoTable:
        Select Case err.Number
            Case 3265
                DoesTableExist = False
        End Select
    End Function
     
    'dans ton code actuel
    Dim strSQL As String
       Set db = CurrentDb()
       strSQL = "SELECT Tableau.Date, Tableau.Semaine, Tableau.Equipe, Tableau.Machine, Tableau.[Nom Pièce], Tableau.Îlot, Tableau.[Pièces Bonnes], Tableau.Réappairage, Tableau.[Coût Réappairage], Tableau.[% Rebut], Tableau.[Coût rebut], Tableau.[% Pièces bonnes / qté produite], Tableau.[% Rebuts / qté produite] INTO NewTable FROM Tableau WHERE Tableau.semaine Like '" & semaine_rechercheavance.Value & "'"
    If DoesTableExist("NewTable") Then
     Db.Execute "DROP TABLE NewTable"
    End if
       db.Execute (strSQL)
       DoCmd.OpenTable "NewTable", acViewNormal, acReadOnly
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    merci de votre aide ça serai sympa si vous me commenter cotre code et me l'expliquer svp sa m apprendra beaucoup de chose

  4. #4
    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 629
    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 629
    Points : 34 334
    Points
    34 334
    Par défaut
    cette fonction reçoit en paramètre nom d'une table, et retourne un booléen à Vrai si celle-ci existe, un booléen à Faux sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function DoesTableExist(ByVal NomTable As String) As Boolean
        Dim str As String
        On Error GoTo NoTable
        str = CurrentDb.TableDefs(NomTable).Name
        DoesTableExist = True
        Exit Function
    NoTable:
        Select Case err.Number
            Case 3265
                DoesTableExist = False
        End Select
    End Function
    Pour tester l'existence de la table XXX on lancera donc le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If DoesTableExist("XXX") Then
    msgbox "ca existe"
    Else
    msgbox "ca n'existe pas"
    End If
    L'idée est donc de tester si NewTable existe, la détruire avant de la remplacer par la nouvelle requete.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Merci beaucoup c'est exactement ce que je cherchais Merci

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

Discussions similaires

  1. résultat d'une requete dans un tableau
    Par arckaniann dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2013, 12h32
  2. Réponses: 1
    Dernier message: 31/07/2009, 13h33
  3. Réponses: 1
    Dernier message: 23/03/2007, 16h58
  4. Comment récupérer le résultat d'une requête dans un tableau ?
    Par Kylen dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/06/2006, 19h32
  5. Affichage d'un tableau provenant d'une requete dans un tableau HTML
    Par w0lf dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/06/2006, 19h05

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