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 de connexion à Access


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut Problème de connexion à Access
    Bonjour,
    Lors de l'exécution de mon application,elle bloque et affiche sans arrêt le message d'erreur suivant:
    "Aucune valeur donnée pour un ou plusieurs des paramètres requis"
    mais je ne trouve pas c'est où l'erreur,je mets mon code de connexion et d'insertion de données dans la base que j'ai mis dans un module:
    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
     
     Dim MyConnection As New System.Data.OleDb.OleDbConnection()
        'procédure de connection a une bd access 
        Public Sub connection()
            Try
                If MyConnection.State = ConnectionState.Open Then
                    MyConnection.Close()
                End If
                MyConnection.Close()
     
                MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source='C:\Users\admin\Desktop\mybase.mdb'"
                MyConnection.Open()
            Catch ex As Exception
                MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
            End Try
        End Sub
        'deconenction de la base 
        Public Sub deconnection()
            Try
                MyConnection.Close()
            Catch ex As Exception
                MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
            End Try
        End Sub
    Public Function access(ByVal requetesql As String) As DataSet
            Dim MyAdapter As OleDbDataAdapter = New OleDbDataAdapter()
            Dim MyDataSet As DataSet = New DataSet
            ' Dim StrConnect As String
            Dim MyCommand As OleDbCommand
            ' Dim requete As String
            connection()
            Try
                MyCommand = New OleDbCommand(requetesql, MyConnection)
                MyAdapter.SelectCommand = MyCommand
                MyDataSet.Clear()
                MyAdapter.Fill(MyDataSet)
                'A ce niveau les donnes résultantes de la requete 
                'se trouvent dans => MyDataSet.Tables(0) 
     
            Catch ex As Exception
                MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message)
            End Try
            Return MyDataSet
            deconnection()
        End Function
    et voici une requête appelant cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Dim req As String
            Dim tmp As Long = GetTickCount() - TInit
            Dim evnmt As String = vb.Left(evt, 79)
            Dim gps As String = RichTextBox4.Text
            req = "INSERT INTO evenement_MS(heure,[time],nombre,durée,typ,evenement, GPS,COM,Tinit,CLI) VALUES(now,tmp,0,0,'AT',evnmt,gps,PortGSM,TInit,Clip)"
            'Dim MonDs as new Dataset
            'MonDs = 
            access(req)
    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    A première vue le problème vient de ta requête SQL INSERT. Elle est mal construite, car tu as mis le nom de tes variables en dur, au lieu d'utiliser la concaténation.

    Je te conseille de lire cet article, qui te présentera les requêtes SQL paramétrées, qu'il faut utiliser pour des raisons de sécurité notamment.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Je n'ai pas compris ce que tu veux dire par concaténation,il n'ya pas de chaines à concaténer,et pour le lien,je ne veux pas utliser des paramètres dans ma requête,c'est des données que je veux enregistrer simplement dans ma bdd.
    Merci quand même pour ta réponse

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par mawkli Voir le message
    Je n'ai pas compris ce que tu veux dire par concaténation,il n'ya pas de chaines à concaténer
    Ah bon ?!

    Pour information, la concaténation consiste à inclure le contenu d'une variable (ou plusieurs...) dans une chaîne de caractères (string). Plus d'infos ici par exemple.

    Moi je vois que tu déclares des variables ("tmp", "evnmt" et "gps"), puis que tu veux les utiliser dans ton INSERT :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO evenement_MS (heure,[time],nombre,durée,typ,evenement, GPS,COM,Tinit,CLI)
    VALUES (now,tmp,0,0,'AT',evnmt,gps,PortGSM,TInit,Clip)
    Comme tu ne fais pas de concaténation, tu n'inclues pas le contenu de tes variables dans ta requête, il est donc normal que tu aies ce message d'erreur.

    Voici ce que ça donne avec la concaténation :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO evenement_MS (heure,[time],nombre,durée,typ,evenement, GPS,COM,Tinit,CLI)
    VALUES(now," & tmp.ToString() & ",0,0,'AT','" & evnmt & "','" & gps & "',PortGSM,TInit,Clip)
    J'ai supposé que :
    - [time] est de type entier dans ta table evenement_MS
    - evenement est de type chaine de caractère dans ta table evenement_MS
    - GPS est de type chaine de caractère dans ta table evenement_MS

    Si ce n'est pas le cas, il faudra que tu adaptes la concaténation afin de récupérer les types corrects (si tu utilises une requête paramétrée, tu n'as pas besoin de gérer les différents types...).

    Citation Envoyé par mawkli Voir le message
    et pour le lien,je ne veux pas utliser des paramètres dans ma requête,c'est des données que je veux enregistrer simplement dans ma bdd.
    Merci quand même pour ta réponse
    Ok, ça c'est toi qui voit ! Tu devrais tout de même prendre le temps de lire l'article que je t'ai indiqué, pour voir quels sont les risques que tu prends en n'utilisant pas les requêtes paramétrées.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Merci beaucoup,j'ai fait ça mais je sais pas si c'est 100% correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req = "INSERT INTO evenement_MS(COM,heure,[time],nombre,durée,typ,evenement, GPS,Tinit,CLI) VALUES(" & PortGSM & ",now," & tmp & ",0,0,'AT','" & evnmt & "','" & gps & "'," & TInit & "," & Clip & ")"
    je vais tester et je te tiens au courant,je vais voir également la possibilité d'utiliser des paramètres
    Merci

Discussions similaires

  1. Problème de mot de passe : Connexion Access
    Par digital prophecy dans le forum Bases de données
    Réponses: 12
    Dernier message: 13/06/2012, 10h23
  2. [ODBC] Problème de connexion à Access
    Par cciocc dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 26/04/2006, 14h54
  3. Problème de connexion base Access
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 3
    Dernier message: 21/02/2006, 16h06
  4. problème de connexion à bd access
    Par fsesar dans le forum ASP
    Réponses: 1
    Dernier message: 12/10/2005, 15h12
  5. Problème de connexion à une base access
    Par caco19 dans le forum ASP
    Réponses: 4
    Dernier message: 13/08/2004, 16h19

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