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

Windows Forms Discussion :

[VB.NET][ACCESS] pb de requête INSERT


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut [VB.NET][ACCESS] pb de requête INSERT
    Bonjour

    J'ai soucis avec une requête INSERT multiple. Voici le code, çà sera plus clair.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Force'," & txtForce.Text & ");"
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Constitution'," & txtConstitution.Text & ");"
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Dexterite'," & txtDexterite.Text & ");"
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Intelligence'," & txtIntelligence.Text & ");"
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Sagesse'," & txtSagesse.Text & ");"
            rq = rq & "insert into CARACPERSO (NomPerso,Carac,score) values ('" & txtNomperso.Text & "','Charisme'," & txtCharisme.Text & ");"
            cmdCreatPerso.CommandText = rq
            Try
                cmdCreatPerso.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox("deuxièmle" & ex.Message)
            End Try
    Alors j'ai un message d'erreur qui me parle du point virgule, soit il me dit qu'il y a du code aprés le point virgule, soit il me dit qu'il faut mettre un point virugle (lorsque je les enlève de la RQ).

    Bref, je ne comprends plus rien. Ma base est une ACCESS.

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    1- Il n'y a pas besoin de point virgule apres tes requetes.
    2- tu ne peux executer qu'une seule requete a la fois.

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Donc il faut que je fasse un TRY CATCH pour chaque valeur que je veux insérer ou alors je fais une boucle FOR.

    C'est chiant, j'ai toujours ces 6 valeurs à insérer et elle vient d'une boite de dialogue.

    si c'est bien çà merci de me confimer et je pourrai mettre le flag RESOLU.

    Merci

  4. #4
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Par défaut
    tu peux passer par une boucle c'est facile, mais bon pour moi je veux juste attirer ton attention à une chose c'est que ton code pourra planter quelque part. pour voir si ça plante ou pas essaie d'insérer un text (le nom par exemple) contenant un apostrophe et tu vas voir que même une seule requête ne va pas passer
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci JauB pour ta remarque.
    Elle n'est pas d'atualité dans ce cs précis car tous les contrôle sont fait en amont. La seul zone qui peut contenir une apostrophe est NomPerso et ce n'est pas permis au moment de la création de l'enregistrement.
    Ensuite tous les 6 zone txtTRUC continet des nombres et les autres donée sont fixées dans le code.

    Ce qui me surprend c'est de ne pas pouvoir envoyer 6 instructions d'insert à la suite les unes des autres. D'autant que si une seule pose un soucis il faut que j'élimine les 6 d'un coup car c'est un tout.

    Merci

  6. #6
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Par défaut
    bah je pense que tu dois passer par une transaction et un bloc try catch. dans le catch tu peux annuler la transaction en cas d'erreur du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try
    MyTransact.BeginTransact()
    ......
    MyTransact.Commit()
    catch 
    MyTransact.RollBack()
    end try
    comme ça soit tout le bloc sera executé sinon tout éliminé
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, je vais essayé çà cet aprém mais t'es sur qu'on peu faire une transaction avec une base ACCESS ?

    En tout cas, çà me parait le mieux, j'y avais aps pensé, ben parce que je savais pas qu'on pouvait faire çà avec une base ACCESS.

    @+

  8. #8
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Par défaut
    bah je ne vois pas où est le problème avec ACCESS 8)
    mais c'est à toi de vérifier et préviens moi
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  9. #9
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    bon, ben çà marche du tonerre de dieu.

    L'application est un peu plus complexe que ton exemple, amis l'aide de Visual Studio est trés claire sur le sujet.
    Il faut déclarer pas mal de truc en amont mais dés que l'on mais la main sur l'aide de la Transaction (OLEDB ou SQL) cela devient limpide.

    Merci JauB

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

Discussions similaires

  1. [VB.NET/Access] Problème avec une requête d'insertion
    Par Bladinou dans le forum Accès aux données
    Réponses: 8
    Dernier message: 29/05/2007, 18h06
  2. [VB.Net][Access] Problème de requête d'insertion
    Par xG-Hannibal dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/07/2006, 11h57
  3. [ADO.Net][OleDb] Pourquoi ma requête access ne fonctionne pas?
    Par Bapt.ice dans le forum Accès aux données
    Réponses: 6
    Dernier message: 05/05/2006, 17h19
  4. [VB.NET]requête insert
    Par olivier57b dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/04/2006, 18h31
  5. Réponses: 3
    Dernier message: 05/03/2006, 23h38

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