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 :

Manipulations autour d'une base de données ACCESS


Sujet :

VB.NET

  1. #181
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour Rezolu,

    C'est une belle application et aussi une très bonne expérience de programmation d'un "certain" mode de gestion de données en DB.

    Voici quelques commentaires.

    Tu as encadré les "groupes" de boutons en posant un Label. Cela donne l'apparence escomptée mais l'usage d'un GroupBox te serait utile par delà les apparence. Vois dans mon projet de tests, les encadrés sont des GroupBox. Il faut placer le GroupBox de façon approximative puis y déplacer les boutons qui doivent s'y trouver. L'avantage est que tu peux déplacer ensuite les GroupBox sur le Form et les boutons restent bien à leur place à l'intérieur du GroupBox. Si la propriété Text d'un GroupBox est vide, alors il a la même apparence que ton Label (dans mon projet, j'ai utilisé cette propriété pour y placer un "titre").

    Je trouve curieux que dans le "groupe" de modification le cadena ouvert signifie "accès interdit' et que le cadena fermé permette la modification ...

    Plus sérieux, je trouve dommage qu'un ne puisse modifier le nom d'une astuce, ni son type.
    • Comment faire si on se rend compte que le nom donné est inapproprié, ou si on veut y ajouter un mot (ce nom est important pour la recherche sur mot-clé) ?
    • Comment faire si on se rend compte qu'on a commandé l'enregistrement sans avoir sélectionné le bon type (si on a malencontreusement gardé le type par défaut, le premier de la liste) ?


    Très bonne journée

  2. #182
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour Phil Rob

    Merci pour tes commentaires.

    Concernant la modification du nom et du type, le problème si on change les informations j'aurais un problème avec mes fichiers et images car l'emplacement du répertoire de ceux-ci est défini par le type et le nom.
    Le problème, c'est que je n'ai pas encore trouvé la façon de faire, l'idéal serait si on modifie le type ou le nom que les fichiers et images soit déplacer dans le nouveau nom de répertoire, si tu as une piste pour moi à ce sujet.

    Bonne journée

  3. #183
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Salut

    dans le nouveau nom de répertoire
    ou mieux, plutôt que déplacer, renommer le répertoire avec le nom modifié.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #184
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour ProgElect

    Merci pour ton idée

    Bonne journée

  5. #185
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    L'idée de renommer le répertoire est bonne, mais le problème c'est que j'utilise la valeur du nom de l'astuce pour créer mon répertoire donc si je modifie le nom je ne sais pas récupérer l'ancien nom pour le renommer.

    Si vous avez une autre idée ou une astuce pour récupérer l'ancien nom avant l'enregistrement

    Bonne soirée

  6. #186
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonsoir Rezolu,

    Concernant la modification du nom et du type, le problème si on change les informations j'aurais un problème avec mes fichiers et images car l'emplacement du répertoire de ceux-ci est défini par le type et le nom.
    Peut-être dois-tu modifier ton organisation, du moins celles des noms de dossiers, car si tu ne permets pas ces modifications, reprenant mon exemple de ce matin, si tu te trompes de nom ou de type, la seule solution qui te restera sera de "tout" ré-encoder (et c'est du boulot puisque tu ne veux pas d'ajout si les zones de textes ne sont pas vidées) et de supprimer l'enregistrement erroné.

    Pour ce qui du changement du nom d'un dossier, c'est simple (MOVE) (cf. mon pdf du 2/1). Et s'il s'agit de la copie vers une autre unité de disque, il y a une procédure récursive dans le pdf, elle devrait fonctionner.

    Pour ta question " ... mon répertoire donc si je modifie le nom je ne sais pas récupérer l'ancien nom pour le renommer ...", tu peux conserver tout ce que tu veux dans une variable String, le temps de faire les "déménagements".

    j'espère que ceci te donnera des idées ...

  7. #187
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Je ne suis pas vb.netsiste

    Mais l'algo est le même quelque soit le langage utilisé.
    A un moment donné, tu proposes un renommage du nom de l'astuce, donc juste avant ce moment précis tu retiens dans une variable le nom à modifier, et au moment de valider le renommage, sous VBScript par exemple on fait comme cela,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub RenameDossier(OldDossierName, NewDossierName)
            Dim objFSO
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            objFSO.MoveFolder OldDossierName,NewDossierName
            Set objFSO = Nothing
    End sub
     
    Dim NameOldAstuce
    NameOldAstuce = "NameDossierAstuce"
    RenameDossier "C:\MesProgs\En VBScript et HTA\" & NameOldAstuce ,"C:\MesProgs\En VBScript et HTA\DossierRenommer"
    ce qui provoque le renommage du dossier de C:\MesProgs\En VBScript et HTA\NameDossierAstuce en C:\MesProgs\En VBScript et HTA\DossierRenommer.

    Si sa peu te servir ...
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  8. #188
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour Phil Rob

    J'ai essayé le code suivant pour récupérer l'ancienne valeur du nom de l'astuce :

    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
     
    '**** Récuper ancien nom astuce
     Dim NameOldAstuce As String
     NameOldAstuce = TB_NomAstuce.Text
     
      IdAstuceEnCours = MesAstuces.Tables(NomTableAstuces).Rows(Me.BindingContext(MesAstuces.Tables(NomTableAstuces)).Position).Item("IdAstuce")
            If ModifierAstuce(IdAstuceEnCours, CB_Type.SelectedValue, TB_NomAstuce.Text, TB_DescripAstuce.Text, RTBCode.Text, RTB_NoteAstuce.Text, RTB_RemAstuce.Text, RTB_CommentAstuce.Text, TB_LienAstuce.Text) Then
                MesAstuces.Tables(NomTableAstuces).AcceptChanges()  ' provoque la màj des composants liés 
     
                Dim path As String = My.Settings.APP_PATH & "\Astuces\Fichier\" & CB_Type.Text & "\" & TB_NomAstuce.Text & "\" 'Crée le repertoire avec le champ Rubrique
     
                If Directory.Exists(path) Then 'vérifie l’existence du répertoire
                    'Si le répertoire existe il ne fait rien
                Else 'Si le répertoire n'existe pas, il le créer
     
                    Directory.CreateDirectory(path)
                End If
     
                Directory.Move(NameOldAstuce, path)
     
            End If
    Mais il ne reprend pas l'ancienne valeur, pourrais-tu me dire la bonne méthode pour garder l'ancienne valeur.

    Merci

  9. #189
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonsoir Rezolu,

    Je crois que tu ne places pas ton code au bon endroit.
    Je te propose de déclarer la variable en tête du Form (variable globale) de sorte qu'elle soit accessible partout dans le code (donc aussi mà où tu en auras besoin).
    Quand à l'affecter avec le nom de l'astuce avant modification, je le ferais toute de suite après avoir "déverrouillé l'accès aux modifs (le fameux cadena /D).
    C'est au moment d'enregistrer les modifications que tu compareras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If NameOldAstuce = TB_NomAstuce.Text Then 
    ' il n'y a pas eu modification du nom
    Else
     ' il y a eu modification du nom
    End If
    ...

  10. #190
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour Phil Rob

    Petit retour sur le projet, voici les dernières modifications apportées :

    - Comme tu me la suggéré, j'ai placé les bouton dans des groupbox
    - Modification des icônes des cadenas

    - Possibilité de modifier le nom de l'astuce, au changement de celui-ci le nom du répertoire ou se trouve les fichier est renommer avec le nouveau nom de l'astuce.
    - Idem pour le type, quand on modifie le type le répertoire de l'astuce est déplacé vers la bonne rubrique du type



    Je joint le projet pour voir si mon code te parais convenable.

    Bonne journée
    Fichiers attachés Fichiers attachés

  11. #191
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour Rezolu,

    Tu t'exposes encore à des suggestions de modifs ...

    J'ai chargé ton projet et j'y chercherai "des puces" dès que possible.

    Bon après-midi,


  12. #192
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour Rezolu,

    La modification du nom de l’astuce semble bien être fonctionnelle. Par contre, le changement du type de l’astuce provoque une erreur à l’exécution. Après un rapide examen de la procédure Bp_modifier_Astuce_Click, je pense que tu as oublié de terminer cette partie. Les codes nécessaires sont presqu’en place (en commentaire), ils ne devraient pas être très différents de ceux qui permettent la modification du nom.

    Une suggestion, pour améliorer la lisibilité de ton code, séparer les « grosses » tâches selon leur « métier ». Tu as un exemple dans la procédure BAjouterFichier_Click(… ) du projet de test que je t’ai envoyé.
    J’explique …
    Quand vient le moment d’enregistrer un fichier, l'utilisateur appelle l’équipe spécialisée dans l’organisation de ce travail :
    BAjouterFichier_Click(… )
    Cette équipe vérifie que les conditions sont réunies pour ce travail :
    DonneesPossiblesFichierOuImage(… )
    Quand le travail peut effectivement être réalisé, l’équipe prépare le matériel nécessaire :
    Affectation des variables, création du DTR, remise en état du DataSet
    Tout est prêt, il faut appeler l’équipe spécialisée pour ce type d’ajout dans la DB (métier DB) :
    AjouterFichier(NouvelId, DTR)
    Quand cette équipe effectué cet ajout, elle en rend compte :
    If AjouterFichier(… ) Then …
    Si tout s’est bien passé, l’équipe spécialisée dans l’organisation d’ajout fichier doit encore effectuer quelques tâches, dont mettre à jour le DataSet et appeler l’équipe spécialisée pour les opérations sur les fichiers et dossiers en mémoire de masse (métier mémoire de masse) :
    ‘Ici, appel de la procédure de traitement effectif du fichier en mémoire de masses (non programmé dans mon projet puisque je ne gère pas cette partie de l’application).

    La même démarche peut être utilisée pour les ajouts, modifications et suppressions de fichiers, d’images, de types, d’astuces. Sûrement que certaines procédures pourront servir plusieurs tâches : vérification de la plausibilité des données sert lors des ajouts et lors des modifications, le travail en mémoires de masses est probablement le même (ou presque, à voir …) pour les fichiers et les images, et lors des modifications du nom d’une astuce, ou de son type.

    Bon dimanche ...

  13. #193
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour Phil Rob

    Merci pour tes commentaires, je vais vérifier la partie modifier type.

    Bon dimanche

  14. #194
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Re bonjour Phil Rob

    Voila j'ai modifier le code pour la modification du type, je crois que cette fois c'est la bonne

    Je te laisse tester

    Bon dimanche
    Fichiers attachés Fichiers attachés

  15. #195
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    OK, j'ai chargé le zip, j'espère avoir un peu de temps ce soir ...

  16. #196
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour Rezolu,

    Pas trouvé le temps hier soir …

    Dans le but d’assurer la parité New / Dispose, il serait bien de corriger l’emploi de “MaCommande” comme je te l’ai suggéré précédemment.

    En tête de chaque Form où est utilisée MaCommande, remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim MaCommande As New OleDbCommand
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim MaCommande As OleDbCommand
    Et dans chaque procédure où est utilisée MaCommande, remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        MaCommande = MaConexion.CreateCommand()
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        MaCommande = New OleDbCommand()
        MaCommande.Connection = MaConexion
    Si tu veux améliorer la qualité de ton code (de son écriture), je te suggère d’effectuer la lecture détaillée de la gestion des astuces (le Form FGestAstuces) dans le dernier projet que je t’ai envoyé et de t’interroger sur chaque différence que tu trouveras par rapport à ton code, mieux retravailler ton code en conséquence.

    Pour le reste, je n’ai rien à redire, tout semble bien fonctionner mais c’est à l’utilisation que se révèleront les éventuels petits bugs …

    Un détail encore, il te reste à nettoyer la «Solution » : je crois qu’il y a des fichiers inutiles.

    Si tu as des questions, n’hésite pas.

    Très bonne journée

  17. #197
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2020
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2020
    Messages : 117
    Points : 17
    Points
    17
    Par défaut
    Bonjour Phil Rob

    Encore un tout grand merci pour ton aide et ta patience.

    Bonne journée et rendez-vous au prochain projet

Discussions similaires

  1. [Débutant] Manipuler une base de données Access en C#
    Par jed72 dans le forum C#
    Réponses: 18
    Dernier message: 18/05/2016, 16h51
  2. Réponses: 3
    Dernier message: 05/09/2015, 20h23
  3. Réponses: 0
    Dernier message: 11/11/2014, 18h08
  4. Réponses: 15
    Dernier message: 25/10/2004, 11h50
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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