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 :

[Débutant] Affichage de valeurs de champs d'une BD Access via VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut [Débutant] Affichage de valeurs de champs d'une BD Access via VB
    Bonjour à tous,

    Je souhaite écrire le programme suivant :

    Lorsque je clique sur un bouton, le programme ouvre une base de données Access 2007, lit une requête sql et affiche par des MsgBox successives chaque valeur des champs demandés par la requête.

    J'ai donc produit le code suivant :

    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
    19
    20
    Private Sub Command6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command6.Click
     
            'Définition du pilote de connexion
            cnx.Provider = "Microsoft.ACE.OLEDB.12.0"
            'Définition de la chaîne de connexion
            cnx.ConnectionString = "H:\TX\[TX] IHM\Reverse_Engineering_Application.NET\Test.accdb"
            'Ouverture de la base de données
            cnx.Open()
     
            rst.Open("SELECT Test FROM Table_Test", cnx)
     
            'Affichage des valeurs du champ Test
            While Not (rst.EOF)
     
                MsgBox(rst("Test"))
     
                rst.MoveNext()
            End While
     
        End Sub
    Il semblerait que le programme parvient à ouvrir la base mais malheureusement, j'obtient le message d'erreur suivant lors de l'affichage des MsgBox :

    Une exception non gérée du type 'System.ArgumentException' s'est produite dans Microsoft.VisualBasic.dll

    Informations supplémentaires*: L'argument 'Prompt' ne peut pas être converti en type 'String'.


    Pouvez-me m'aider à résoudre ce problème ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Il te dit que les données que tu essayes de passer en titre de ta messageBox ne peuvent pas être converties en chaine de caractères.
    Tu devrait essayer de caster avec Cstr ou peut être vérifier que tes données ne sont pas nulles ...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est quoi cette variable "rst" ?
    Je comprends pas trop ta méthode pour accéder à la base... ça n'a pas l'air d'être de l'ADO.NET en tous cas

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    Oups, désolé, j'ai oublié de préciser les déclarations de variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim cnx As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    @ Totanne : merci du conseil, je vais tester cela.

    @ tomlev : il me semble que si, à moins que je me trompes, je ne connais pas trop, peux-tu préciser ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ah ok... c'est ADODB, pas ADO.NET
    J'imagine que tu as récupéré ce code d'une appli en VB6 ? En .NET il y a une nouvelle architecture d'accès aux bases de données (ADO.NET), pour en savoir plus je t'invite à consulter les tutoriels :
    http://dotnet.developpez.com/cours/?...bnet#sqlservvb

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    En fait c'est en fouillant sur le net que j'avais trouvé des infos sur ADODB, ça me semblait bien.
    Je vais jeté un oeil à ton lien, merci

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    J'ai testé en castant mon champ rst("Test") avec cette modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(CStr(rst("Test")))
    Mais à nouveau, message d'erreur :

    Une exception non gérée du type 'System.InvalidCastException' s'est produite dans Reverse_Engineering_Application.exe

    Informations supplémentaires*: Impossible d'effectuer un cast d'un objet de type 'ADODB.InternalField' en type 'System.String'.


    Une autre idée peut-être?

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    OK, j'ai résolu le problème ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(rst("Test").Value)
    Bonne soirée.

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

Discussions similaires

  1. Changer la valeur d'un champs d'une table acces via vba
    Par gege22mars dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/09/2007, 21h37
  2. Valeurs des champs dans une liste
    Par Sly2k dans le forum Access
    Réponses: 21
    Dernier message: 11/08/2006, 15h15
  3. Réponses: 1
    Dernier message: 19/03/2006, 21h52
  4. [MySQL] Affichage de valeurs par selection dans une table
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/12/2005, 18h04
  5. affichage de TOUS les champs d'une table
    Par babulior dans le forum ASP
    Réponses: 6
    Dernier message: 28/06/2005, 16h33

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