Problème connexion bas de donnée access [Résolu]

Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
- - Dernière réponse : cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
- 28 mai 2015 à 17:18
Bonjour, tout le monde

Un petit souci de connexion à une base de donnée access, je m'explique!!! du moins je vais essayer!!!! ;)

J'ai une base de donnée avec des noms, des prénom et des adresses mail.

Dans form load, je me connecte pour récupérer les données dans une datagridview, et les noms de ma bdd dans une combobox. Jusque la ca va!
Mon problème c'est que lors du lancement de l'appli, l'alimentation de la combobox me dit un message d'erreur avec un try- catch ! ce que je ne comprend pas ce que ma datagriedview est bien alimentée. je vous mets le code : ci-joint

Merci d'avance Cocogys.

'Connection base de donnée

Dim chemin As String = "C:\Bdd envoie mail"
Dim cnn As New OleDb.OleDbConnection
cnn = New OleDb.OleDbConnection
cnn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source =" & chemin & "\Data.mdb"

Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM mail ", cnn)
Dim dt As New DataTable
da.Fill(dt)
Me.Dgvdata.DataSource = dt

Dim oledbCmd As OleDbCommand
Dim ole As String
ole = " Select * from mail"

Try

oledbCmd = New OleDbCommand(ole, cnn)
Dim oledbReader As OleDbDataReader = oledbCmd.ExecuteReader()
Dim snom = oledbReader.GetString("nom")


While oledbReader.Read
ComboBox2.Items.Add(snom)
End While
oledbReader.Close()
oledbCmd.Dispose()

Catch ex As Exception
MsgBox("Impossible d'ouvrir la connection ! ")
End Try
Afficher la suite 

6 réponses

Messages postés
26112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 août 2019
313
0
Merci
Bonjour,

Je pense que tu essayes d'ouvrir DEUX fois la connexion à ta BDD ...
et donc .. à la deuxième fois.. vu que tu n'as pas fermé la première... il y a un conflit !

Commenter la réponse de jordane45
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
0
Merci
Bonjour Jordane45
Merci pour ta réponse
alors j'ai essayer de faire l'alimentation par un bouton, mais hélas la même erreur...

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'Alimentation combox

Dim connetionString As String
connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin & "\Data.mdb"

Dim oledbCnn As OleDbConnection
oledbCnn = New OleDbConnection(connetionString)
oledbCnn.Open()

Dim oledbCmd As OleDbCommand
Dim ole As String

ole = " Select * from mail"


Try

oledbCmd = New OleDbCommand(ole, oledbCnn)
Dim oledbReader As OleDbDataReader = oledbCmd.ExecuteReader()
Dim snom = oledbReader.GetString("nom")


While oledbReader.Read
ComboBox2.Items.Add(snom)
End While
oledbReader.Close()
oledbCmd.Dispose()
oledbCnn.Close()
Catch ex As Exception
MsgBox("Impossible d'ouvrir la connection ! ")
End Try
End Sub
End Class
Commenter la réponse de cocogys
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
26 décembre 2018
46
0
Merci
Salut
où as tu écris le code du début
ainsi
au niveau des déclaration ?
Imports System.Data.OleDb
Public Class Form1
'Connection base de donnée
Dim chemin As String = "C:\Bdd envoie mail"
Dim cnn As New OleDb.OleDbConnection
cnn = New OleDb.OleDbConnection


active option strict et option explicit
cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
-
Salut,

Donc j'ai activer option strict et option explicit, sans succées. Le message d'erreur c'est le message du catch : Catch ex As Exception
MsgBox("Impossible d'ouvrir la connection ! ")
End Try
Esuite j'ai déclarer les variable entre le Public class et le private sub load.

Merci pour réponse
Commenter la réponse de cs_ShayW
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
0
Merci
Re salut je te transmet tous le code pour voir si il se trouve des erreurs.

Comme tu pourra le voir j'ai essayer par un bouton.

Imports System.Net.Mail
Imports System.Data.OleDb

Public Class Form1
Dim chemin As String = "C:\Bdd envoie mail"
Dim cnn As New OleDb.OleDbConnection

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


TextBox1.Text = My.Settings.Adresse_mail
MaskedTextBox1.Text = My.Settings.Mdp_mail
ComboBox1.Text = My.Settings.Serveur_smtp
If My.Settings.Adresse_mail = "" Then
Label11.Visible = True
ElseIf Label11.Visible = True Then
Btnvoir.Text = "Ajouter une adresse mail"
End If

'Connection base de donnée


cnn = New OleDb.OleDbConnection
cnn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source =" & chemin & "\Data.mdb"

Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM mail ", cnn)
Dim dt As New DataTable
da.Fill(dt)
Me.Dgvdata.DataSource = dt

End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'Alimentation combox

Dim connetionString As String
connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin & "\Data.mdb"

Dim oledbCnn As OleDbConnection
oledbCnn = New OleDbConnection(connetionString)

If cnn.State = ConnectionState.Open Then
cnn.Close()
Else
oledbCnn.Open()
End If

Dim oledbCmd As OleDbCommand
Dim ole As String

ole = " Select * from mail"


Try

oledbCmd = New OleDbCommand(ole, oledbCnn)
Dim oledbReader As OleDbDataReader = oledbCmd.ExecuteReader()
Dim snom = oledbReader.GetString(CInt("nom"))


While oledbReader.Read
ComboBox2.Items.Add(snom)
End While
oledbReader.Close()
oledbCmd.Dispose()
oledbCnn.Close()
Catch ex As Exception
MsgBox("Impossible d'ouvrir la connection ! ")
End Try
End Sub
Commenter la réponse de cocogys
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
26 décembre 2018
46
0
Merci
option strict et option explicit n'est pas pour corriger les bugs
mais pour coder correctement

je n'ai pas compris ce que tu veux faire
dans le load event tu remplis un dgv par la requète "SELECT * FROM mail "
et dans le button3 tu appelles avec la même requète pour remplir ComboBox2
Pourquoi ne pas utiliser Me.Dgvdata pour remplir ComboBox2
une colonne de Me.Dgvdata corespond aux items de ComboBox2
cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
-
Dans le load events je charge ma dgv, et après je voudrais les noms de ma dgv dans ma combobox2. Après je débute en programmation!!! Si tu peu me dire comment faire pour alimenter ma combobox par ma gdv ,je veu bien.Ca simplifierai tous ca ! bien sur.

Je te remerci
Commenter la réponse de cs_ShayW
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
26 décembre 2018
46
0
Merci
encore plus simple ce n'est pas rapport avec ta dvg mais remplis
ton combo avec ta datatable

Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM mail ", cnn)
Dim dt As New DataTable
da.Fill(dt)
Me.Dgvdata.DataSource = dt
combobox2.DataSource = dt
ComboBox2.ValueMember = "Le nom du champ qui correspond"
cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
-
Super!!! merci bien ca fonctionne comme je le voulais tous simple pour les pro....merci encore...
cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
> cocogys
Messages postés
16
Date d'inscription
mercredi 20 mai 2015
Statut
Membre
Dernière intervention
17 juin 2015
-
re...

Je reviens vers toi juste encore une petite question!!!

Maintenant que j'ai les noms dans ma Combobox, j'aurai voulu que dans une textbox il me trouve l'adresse mail correspond au nom.

Merci
Commenter la réponse de cs_ShayW