Bjr a tous, probléme de connection de la base de donnee access

rachellB_9134 - Modifié le 1 août 2020 à 21:38
jacofee Messages postés 12 Date d'inscription mercredi 12 août 2020 Statut Membre Dernière intervention 16 août 2020 - 12 août 2020 à 17:05
Imports System.Data.OleDb
Public Class Form1
    Dim cnx As OleDbConnection
    Dim cmd As OleDbCommand
    Dim edta As OleDbDataAdapter
    Dim dts As New DataSet
    Dim sql As String
    Dim dtt As DataTable
    Dim dtr As DataRow
    Dim rownum As Integer
    Dim cnxstr As String
    Dim cmdb As OleDbCommandBuilder
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cnxstr = "Povider=microsoft.jet.oledb.4.0; data source= D:\Travail_Seminaire\LOGIN.mdb"
        cnx.ConnectionString = cnxstr
        cnx.Open()
        'creation de la requête sql
        sql = "select Plogine. * from Plogine"
        cmd = New OleDbCommand(sql)
        edta = New OleDbDataAdapter

        cmd.Connection() = cnx
        edta.Fill(dts, "Plogine")
        dtt = dts.Tables("Plogine")
    End Sub

Une exception non gérée du type 'System.NullReferenceException' s'est produite dans GESTION DE VENTE.exe

Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.

2 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 1 août 2020 à 14:58
Bonjour
Tout d'abord pour poster du code veuillez suivre ce tuto : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le code sera bien plus lisible ( voir le code qui suit )
Pour les variables définies au niveau de la Form préférez Private à Dim ( ce dernier s'utilise dans une Sub ou une function généralement )
Dim cnx As OleDbConnection  ' mettre des Private à la place de Dim
Dim cmd As OleDbCommand
Dim edta As OleDbDataAdapter
Dim dts As New DataSet
Dim sql As String 
Dim dtt As DataTable
Dim dtr As DataRow
Dim rownum As Integer
Dim cnxstr As String
Dim cmdb As OleDbCommandBuilder

à remplacer par
Private cnx As OleDbConnection
Private cmd As OleDbCommand
Private edta As OleDbDataAdapter
Private dts As New DataSet
Private sql, cnxstr As String ' les 2 variables String peuvent se mettre sur la même ligne 
Private dtt As DataTable
Private dtr As DataRow
Private rownum As Integer
Private cmdb As OleDbCommandBuilder

Ensuite tu nous dis bien quel est le message d'erreur mais tu ne nous dis pas à quelle ligne celui-ci se produit .
L'erreur signifie qu'un objet utilisé dans cette ligne d'erreur n'est pas défini comme étant un objet existant .
A tout hasard
cnxstr = "Povider=microsoft.jet.oledb.4.0; data source= D:\Travail_Seminaire\LOGIN.mdb"

Ce ne serait pas plutôt Provider
Dans l'état on ne peut rien dire de plus .

0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
2 août 2020 à 04:16
Merci à @karamel pour avoir modifié le code présenté dans le post
0
jacofee Messages postés 12 Date d'inscription mercredi 12 août 2020 Statut Membre Dernière intervention 16 août 2020 1
Modifié le 12 août 2020 à 17:40
Bonjour,

A la lecture du code, je constate que cnx n'a pas été initialisée. C'est très certainement la cause du message NullReferenceException (dont la traduction française est donnée par la partie "Informations supplémentaires").

Essayez plutôt ceci :

cnx= new OleDbConnection(cnxstr )
0
Rejoignez-nous