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 :

modifier,supprimer,actualiser des enregistrements access via visual basic


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut modifier,supprimer,actualiser des enregistrements access via visual basic
    Salut à tous
    J`arrive maintenant a enregistrer des donnees dans une table access via visual basic 2008. J`ai procede comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     'creátion d'une nouvelle ligne avec les données des textbox
            Dim strSQL = "insert into Televe(nom,prenom,niveau,telephone) values ('" & Nom_txt.Text & "','" & Prenom_txt.Text & "','" & Niveau_txt.Text & "','" & Telephone_txt.Text & "')"
            MessageBox.Show("Les informations sont biens enregistrees")
            Dim monDA As New OleDbCommand(strSQL, cnx)
            monDA.ExecuteScalar()
    Mais quand j`ai voulu enregistrer une donnee de format date, ca marche pas avec textbox alors j`ai essaye avec datetimepicker mais ca marche pas encore.
    J`aimerai bien qu`on me donne un peu de coup de poing sur ce coup la,^_^'
    Aussi,j`aimerai bien supprimer et modifier des enregistrements mais je sais pas comment s`y prendre
    J`ai un peu essaye mais on m`affiche toujours l`erreur suivante:
    erreur syntaxe(operateur manquante)
    La mienne est comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strSQL = "DELETE Televe WHERE nom = "& textbox1.Text &" OR numero_matricule = " & textbox2.Text & ""
            Dim monDA As New OleDbCommand(strSQL, cnx)
            monDA.ExecuteScalar()
    En attende de votre aide.

    cordialement,

    Rica

  2. #2
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    Tu trouveras plus d'infos ici page 1044

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    pour insert update et delete, il faut utiliser executenonquery
    pour un select il faut utiliser executereader et récupérer la variable de retour
    executescalar retourne la 1ère colonne de la 1ère ligne, donc peut servir avec un select et une seule valeur à rapatrier

    ensuite pour la requete, il faut éviter de concaténer les valeurs des controles, les string et les dates
    les nombre je suis pas contre

    les string ca peut planter si ton string contient un apostrophe
    les date c'est la merde c'est jamais dans le même sens
    pour ces cas il existe des DbParameters
    et ca a aussi l'avantage de rendre lisible le commandtext

    voici un exemple avec une syntaxe prise pour sql server, mais qui devrait fonctionner sur access je pense

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    moncommand.commandtext = "SELECT champ1, champ2 FROM Table WHERE ChampStr = @valeurStr AND ChampDate = @valeurDate"
    moncommand.parameters.Add("@valeurStr",varchar).value = montextbox.text
    moncommand.parameters.Add("@valeurDate",datetime).value = mondatetimepicker.value


    pour access les paramètres doivent etre créé dans l'ordre où ils sont dans la requete
    et bien sur ca fonctionne aussi pour les insert, update ou delete

    tu peux aussi apprendre le sql, qui est langage comment à beaucoup de bases de données dont access
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut
    Ah....j`ai un peu rectifier le code pour supprimer un enregistrement,mais c`est la galère,tous les enregistrements sont supprimés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Supprimer.Click
            'Supprimer un enregistrement
            Dim strSQL = "DELETE FROM Televe WHERE ('nom = " & TextBox1.Text & "')"
            MessageBox.Show("Les informations sont biens supprimees")
            Dim monDA As New OleDbCommand(strSQL, cnx)
            monDA.ExecuteScalar()
        End Sub

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    as tu lu ce que j'ai pris la peine d'écrire ??
    executescalar sert à rapatrier des données, un delete ne retourne pas de données

    et il ne faut pas mettre le champ de condition entre quote !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Aide sur importation données Excel dans Access Via Visual Basic 6.0
    Par moirs555 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 19/08/2011, 09h02
  2. Acceder à une base access via visual C++
    Par faceo75 dans le forum MFC
    Réponses: 4
    Dernier message: 07/02/2007, 16h17
  3. Réponses: 3
    Dernier message: 13/06/2006, 14h16
  4. Chargement des drivers access via ODBC sous Qt 3
    Par Higestromm dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/01/2006, 14h30
  5. Transmettre des données à un executable via visual basic
    Par kantelise dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/12/2005, 08h59

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