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 :

Requêtes paramétrées access vers visual basic express


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut Requêtes paramétrées access vers visual basic express
    Bonsoir tout le monde,

    Je viens vers vous pour connaitre mes quelques erreurs sur la récupération de la chaine de connexion à la base de données Access sur Visual basic express.

    Après quelques aides sur le chat. Je viens vers vous.

    Voici mon code actuellement:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
    Imports System.Data.SqlClient
     
    Public Class Form1
     
        'les variables
        Dim Connection As New OleDbConnection
        Dim DtSet As New DataSet()
        Dim AdapTUSER As OleDbCommand
        Dim marequete As String
        Dim ole As OleDbCommand
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Matable As DataTable
     
     
            DtSet.Tables.Clear()
            'on parametre la chaine de connection pour la base de donnée testbdd.mdb
            Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\BDD_test.accdb;"
     
            'on ouvre la connection
            Connection.Open()
            If Connection.State = ConnectionState.Open Then
                Label1.Text = "connection ok"
            End If
     
            'ma requete
            'sql = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like '%" & TextBox1.Text & "' And Annee Like '%" & TextBox2.Text & "' "
            marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like @param1 And Annee LIKE @param2"
     
            With ole.Parameters
                .Add(New OleDbParameter("@param1", SqlDbType.Int, 4))
                .Add(New OleDbParameter("@param2", SqlDbType.Int, 4))
            End With
     
            'definition du DataAdapter
            AdapTUSER = New OleDbCommand(marequete, Connection)
     
     
            ' rempli le dataset 
            AdapTUSER.Connection.Open()
            AdapTUSER.ExecuteNonQuery()
            AdapTUSER.Connection.Close
     
            'on ferme la connection 
            Connection.Close()
     
            'ajoute un datagrid sur ta form et ce code va relier ta table USER au datagrid qui va t'afficher les donnée
            'affichage des données dans le datagrid
     
     
            Matable = DtSet.Tables("R_Altitude_Prod")
            With DataGrid1
                'alimentation de matable
                .DataSource = Matable
                'Ligne paire en blanc
                .RowsDefaultCellStyle.BackColor = Color.White
                'ligne impaire en bleu claire
                .AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue
                'Empeche la saisie dans les cellules
                .EditMode = DataGridViewEditMode.EditProgrammatically
                'masquer l'entete de sélection
                .RowHeadersVisible = False
     
            End With
        End Sub
     
    End Class
    J'ai un message me disant: "Mot clé non pris en charge : 'provider'."

    Merci d'avance,

    Vincent.

  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
    Hello,

    Tu auras toutes les infos dont tu as besoin ici.
    Kropernic

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Bonjour Kropernic,

    Merci pour ta réponse, mais maintenant j'ai une erreur pour parameters:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            With ole.Parameters
                .Add(New OleDbParameter("@param1", SqlDbType.Int, 4))
                .Add(New OleDbParameter("@param2", SqlDbType.Int, 4))
            End with
    Merci d'avance,

    Cordialement,

    Vincent

  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
    C'est bien, ça veut dire qu'on progresse


    Par contre, sans le message d'erreur, ça va être compliqué.

    Pense à TOUJOURS donné le message d'erreur que tu reçois quand tu viens demander de l'aide.
    Kropernic

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par vins86 Voir le message
    mais maintenant j'ai une erreur pour parameters:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            With ole.Parameters
                .Add(New OleDbParameter("@param1", SqlDbType.Int, 4))
                .Add(New OleDbParameter("@param2", SqlDbType.Int, 4))
            End with
    Ca c'est du copier/coller. (modifié pour moitié)
    OleDbParameter=> access ; SqlDbType => SQLServer, il ne doit pas aimer le mélange
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    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
    Ahah, bien vu Hervé ^^.

    Perso sans message d'erreur, je ne n'avais pas été plus loin.

    Sinon attention que pour access, les noms des paramètres ne sont pas pris en compte. C'est l'ordre de leur ajout dans l'objet command qui est important.
    Kropernic

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Bonjour et merci pour vos réponses.

    J'avais même pas vu cette erreur. Pas bien..

    Par contre je ne comprend pas:

    les noms des paramètres ne sont pas pris en compte. C'est l'ordre de leur ajout dans l'objet command qui est important. .

    Merci d'avance.

    Cordialement,

    Vincent

  8. #8
    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
    C'est quel mot que tu n'as pas compris ? Ma phrase me semble pourtant claire ^^
    Kropernic

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Tu peux mettre n'importe quel noms. Dans les add, access prendra le premier paramètre pour matricule (1er add) et le deuxième paramètre pour Annee (2ème ADD) puisqu'ils apparaîssent dans cet ordre dans la requête.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Merci rv26t et Kropernic

    Du coup j'ai compris ce que tu voulais dire Kropernic.

    Par contre, j'ai toujours une erreur pour cette partie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            With ole.Parameters
                .Add(New OleDbParameter("@?", OleDbType.Int, 4))
                .Add(New OleDbParameter("@?", OleDbType.Int, 4))
            End With
    message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     'int' n'est pas un membre de 'system.data.oledb.oledbtype'
    J'ai essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            With ole.Parameters
                .Add(New OleDbParameter("@?", OleDbType.Char))
                .Add(New OleDbParameter("@?", OleDbType.Char))
            End With
    Et j'obtiens:

    message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La référence d'objet n'est pas définie à une instance d'un objet pour ole.parameter
    Merci d'avance.

    Cordialement,

    Vincent

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par vins86 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                .Add(New OleDbParameter("@?", OleDbType.Int, 4))
    Le Int tu l'as trouvé ou ? Ah oui, toujours le copié/collé
    L'intellisense propose OleDbType.Integer il faut comprendre à quoi correspondent les paramètres de la méthode et l'utilisation
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Merci mais toujours la même erreur:

    J'ai essayer ceci:



    Code :

    Sélectionner tout - Visualiser dans une fenêtre à part

    1234 With ole.Parameters
    .Add(New OleDbParameter("@?", OleDbType.Char))
    .Add(New OleDbParameter("@?", OleDbType.Char))
    End With Et j'obtiens:

    message d'erreur:

    Code :

    Sélectionner tout - Visualiser dans une fenêtre à part

    La référence d'objet n'est pas définie à une instance d'un objet pour ole.parameterMerci d'avance.

    Cordialement,

    Vincent

  13. #13
    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
    Arrête de jouer à l'apprenti sorcier en mettant du code au hasard et essaie de comprendre ce que tu fais
    Kropernic

  14. #14
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    As tu lu mon post précédant, je t'ai expliqué
    Citation Envoyé par rv26t Voir le message
    Ah oui, toujours le copié/collé
    dans tes paramètres
    Citation Envoyé par vins86 Voir le message
    OleDbType.Int
    dans mes paramètres
    Citation Envoyé par rv26t Voir le message
    OleDbType.Integer
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Bonsoir, Kropernic, rv26t,

    Je viens de me rendre compte que je me suis tromper dans le collage de mon code.
    *
    Actuellement, j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            With ole.Parameters
                .Add(New OleDbParameter("@?", OleDbType.Integer, 4))
                .Add(New OleDbParameter("@?", OleDbType.Integer, 4))
            End With
    Mais j'ai bien ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    L'exception System.NullReferenceException n'a pas été gérée
    La référence d'objet n'est pas définie à une instance d'un objet.
    Cordialement,

    Vincent.

  16. #16
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    J'avais pas regardé le message vu que la syntaxe était fausse
    Citation Envoyé par vins86 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class Form1
     
        'les variables
    '...
        Dim ole As OleDbCommand
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Matable As DataTable
     
          '...
            With ole.Parameters
    '...
    Logique, tu ne l'as pas instancié
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  17. #17
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Et comment faut-il faire pour l'instancié?

    Merci d'avance.

    Cordialement,

    Vincent.

  18. #18
    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
    Hello,

    Pour créer une instance d'une classe, il faut utiliser le mot-clef "new".

    Cela étant dit et à voir les questions que tu poses, je crois que cela serait vraiment bien que tu prennes le temps de lire un cours sur le langage et la programmation en générale.

    Il y en a un très très très bien en post-it sur ce forum.

    Cela va p-e te paraître une perte de temps mais crois moi, au final, tu seras plus que gagnant.
    Kropernic

  19. #19
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Points : 152
    Points
    152
    Par défaut
    Bonjour Kropernic,

    Merci pour l'information.

    Donc si j'ai bien compris, pour créer une instance de la classe il faut que je fasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ole As new OleDbCommand
    Je vais lire des cours. Pour apprendre les bases.

    Cordialement,

    Vincent.

  20. #20
    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
    Tu as bien compris.
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Access 2007 & Visual Basic Express 2008
    Par Pithonnette dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/07/2008, 14h18
  2. importer requete access vers visual basic
    Par driver dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/03/2007, 19h07
  3. Accès Réseau a une base de données Access par Visual Basic
    Par thegreatbato dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/01/2006, 14h04
  4. Scruter un table Access en Visual Basic
    Par creale10 dans le forum Access
    Réponses: 6
    Dernier message: 02/01/2006, 19h06
  5. [Visual Basic Express 2005]Aide de vb
    Par robert.michel9 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 21/12/2005, 18h53

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