cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 2023
-
4 juil. 2005 à 18:39
zakimora
Messages postés1Date d'inscriptionmercredi 2 juin 2010StatutMembreDernière intervention14 août 2010
-
14 août 2010 à 15:25
Salut...
J'ai poser cette question la semaine dernière mais je n'ai pas érussi a régler mon problème.....
Je ne suis pas capable d'updaté ma table ACCESS....
J'utilise VB6, ADO et ACCESS Voici mon Code
MA FORM
Private Sub Form_Load()
'Set Connection = New ADODB.Connection
'Type de bases de donnée pour la connexion (Pour Acces 2000 (4.0), pour la version 95 et 97 (3.51)
Connection.Provider = "Microsoft.jet.OLEDB.4.0"
'Chemin de la base de donnée (APP.PATH permet de ce mettre dans le chemin
'courant la ou ce trouve le projet)- Paramettrage de la chaine de connection
Connection.ConnectionString = App.Path & "\LISTE_DE_JOBS.mdb"
'Ouverture de la connection
Connection.Open
'Ouverture de la requête sql dans le recordset
BD.Open "Select * from GES_TEMPS", Connection, adOpenDynamic, adLockOptimistic
'CODE POUR METTRE UNE DEUXIÈME TABLE
'BDDossier.Open "Select * from [TRAVAUX EN COURS 2005]", Connection, adOpenDynamic, adLockOptimistic
BD2.Open "SELECT * FROM [GES_TEMPS] WHERE [DOSSIER] like '%" & txtRecherche.Text & "%' AND [EMPLOYER] like '%" & ListTempsEmployesRecherche.Text & "%'", Connection, adOpenKeyset, adLockBatchOptimistic
Private Sub cmdUpDate_Click()
'Permet d'enregistrer dans la base de donnée l'ajout que l'on souhaite faire
BD.Update
BD2.Update
txtRecherche.SetFocus
End Sub
CHARGEMENT
Private Sub Chargement()
Set txtTempsDossier.DataSource = BD
txtTempsDossier.DataField = "DOSSIER"
Set txtTempsDate.DataSource = BD
txtTempsDate.DataField = "DATE"
Set txtTempsTemps.DataSource = BD
txtTempsTemps.DataField = "TEMPS"
Set cboEmployes.DataSource = BD
cboEmployes.DataField = "EMPLOYER"
Set cboTypeTravail.DataSource = BD
cboTypeTravail.DataField = "TYPE_TRAVAIL"
End Sub
Et ca me sort comme ERREUR
Le Gestionnaire d'événements du consommateur a appelé une méthode réentrante du fournisseur.
Je capote...
Si quelqu'un peut m'aider.... SVP est-il possible d'utiliser mon code à titre d'exemple. Il arrive que je ne sais plus si c'est du code pour ADO ou bien si c'est des variable ou bien.... bref ca me mélange un peut et étant donné que je suis débutant en ADO, il m'arrive de ne pas tout saisir...
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 5 juil. 2005 à 00:32
bonsoir ,
je n'est pas tout regardais et je suis débutante aussi mais j'ai reussi a ajouter des donnees a ma bd donc je te donne le code que je mets en ADO pour faire un ajout:
(dans general déclaration)
Dim mabase As New ADODB.Connection
Dim matable As New ADODB.Recordset
(Dans le code de ton bouton ajouter)
mabase.Provider = "Microsoft.jet.OLEDB.4.0"
mabase.Open "Data source=C:\Bd compta.mdb"
matable.Open "matable", mabase, adOpenDynamic, adLockOptimistic
matable.AddNew
matable("nom du champ1") = txtRecherche.Text
matable("nom du champ2") = ListTempsEmployesRecherche.Text
matable("nom du champ3") = txtTempsTemps.text
matable.Update '.update doit toujours être précéder de .addnew ou .edit
mabase.Close
(Pour les explications:
-mabase nom de ma base que j'ai declarer dans declaration pour la connection
-matable nom de la table dans access et comme je l'ai declarer
-nom du champ1 par exemple le champ Nom,champ2 prénom...
pour ton code ci dessous il n'y a aucune liaison entre access et vb tu ne fais que changer la propriétés text de tes textbox ou j'ai peut être pas compris
BD.AddNew
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 5 juil. 2005 à 02:54
rebonsoir ,
je viens de regarder ton code et je crois que tu t'es un peux embrouiller au niveau de tes BD et de tes tables .Est ce que tu peux me dire combien de BD tu veux ouvrir ,leur noms et le nom de leur table et me dire quelle table de ces bases tu veux ouvrir si possible ainsi que leur controles associés.Parce que j'ai essayais de rectifier ton code mais sans connaitre tes BD et leurs tables c'est impossible
voilà au pire j'essais quand même et je te le poste
salut
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 20234 5 juil. 2005 à 13:44
Salut "nhervagault"
Mon problème n'est pas relier à la recherche.....
Lorsque je dé.marre mon programme j'appuis sur ajout.... et je rentre de l'info... et j'appuis sur Update et ca plante....
Pour la Recherche..... pour le moment ca me dérange pas....
Et ce qui m'embête c'est que mon programme fonctionnais correctement et depuis 4-5 jours ca plante et je ne vois vraiment d'ou vient le problèmme.....
et mon boss commence à être un peu en "maudit" héhéhéh :(.......
Enfin.....
Je pourrais t'envoyer mon prog ???????
Sinon j'attends de tes nouvelles..... car ce que tu m'a expliquer dans le dernier message n'est pas clair clair... ca il me semble que ce code est ok
txtTempsTemps.DataField = "TEMPS"
Set cboEmployes.DataSource = BD
Mais bon il doit y avoir quelque chose que je ne sais pas....
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 5 juil. 2005 à 15:09
bonjour,
J'ouvre une Table nommé LISTE_DE_JOBS.mdb et j'ouvre la table nommmée Ges_TEMPS
dis moi si je me trompe
LISTE_DE_JOBS.mdb est une base de donnees et pas une table non?
et GES_TEMPS est une table de cette BD et TRAVAUX_EN_COURS_2005 est egalement une table de cette BD ?
et le mieux ,je pense, c'est que tu m'envois ton prog
sinon j'ai rectifier un peu ton code mais sans savoir combien de base tu utilise et quelle table tu utilise dans ces bases donc a mon avis ce n'est pas bon je te le poste quand meme afin que tu puisse voir un peu la syntaxe pour ouvrir une base et une table sous ado donc regarde bien le code de la form_load
tiens moi au courant
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 5 juil. 2005 à 15:16
regarde surtout le form load et une fois que j'en saurais plus sur taBD et tes tables je pourrais t'aider pour tes boutons
Option explicit(Dans déclaration générale)
Dim BD1 as new adodb.connection
Dim BD2 as new adodb.connection
déclaration de la connection
dim GES_TEMP as new adodb.recordset
dim TRAVAUX_EN_COURS_2005 as new adodb.recordset
déclaration des recordset
(je suppose que travaux en cours 2005 est ta 2ème table dans ce cas il faut que tu la renomme à partir dAccess avec des _ à la place des espaces)
Set txtTempsDossier.DataSource = BD1
txtTempsDossier.DataField = "DOSSIER"
Set txtTempsDate.DataSource = BD1
txtTempsDate.DataField = "DATE"
Set txtTempsTemps.DataSource = BD1
txtTempsTemps.DataField = "TEMPS"
Set cboEmployes.DataSource = BD1
cboEmployes.DataField = "EMPLOYER"
Set cboTypeTravail.DataSource = BD1
cboTypeTravail.DataField = "TYPE_TRAVAIL
initialisation des contrôles
Set BD1 = New ADODB.Connection
BD1.Provider = "Microsoft.jet.OLEDB.4.0"
BD1.Open « data source = App.Path &"\LISTE_DE_JOBS.mdb"
ouverture de laBD1(LISTE_DE_JOBS.mdb)
GES_TEMPS.Open "Select * from GES_TEMPS", BD1, adOpenDynamic,
adLockOptimistic
TRAVAUX_EN_COURS_2005.Open "Select * from TRAVAUX_EN COURS_2005",
BD1, adOpenDynamic, adLockOptimistic
'Ouverture des 2 tables (GES_TEMP et TRAVAUX_EN_COURS_2005) etsélection de tousles champs(*) provenant (from) des tables
end sub
Private Sub cmdRecherche_Click()
Dim suppression as string
Set BD2 = New ADODB.Recordset
BD2.open « data source = chemin de BD2 » ?
BD2.Open "SELECT * FROM [GES_TEMPS] WHERE [DOSSIER] like '%" & txtRecherche.Text & "%' AND [EMPLOYER] like '%" & ListTempsEmployesRecherche.Text & "%'", BD2, adOpenKeyset, adLockBatchOptimistic