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 :

Problème : Type de données incompatible dans l'expression du critère.


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème : Type de données incompatible dans l'expression du critère.
    Bonjour à tous !

    Voilà, je réalise une application où je dois remplir une base access à partir d'une feuille excel qui est composée de chaines et d'entiers.
    Les données sont d'abord mises dans un DataGridView (ici pas de problème) avant d'être importer dans ma table.
    Cependant j'ai une erreur qui est générée lors de l'execution:
    'Type de données incompatible dans l'expression du critère'.
    J'ai remarqué que si je typais les champs de ma table en 'Texte' aucun problème mais après ça complique pour travailler sur les champs numérique

    Voici le code pour l'importation dans la table

    Code : 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
     
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
     
                Dim cmd As OleDb.OleDbCommand
     
                Dim req As String
                req = "insert into [" & nomTable & "] values(""" & DataGridView1.Rows(i).Cells(0).Value
     
                For j As Integer = 1 To nbMax
                    req = req & """,""" & DataGridView1.Rows(i).Cells(j).Value
     
                Next
                req = req & """)"
                cmd = New OleDb.OleDbCommand(req, connAc)
                cmd.ExecuteNonQuery()
            Next
     
            MsgBox("Importation réussie dans " & nomTable)
    La table se remplit bien mais l'erreur est générée sur la dernier ligne...

    Auriez-vous une idée sur comment résoudre ce problème car ça me bloque dans l'avancée du projet ??
    Merci d'avance et bonne journée à vous !

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Le délimiteur de string en access est l'apostrophe et pas les guillemets il me semble.

    => Dans ta requête, remplace les guillemets par des apostrophes.
    Kropernic

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour la réponse !

    L'erreur n'est plus générée mais ça en a provoqué une autre :
    "Mise entre crochets non valide du nom" pour le nom de la table...

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Mouarf, je n'avais encore jamais vu cette erreur ^^.

    Ton nom de table contient-il des caractères normalement interdit ?

    Si non, enlève les crochets. Si oui, va falloir demander à quelqu'un d'autre que moi (google?).

    Griftou.
    Kropernic

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    C'est bon j'ai trouvé la solution.
    Comme je passe 'nomTable' en paramètre il suffisait d'enlever les crochets et de les directement les mettre autour du nom
    (je sais pas si c'est très clair....)

    En tout cas encore merci de l'aide !

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

Discussions similaires

  1. Requête: type de donnée incompatible dans l'expression du critère
    Par abambad dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2007, 15h48
  2. Réponses: 5
    Dernier message: 31/08/2007, 13h01
  3. Réponses: 8
    Dernier message: 20/06/2007, 14h38
  4. Réponses: 7
    Dernier message: 22/08/2006, 17h10
  5. Réponses: 3
    Dernier message: 22/05/2006, 19h23

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