ezus59
Messages postés3Date d'inscriptiondimanche 7 mars 2010StatutMembreDernière intervention 9 mars 2010
-
7 mars 2010 à 23:16
ezus59
Messages postés3Date d'inscriptiondimanche 7 mars 2010StatutMembreDernière intervention 9 mars 2010
-
9 mars 2010 à 16:07
Bonjour,
Je dois faire un programme en VB 2008 servant à enregistrer des données dans une bdd Access (et accessoirement je suis sous Windows 7).
Je me suis inspiré du code d'une amie qui à dû faire un programme similaire auparavant (son programme fonctionne bien évidemment pour elle).
Or voici mon problème : quand j'essaye d'enregistrer une valeur dans la bdd via mon programme, celui-ci plante et VB me retourne l'erreur suivante en surlignant ma requête :
COMException was unhandled.
Impossible d'utiliser cette connexion pour effectuer cette opération. Elle est fermée ou non valide dans ce contexte.
Je ne comprend pas où ça bloque, j'ai même supprimé et recréé la connexion à ma bdd .mdb mais ça ne fontionne toujours pas... j'ai comparé et re-comparé mon code avec celui de mon amie, on a pourtant exactement le même pour ce qui concerne les liaisons avec la bdd.
Mon code :
Public Class dates_importantes
Dim CON As ADODB.Connection
Dim REC As ADODB.Recordset
Dim Requete As String
Private Sub dates_importantes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CON = New ADODB.Connection
REC = New ADODB.Recordset
CON.Provider = "Microsoft.Jet.Oledb.4.0"
CON.ConnectionString = My.Application.Info.DirectoryPath + "\Base de données1.mdb"
CON.Open()
End Sub
Private Sub bouton_valider_date_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bouton_valider_date.Click
REC.Open("INSERT INTO Dates (titre_evenement) VALUES ('" & champ_titre_evenement.Text & "') ", CON)
'Cette requete-test est censée enregistré le contenu du champ de la Textbox "champ_titre_evenement" dans la colonne "titre_evenement"
'de la table "Dates" de ma bdd
REC.Close()
End Sub
End Class
Donc voilà, si vous avez une solution, je suis prenant ! Il me reste peu de temps avant de devoir rendre ce projet, et tant que je reste bloqué sur ce problème je ne peux rien faire...
A voir également:
Impossible de trouver le fournisseur. il est peut-être mal installé
ezus59
Messages postés3Date d'inscriptiondimanche 7 mars 2010StatutMembreDernière intervention 9 mars 2010 8 mars 2010 à 13:09
Bonjour,
merci pour ta réponse.
Par contre en remplaçant ma requête :
REC.Open("INSERT INTO Dates (titre_evenement) VALUES ('" & champ_titre_evenement.Text & "') ", CON)
par :
CON.Open()
CON.Execute("INSERT INTO Dates (titre_evenement) VALUES ('" & champ_titre_evenement.Text & "') ", CON)
ça me retourne l'erreur, en surlignant CON.Open(), "Impossible de trouver le fournisseur, il est peut-être mal installé"
(et si je met le CON.Open() dans le load il me dit que la connexion n'est pas ouverte)
(si je met REC.Execute ("ma requete") il me dit que 'Execute' n'est pas membre de 'REC')
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 8 mars 2010 à 20:30
Bah ta Sub dates_importantes_Load ne fonctionne plus ?
Elle est pourtant là pour ouvrir la connexion. On ne peut faire un Open qu'en ayant paramétré le ConnectionString et autre ...
Une connexion, en général, ne se referme pas. On ne la referme qu'à la fermeture de l'appli ou en cas de besoin.
Avant de faire un .Open, vérifie bien le .State pour ne pas essayer d'ouvrir une connexion déjà ouverte.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
ezus59
Messages postés3Date d'inscriptiondimanche 7 mars 2010StatutMembreDernière intervention 9 mars 2010 9 mars 2010 à 16:07
Merci pour le site.
Mon problème semble résolu mais j'ai dû revoir mon code et étant en 64 bits, j'ai aussi du faire la manipulation suivante dans VB :
Tools --> Options --> Projects and Solutions-->General Check "Show advanced build configurations"
If "Configuration Manager" doesn't show on the Buid menu, add it and click it.
Active Solution Platform --> New --> Type or select the new platform x86