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

Macros et VBA Excel Discussion :

VBA : Création, modification et suppression d'objets personnalisés dans une BDD [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut VBA : Création, modification et suppression d'objets personnalisés dans une BDD
    Bonjour à tous,

    Toujours dans ma quête d'apprentissage du VBA je me pose une question : est il possible de créer un enregistrement dans une base de donnée SQL Server distante à partir d'un objet ? De meme le modifier ou le supprimer ?

    Je m'explique :

    J'ai une classe clsPersonage qui à pour propriété Nom, Vie et Attaque.
    J'ai créé un Userform pour la création de personnage avec 3 textboxs (nom, vie, attaque).

    Une fois le formulaire validé, j'obtiens donc un nouvel objet Perso avec ses 3 propriétés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Perso As New clsPersonnage
    With Perso
      .nom = Me.nom.Value
      .vie = Me.vie.Value
      .attaque = Me.attaque.Value
    End With
    Ma question est : y-a-t'il un moyen simple de sauvegarder cet élément dans ma table "personnage" qui comporte les colonnes "id,nom,vie,attaque" ?
    De même, quel est le meilleur moyen pour rappeler cet enregistrement et l’intégrer dans un objet Personnage afin de réutiliser les différentes méthodes de ma classe ?

    J’espère avoir été assez clair...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code clsPersonnage : 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
     
    Public nom as string,vie as integer,attaque as string,Id as integer,Cn as object
     
    Public Sub Maj()
    Dim rs as object,sql as string 
    If Id<>0 then
    Sql="select * from tablex Where Id=" & Id
    Else
    Sql ="select * from tablex where nom='" & nom &"'"
    End if
    Set rs=cn.execute(sql)
    If rs.eof then Rs.addnew 
     
    Rs!nom=nom
    Rs!vie=vie
    Rs!attaque=attaque
    Rs.update
    Id=Rs!Id
    Rs.close
    Set Rs=Nothing 
    End sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim cn as Object
    Set cn=createobject("adodb.conection")
    Cn.open conxionstingSqlServeur
    Dim Perso As New clsPersonnage
    With Perso
       set .cn=cn
      .nom = Me.nom.Value
      .vie = Me.vie.Value
      .attaque = Me.attaque.Value
      .maj
    End With
    Dernière modification par Invité ; 12/08/2018 à 11h15.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour ton aide Dysorthographie. J'ai adapté ton code est ça marche nickel.

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

Discussions similaires

  1. Stocker une liste d'objets personnalisés dans les settings
    Par laville dans le forum Général Dotnet
    Réponses: 12
    Dernier message: 13/12/2007, 11h14
  2. Création, modification et suppression de contacts Outlook
    Par bulldozer27350 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 12/04/2007, 16h19
  3. Réponses: 2
    Dernier message: 06/04/2007, 21h37
  4. Réponses: 2
    Dernier message: 08/03/2007, 10h50
  5. Réponses: 7
    Dernier message: 29/12/2006, 12h56

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