Partage
  • Partager sur Facebook
  • Partager sur Twitter

developpement d'une application

ajouter, modifier, supprimer dans une base access via vb.net

26 septembre 2012 à 14:21:03

Chers amis bonsoir. Je suis un novice en développement. Mais j'ai choisi de me mettre au vb.net (visual studio 2010) en vue de développer une application qui gère une base de données. (Ajouter, modifier et supprimer )Ma base de données est en access et comporte sept (7) tables. (STAGIAIRE, DIPLÔME, DEPARTEMENT STRUCTURE, PROGRAMME, ANNEE et MODIFICATION) J'ai déjà créé le formulaire qui me permettra d'enregistrer les données dans la base. Mais je ne sais pas comment ecrire le code. Surtout la requête sql pouvant favoriser les chose car ils s'agit des informations à enregistrer dans plusieurs tables de ma base de données via le formulaire. Je vous montre le formulaire et le code et le code que j'ai déjà écrit. Surement que quelqu'un pourra m'aider. Merci d'avance à vous tous

<image>

</image>

Imports System.Data.OleDb

Public Class Enregistrement_stagiaire

    Private Sub Label9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.Click

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles enregistrer.Click
        parametreconnexion()
        'je sais pas trop comment procéder pour l'insertion des données
        Dim enregistrement As String = "insert into "
        Dim commande_enregistrement As OleDbCommand(enregistrement, connexion_alabase)
        connexion_alabase.open()
        commande_enregistrement.ExecuteNonQuery()
        connexion_alabase.close()
        MsgBox("Le stagiaire a été enregistré avec succès ", MsgBoxStyle.Information, "Enregistrement")
    End Sub

    

End Class
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2012 à 14:24:02

Bonjour,

Si tu dois faire des insertions dans plusieurs tables, je pense que tu devrais créer une requête INSERT différente pour chaque table et les exécuter les unes après les autres.

Sinon tu utilise quel SGBD ?
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2012 à 16:21:44

Bonjour bonpasteur,

Ce n'est pas ta question mais c'est ma réponse (comme disait feu Georges), car en faisant ainsi tu es à la limite de la programmation.
Tu aurais pu faire la même chose avec Excel, ou Acess et du vbA. Autrement dit tu ne vas pas apprendre grand chose en faisant ainsi, tu sautes la gestion des chaines, la gestion des fichiers.


Tu auras quelque chose qui fonctionne mais tu ne sauras rien de plus...


Alors que si tu avais programmé des fichiers de texte, géré des chaînes, ç'aurait été bien plus long certes, mais tu aurais appris deux éléments fondamentaux de la programmation, et qu'on ne peut réellement sauter de la sorte.

A toi de voir, tu es le chef ; je trouvais simplement primordial de te dire qu'en commençant ainsi, c'est davantage du paramétrage que de la programmation.

  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2012 à 17:22:13

Merci à vous pour vos approche de solution.

@ Jordjeje: J'utilise une base de données access. Je mettrai en pratique tes conseils et je ne manquerai pas de te tenir informé. Merci

@EhJoe: Merci bcp pour tes conseils que je comprend parfaitement. Mais pour le moment je suis entrain de me lancer un défi qui est: comment développer une application en vb avec comme base de données access. Dès que je finirai mon application, je reviendrai sur les autres bases qui pour le moment ne sont pas très très important pour l'objectif que je me suis fixé. Merci beaucoup et à bientôt
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2012 à 22:55:27

votre requete manque le reste de syntaxe INSERT INTO nom_table(les attribues) VALUES les_données c'est simples voici un exemple ;
requete="INSERT INTO Client (NumCl, NomCl, AdresseCl, CodePost, Ville, Tél) VALUES(1,"Delacroix", "45, rue Royal", 75008, "Paris", 43151678);"
  • Partager sur Facebook
  • Partager sur Twitter
27 septembre 2012 à 18:49:47

Bonsoir J2EEMEN,

Merci pour votre requête. Mais moi je veux introduire les données via un formulaire car je suis entrain de faire une application WIDOWSFORM et non console. Si vous pouvez m'aider pour cette requête, çà me fera très plaisir exemple de table: STAGIAIRE(non, prenom, sexe, age, contact,diplome).

A bientôt
  • Partager sur Facebook
  • Partager sur Twitter
28 septembre 2012 à 12:58:39

Donne le code de ce que tu as déjà fais pour l'insertion des données via ton formulaire en utilisant INSERT INTO VALUES.........
Sinon personne ne pourra t'aider. Merci
  • Partager sur Facebook
  • Partager sur Twitter
28 septembre 2012 à 17:27:56

Chers voici mon code. Mais quand je l'exécute et que j'entre les données via le formulaire, J'ai la reponse d'erreur suivante/ Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination. J'ai vérifié les différnts champs de ma base de données et j'ai constaté que tout est conforme. Je ne sais donc pas d'où vient cette erreur. Si quelqu'un peut donc m'aider, çà me fera très plaisir. Merci

Imports System.Data.OleDb

Public Class Enregistrement_stagiaire

    Private Sub Label9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.Click

    End Sub

    Private Sub enregistrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles enregistrer.Click
        parametreconnexion()
        'je sais pas trop comment procéder pour l'insertion des données
        Dim ajout As String = "insert into stagiaire values(" & numero.Text & ",'" & num_an.Text & "','" & num_ci.Text & "','" & nom.Text & "','" & prenom.Text & "','" & sexe.Text & "','" & contact.Text & "')"
        Dim commande_enregistrement As New OleDbCommand(ajout, connexion_alabase)
        connexion_alabase.Open()
        commande_enregistrement.ExecuteNonQuery()
        connexion_alabase.Close()
        MsgBox("Le stagiaire a été enregistré avec succès ", MsgBoxStyle.Information, "Enregistrement")
    End Sub

    


    Private Sub annuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles annuler.Click
        Me.Close()
    End Sub
End Class
  • Partager sur Facebook
  • Partager sur Twitter
28 septembre 2012 à 18:17:29

Salut !

Peux-tu nous donner la structure de la table stagiaire de ta base de données ?
  • Partager sur Facebook
  • Partager sur Twitter
28 septembre 2012 à 20:51:50

Voici la structure de ma table: stagiaire(numero, num_ci, num_an, nom, prenom, sexe, contact)
  • Partager sur Facebook
  • Partager sur Twitter
29 septembre 2012 à 18:11:53

As-tu essayé avec la syntaxe INSERT INTO table (champ1, champ2, ...) VALUES (valeur1, valeur2,...) ?
  • Partager sur Facebook
  • Partager sur Twitter
29 septembre 2012 à 20:21:50

Non! mon souci c'est une base de données que je suis entrain de mettre en place qui sera utilisé par même par des néophytes en informatique. Donc il ne s'agira pas d'entrer les valeurs par une requête mais plutôt par un formulaire fait en vb. Si vous pouvez m'aider, çà me fera très plaisir. Merci
  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2012 à 10:25:32

Personne ne peut-il m'aider par ici? J'attend impatiemment votre aide
  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2012 à 10:50:22

Citation

Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination



Il te le dit ton erreur.

Citation

insert into stagiaire values(" & numero.Text & ",'" & num_an.Text & "','" & num_ci.Text & "','" & nom.Text & "','" & prenom.Text & "','" & sexe.Text & "','" & contact.Text & "')"



Il doit y avoir un même nombre de colonne pour les valeurs:
Note tes champs de table dans ta requete:
insert into stagiaire(champ1,champ2,...) values(value1,...)

Le seul champ qui ne doit pas s'y trouvé serait une primary key auto-incrémentée.
  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2012 à 16:45:09

Citation : bonpasteur

Non! mon souci c'est une base de données que je suis entrain de mettre en place qui sera utilisé par même par des néophytes en informatique. Donc il ne s'agira pas d'entrer les valeurs par une requête mais plutôt par un formulaire fait en vb. Si vous pouvez m'aider, çà me fera très plaisir. Merci



L'informatique ce n'est pas magique !

Le formulaire est une chose, certes il permet de collecter les informations, mais pour insérer le contenu en base de données, il faut bien effectuer une action, ici il s'agit d'une requête SQL.

Tu peux commencer par essayer la syntaxe que l'on te donne et dis nous le résultat !
  • Partager sur Facebook
  • Partager sur Twitter
1 octobre 2012 à 18:05:32

L'ordinateur est un gros con, il faut tout lui dire !!!
Déjà, les environnement de programmations aident bien, mais bon, ca peut pas non plus tout faire !
ensuite, moi et le mysql, ca fait 2, donc je peut pas t'aider :p
  • Partager sur Facebook
  • Partager sur Twitter
Any sufficiently advanced technology is indistinguishable from magic.
6 août 2018 à 20:54:29

Dim ajout As String "insert into stagiaire values(" & numero.Text & ",'" & num_an.Text & "','" & num_ci.Text & "','" & nom.Text & "','" & prenom.Text & "','" & sexe.Text & "','" & contact.Text & "')"

salut l'amie qui avait posé la quéstion, le prob avec ta requete c'est le manque du simple cote devant le la clé primaire de la table

Dim ajout As String "insert into stagiaire values('" & numero.Text & "','" & num_an.Text & "','" & num_ci.Text & "','" & nom.Text & "','" & prenom.Text & "','" & sexe.Text & "','" & contact.Text & "')"
ca devrait marcher mon amie
  • Partager sur Facebook
  • Partager sur Twitter
6 août 2018 à 21:36:49

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. Me contacter par MP si besoin.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)