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. #21
    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,

    Pour cela plus de problème, sauf un autre problème. C'est que @? ne fait plus référence à mes 2 textbox.

    Comment mettre les variables de mes 2 textbox svp?

    Cordialement,

    Vincent

  2. #22
    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
    Ben si tu regardes tout le fil de cette discussion tu ne les avais jamais mis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?"
    With ole.Parameters
      .Add(New OleDbParameter("?", OleDbType.Integer, 4)).value = Integer.Parse(txtMatricule.text) ' correspond au parametre Matricule Like ? 
      .Add(New OleDbParameter("?", OleDbType.Integer, 4)).value = Integer.Parse(txtAnnee.text) ' correspond au parametre Annee LIKE ?
    End With
    met bien les ? comme présenté 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.

  3. #23
    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,

    Merci pour tes réponses et pour toute la patience de chacun d'entre vous.

    Mais j'ai une erreur sur "AdapTUSER.ExecuteNonQuery()"

    Le message est " Aucune valeur donnée pour un ou plusieurs des paramètres requis."

    Pourtant j'ai bien ces données dans la bdd.

    Voici le code actuel:

    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
    marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?"
     
                With ole.Parameters
                    .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox1.Text) ' correspond au parametre Matricule Like ? 
                    .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox2.Text) ' correspond au parametre Annee LIKE ?
     
                End With
     
                'definition du DataAdapter
                AdapTUSER = New OleDbCommand(marequete, Connection)
     
     
                ' rempli le dataset 
                AdapTUSER.Connection.Open()
                AdapTUSER.ExecuteNonQuery()
                AdapTUSER.Connection.Close()

    Cordialement,

    Vincent.

  4. #24
    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'ai été inattentif (désolé, je passe parfois rapidement en revu le sujet), avec le like il faut mettre le joker % de chaque coté pour la recherche (suivant l'année d'access ce joker peut être différent, mais je ne me souviens plus des conditions, il ya un sujet dessus en recherchant on doit pouvoir le retrouver)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?"
    With ole.Parameters
      .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).value = "%" & Me.txtMatricule.Text & "%" ' correspond au parametre Matricule Like ? 
      .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).value = "%" & Me.txtAnnee.Text & "%" ' correspond au parametre Annee LIKE ?
    End With
    .

    Mais pour revenir à l'erreur
    Citation Envoyé par vins86 Voir le message
    Mais j'ai une erreur sur "AdapTUSER.ExecuteNonQuery()"

    Le message est " Aucune valeur donnée pour un ou plusieurs des paramètres requis."

    Pourtant j'ai bien ces données dans la bdd.

    Voici le code actuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                With ole.Parameters
                    .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox1.Text) ' correspond au parametre Matricule Like ? 
                    .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox2.Text) ' correspond au parametre Annee LIKE ?
                End With
     
                'definition du DataAdapter
                AdapTUSER = New OleDbCommand(marequete, Connection)
    C'est normal "ole" et "AdapTUSER" n'ont rien à voir. (et le split ?)
    Essaye de comprendre ce que tu fais, quelle est la logique d'enchaînement des opérations. Et pourquoi tu as ce message (très explicite)

    [Edit]Bon j'ai revu la discussion
    Regarde ton premier post, à quoi sert AdapTUSER.ExecuteNonQuery() ?
    Que veux-tu faire ? une interrogation ou une mise à jour ?
    A mon avis tu devrais relire un tuto pour éclaircir le fonctionnement.
    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.

  5. #25
    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,

    Merci pour les réponses.

    Ce que je souhaite. C'est pour lire une base de données.

    J'ai toujours une erreur pour executenonquery()

    J'ai essayé de comprendre d'où cela vient.

    Je remet le code:

    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
    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 New OleDbCommand
        'Dim parameter As OleDbParameter
     
     
        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;"
     
                '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 ? And Annee LIKE ?"
            With ole.Parameters
                .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).Value = "%" & Me.TextBox1.Text & "%" ' correspond au parametre Matricule Like ? 
                .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).Value = "%" & Me.TextBox2.Text & "%" ' correspond au parametre Annee LIKE ?
            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
    Cordialement,

    Vincent.

  6. #26
    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 rv26t Voir le message
    C'est normal "ole" et "AdapTUSER" n'ont rien à voir.
    Essaye de comprendre ce que tu fais, quelle est la logique d'enchaînement des opérations. Et pourquoi tu as ce message (très explicite)
    Réfléchi pourquoi.

    Citation Envoyé par rv26t Voir le message
    à quoi sert AdapTUSER.ExecuteNonQuery() ?
    Vois aussi ce point

    Ensuite même si tu corriges les deux points au dessus, tu ne fais rien de AdapTUSER.

    Quel est le lien avec la fin du code ?
    Reprend un tuto parceque la tu ne sais absolument pas ce qui se passe et c'est pour cela que tu n'avances pas.
    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.

  7. #27
    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
    Résumons
    Citation Envoyé par rv26t Voir le message
    C'est normal "ole" et "AdapTUSER" n'ont rien à voir.
    Tu as créé 2 variables indépendante, dans une tu mets les paramètres, dans l'autre la requête et la commande d'exécution.
    Ce sont 2 variables indépendante qui ne se connaissent pas.

    Citation Envoyé par rv26t Voir le message
    à quoi sert AdapTUSER.ExecuteNonQuery() ?
    Réponse : à faire un update, un insert ou un delete.

    Citation Envoyé par vins86 Voir le message
    Le message est " Aucune valeur donnée pour un ou plusieurs des paramètres requis."
    Vérifie les noms des colonnes dans ta base de données avec ceux de ta requête.


    Exemple :
    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
        Public Sub LectureProd(ByVal Matricule As String, ByVal Annee As String)
            Try
                Using cnn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Personnes\Personnes.accdb")
                    Using cmd As New OleDb.OleDbCommand("select Mois, CU_h, RDV, Pourcentage_Production, Prime from Prod where Matricule like ? And [Annee] like ?", cnn)
                        cmd.Parameters.Add(New OleDb.OleDbParameter("Matricule", OleDb.OleDbType.VarChar, 4)).Value = "%" & Matricule & "%"
                        cmd.Parameters.Add(New OleDb.OleDbParameter("Annee", OleDb.OleDbType.VarChar, 4)).Value = "%" & Annee & "%"
                        cnn.Open()
                        Using dr As OleDb.OleDbDataReader = cmd.ExecuteReader()
                            While dr.Read
                                MessageBox.Show(String.Format(" Mois: {0} ; prime: {1} ; rdv: {2} ; % {3}", dr("mois"), dr("Prime"), dr("RDV"), dr("Pourcentage_Production")))
                            End While
                        End Using
                    End Using
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    J'ai "OleDb." parceque je n'ai pas fait l'imports
    Les paramètres pourraient être rajouté ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        cmd.Parameters.AddWithValue("?", "%" & Matricule & "%")
                        cmd.Parameters.AddWithValue("?", "%" & Annee & "%")
    messagebox résultant
    Images attachées Images attachées  
    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.

  8. #28
    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 rv26t,

    Merci beaucoup. Je commence à comprendre le principe. Tout est bien alimenté dans la datagrid.

    Merci vraiment pour le temps passé et pour l'aide que vous m'avez apporté. En plus tout fonctionne parfaitement.

    Cordialement,

    Vincent.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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