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 :

Inserer une Variable dans une requête SQL (VB 2005/Access97)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut Inserer une Variable dans une requête SQL (VB 2005/Access97)
    Bonjour à tous!!
    Je developpe une application en VB.net pour stocker des données dans une BDD access97, j'utilise un DataSet.
    Mon probléme est celui-ci

    Je voudrais obtenir ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = "SELECT * FROM saisie where Numero = 27 "
    En écrivant cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim var As String = "Numero"
     
    sql = "SELECT * FROM saisie where '" & var & "' = 27 "
    Voici l'érreur qui s'affiche au lancement : "Type de données incompatible dans l'expression du critère."

    Merci d'avance pour votre aide et pour votre attention.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Par défaut
    Ca ne peut pas marcher car ton Where va aller chercher un champ de la table... or toi tu lui demande de chercher une variable, il va pas comprendre

    A la limite essaie de mettre des parenthèses mais je suis pas sur que ça marche mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT * FROM saisie where ('" & var & "' = 27) "

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Tout d'abbord merci pour ta réponse DashRendar!

    Je vois ce que tu veux dire et effectivement ta solution me parrait plus logique que la miene. Mais ça ne fonctionne toujours pas il indique toujours la même erreur. L' idée , la requête n'étant qu'une simple chaine de caractére, ça serai de concaténer tous simplement la chaine (SQL) et la variable (var) j'ai éssayé different "trafic" avec [ " ' . & () ] mais rien ne fonctionne.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Par défaut
    Bin de toute façon jviens de voir que ça ne peut pas marcher car tu compares une chaine de caractères à un entier... Donc forcemment, type de données incompatibles.

    C'est comme si je faisais un truc genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim chaine as string
    Dim chiffre as integer
     
    chiffre = 1
    chaine = "Bonjour" + chiffre
    C'est pas possible quoi
    Pourquoi ne pas rester sur ça ? =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT * FROM saisie where Numero = '27' "
    Sinon, mets 27 entre quotes et rééssaie

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Effectivement comparer une chaine à un entier c 'est po terrible...
    En fait je veux utiliser des variables dans mes requêtes car mon application doit permettre un tri assez vaste a partir de données saisies d'un formulaire (where truk = machin and truk2 = machin2 and...) le nombre de condition dans le WHERE va changer à chaque fois ( de une condition à 7). Donc je vais éssayer de faire une sorte de générateur de requêtes SQL en fonction du nombre de textbox rempli par l'utilisateur. Si je ne fais pas ça je vais devoir prévoir tous les cas de tri avc un nombre infini de if... ==> le code sera trop lourd pour ce qu'il ya a à faire et un peu dégeulasse...

    (j'ai testé le '27' mais il ne trouve pas de resultat alor qu il y en a... )

    Parcontre si t'as d'autre stratégie à a me proposer je suis prenneur

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Par défaut
    Bin désolé mais là à froid j'ai pas d'autres idées qui me viennent en tête En plus j'ai masse de boulot et j'arrive pas à résoudre mes problèmes de programmation XD

    Si j'ai une idée lumineuse qui me traverse l'esprit, je viendrai poster ici

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

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  3. comment inserer la valeur d'une variable dans une table sql
    Par casaoui dans le forum Langage SQL
    Réponses: 7
    Dernier message: 25/01/2008, 15h06
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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