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

VB.NET Discussion :

VB Access 2010


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut VB Access 2010
    Bonjour,

    J'espère que mon post sera bien situé...

    Je cherche à intégrer une notion "Annuler" sur un bouton access dans un formulaire.

    Je m'explique :

    Mon bouton lance une requête. Cette requête étant longue, un message d'alerte apparaît mais je voudrais pouvoir permettre de choisir entre "continuer" ou "annuler".

    Voyez-vous une astuce ou connaissez vous un code VB que je peux intégrer dans ma procédure évènementielle permettant d'annuler l'exécution de la requête?

    Merci beaucoup d'avance

    Adou

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    les performances d'une requete peuvent souvent être améliorées
    il arrive de voir des requetes d'une minute passer à une demie seconde en ajoutent des indexes et en écrivant mieux la requete

    pour annuler, il faut que tu exécutes ta requete sur un thread séparé, il sera alors possible de l'annuler (voir backgroundworker par exemple)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ce retour rapide

    Donc si je comprends bien, j'utilise mon bouton comme ouverture d'un message du genre :

    "Le lancement de cette requête est très long (environ 5 minutes), souhaitez-vous poursuivre?"

    et lancer la requête en cas de "oui" et annuler si "non"?

    Je vais faire un essai d'écriture et je reviens...

    Pour le temps, je pense qu'effectivement il y a peut être un moyen d'améliorer le traitement mais le fait de croiser 350 000 enregistrements avec 3 000 et de renvoyer les données souhaitées en fonction de 5 champs qui doivent être identiques ne lui fait pas trop plaisir !

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Adou95 Voir le message
    "Le lancement de cette requête est très long (environ 5 minutes), souhaitez-vous poursuivre?"

    et lancer la requête en cas de "oui" et annuler si "non"?
    je n'ai pas parlé de ca, vous cherchiez comment annuler
    annuler pour moi ca veut dire arrêter avant la fin (il faut d'ailleurs une transaction si ce n'est pas un select)

    Citation Envoyé par Adou95 Voir le message
    Pour le temps, je pense qu'effectivement il y a peut être un moyen d'améliorer le traitement mais le fait de croiser 350 000 enregistrements avec 3 000 et de renvoyer les données souhaitées en fonction de 5 champs qui doivent être identiques ne lui fait pas trop plaisir !
    le temps de traitement sur des dizaines de millions de lignes peut etre rapide si la structure et la requete sont bonnes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    je n'ai pas parlé de ca, vous cherchiez comment annuler
    annuler pour moi ca veut dire arrêter avant la fin (il faut d'ailleurs une transaction si ce n'est pas un select)
    C'est que j'ai mal exprimé mon problème, j'en suis désolé. Je voulais pouvoir faire annuler le lancement avant toute ouverture ce que j'ai réussi à faire avec une petite actuse :

    Private Sub Bouton()

    Select Case MsgBox("L'ouverture de XXXXXX demande un certain temps de traitement (environ 5 minutes). Voulez-vous poursuivre?", vbYesNo, "Choix")
    Case vbYes
    DoCmd.OpenForm "Formulaire à ouvrir avec la requête en sous-formulaire"
    Case vbNo
    DoCmd.OpenForm "Formulaire initial"
    End Select

    End Sub

    Cela fonctionne parfaitement

    Pour la requête, je ne sais pas vraiment comment raccourcir le traitement. Il n'y a pas plus simple pourtant comme requête. En réalité en croise 2 champs (pour les 5 champs ça doit être mon côté marseillais).

    - J'ai 2 tables donc une est liée à une autre base
    - 2 jointures en propriéré 1: Inclure seulement les lignes des deux tables pour lesquelles les champs joints sont égaux
    - 33 champs remontés donc 12 pour une des tables (21 pour l'autre)

    Effectivement, le traitement devrait être quasi instantanné. Peut-être ai-je oublié quelque chose pour faciliter le traitement...

  6. #6
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour ,


    Voir si les champs servant de jointure entre vos 2 tables sont indexés.

    Voir aussi le contenu des champs que vous ramenez. Récupérer les informations d'un champs de type numérique sera beaucoup plus rapide que de récupérer les informations d'un champ binaire contenant par exemple une image (Vécu pas plus tard que la semaine passée ;-) ).

    De plus beaucoup de développeur ont tendance à abuser du SELECT * alors qu'ils n'ont besoin que de deux ou 3 champs
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le code que tu as mit est du VBA Access et non du Vb.net

    Ce n'est pas le bon forum.

    Philippe

Discussions similaires

  1. Office 2010 : vidéo sur les champs calculés Access 2010
    Par Maxence HUBICHE dans le forum Access
    Réponses: 18
    Dernier message: 11/01/2010, 03h27
  2. Passage de Access 2000 à Access 2010
    Par nico84 dans le forum Access
    Réponses: 5
    Dernier message: 08/07/2009, 22h48
  3. Access 2010 : de grands bonds en avant en perspective !
    Par Maxence HUBICHE dans le forum Access
    Réponses: 3
    Dernier message: 28/05/2009, 20h44
  4. Access 2010, c'est pour quand?
    Par Rafikaccess dans le forum Sondages et Débats
    Réponses: 10
    Dernier message: 12/01/2009, 17h23

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