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 :

Fonction insertion d'enregistrement,suppression


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut Fonction insertion d'enregistrement,suppression
    Bonjour à tous,

    Je voudrais demander quel est le code vba access pour réaliser des fontions enregistrement ou suppression qui peut injecter des enregistrement dans des tables dont les nombres de champs est variable.
    C'est à dire que la fonction peut insérer des enregistrements tantôt dans des tables avec deux champs, tantôt avec trois champs ou plus

    Merci d'avance

    Alijaona

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Bonjour,

    Pour la suppression le nombre de champs n'a aucune importance puisque tu supprime un enregistrement.

    Une requête sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE * FROM Table [Where Condition];
    En VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim rst as recordset
    set rst = currentdb.openrecordset("Table",dbopendynaset)
    rst.findfirst [condition]
    if not rst.nomatch then
       rst.delete
    ...
    Pour plus d'info voir le tuto sur DAO.

    Pour l'insertion la requete sql peut prendre plusieurs formes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO matable (champ1,champ2,...) Values (10,"valeur texte",...)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO matable (champ1,champ2,...) Select (champ1,champ2...)
    En VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim rst as recordset
    set rst = currentdb.openrecordset("Table",dbopendynaset)
    rst.addnew
    rst.fields(0) = "valeur texte"
    rst.fields(1) = 10
    ...
    rst.update
    ...
    Cordialement
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut fonction enregistrement pour champ variable
    Merci pour ce petit rappel loufab,

    Cependant, le but c'est de créer une foction du genre

    enregistrer("nom de latable","champ1","champ2"...)

    que 'lon pourrais utiliser sur des formulaires
    afin d'insérer des enregistrements dans des tables dont les nombre champs sont variable.

    on peut utiliser par exemple la même fonction pour insérer des enregistrements à la fois dans la table
    client dont les champs sont code_client,nom_client (2 champs)
    et la table
    commande dont les champs sont code_commande,date_commande,code_client_article_quantite (3 champs)

    Nb:les types de champs sont également variable :nombre ou caractère

    Merci d'avance

    Alijaona

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 137
    Par défaut
    Le plus simple est d'utiliser la technique à base de requête SQL, que tu peux construire dynamiquement dans VBA.

    Regarde les différents tutos sur le sujet :
    Débogage de requete sql en VBA.
    l'un des tutos sur les modules de recherche qui sont fait à partir de requête dynamique.

    Pour passer des arguments tu peux utiliser des tableaux à 1 dimension

    Nom du champ, type, Valeur

    Allez lance toi !

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Insertion d'enregistrement dans un fichier XML
    Par davestar dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/04/2006, 17h22
  2. fonction insert (liste dbl chainée)
    Par Yoshio dans le forum C
    Réponses: 6
    Dernier message: 18/02/2006, 15h35
  3. Réponses: 1
    Dernier message: 30/11/2005, 13h44
  4. insertion d'enregistrement avec MySQL Administrator
    Par Lady_jade dans le forum Outils
    Réponses: 1
    Dernier message: 08/09/2005, 16h04
  5. [DW MX2004] formulaire d'insertion d'enregistrement
    Par jiraya_sama dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 30/12/2004, 17h54

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