Base de donnée Recorde set et datacombo

Résolu
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005 - 21 sept. 2004 à 11:33
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005 - 21 sept. 2004 à 14:39
Bonjour à tous

public connection as new.ADODB.connection
public commande as new.ADODB.Command
Public record_db as new ADODB.Recorset

Pulibc sub connexion_bd()

connection.provider = "Microsoft.jet.OLEDB.4.0;"
connection.open "Provider=Microsoft.jet.OLEDB.4.0;" & "Data Source = C:\bd.mdb"
commande.ActiveConnection = connection
record_bd.CursorLocation = adUseClient
record_db.CursorType = asOpenDynamic
record_bd.LockType = adLockOptimistic
end sub

connexion_db()

record_db.Open "SELECT Livre FROM Livre ",connection,adOpenStatic,adLockreadOnly
With Datecombo1
.ListField="champ"
.BoundColumn="champ"
Set .RowSource=record_db
End With

record_db.Open "SELECT NomFROM Personnes",connection,adOpenStatic,adLockreadOnly
With Datecombo2
.ListField="Nom"
.BoundColumn="Nom"
Set .RowSource=record_db
End With

1) quand je met record_db.close apre chaque endwith alors il y a rien qui saffiche dans mes datacombo

2) quand je ne met pas de record_db.close alors il me dit que je pe pas ouvrir 2 foi une bse de donnée

3) quand je supprime le code de la 2 me base de donnée alrs tout fontcionne bien

comment faire vous avez une autre methode

13 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 11:46
salut,

j sais pas si t a vu mais j avais deja repondu...
enfin bref je rerepond.

si tu veux voir les donnees dans un datacombo, le recordset doit rester ouvert...

d ou le si tu supprime le .close ca marche ...

ensuite il te dis que tu peux pas ouvrir un recordset qui est deja ouvert.

Donc pour voir les donnees dans les deux DATACOMBO... utilise deux recordset different et laissent les ouverts.
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 13:00
re,

essai de mettre les valeurs que tu veux inserer entre ' ' des fois ca peut venir de la...

ca donnera donc avec

' = simple

rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (simple" & Text1.text & "simple,simpl" & Text2.text & "simple)"


j ai mis simple = ' juste pour expliquer car '" c est pas top a explique lequel est le simple lequel est le double ;)

et sinon et bien regarde si la table a pas besoin d autre colonnes.

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
3
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 11:56
Mince j'ai du peut etre le poster deux foi je c pas....g des probleme de reseau en ce moment....

bon bref

A linstant ou je lisé nu document j'ai eu la meme idée que celle que tu me dit...mais j'ai pas encore essayé mais tu vient de me cnfirmé ... ce que je pense.... dc je fait en gros dans mon mule
Recorc_bd2 as news ADODB.recordset ...je teste et je dit...

je doit alros fermée ma abse de donnée quand je quitte alpplication alors....

j'ai une autre question ki me vient

Jexplque :

Dans ma FORM Principale il ya deux datacombo dont une ou il ya les "Nom"

Dans une FORM secondaire qui sert a rajouter une personne il ya deux champs Text "Nom" et "Prenom"

comment je doit faire une syntaxe pour rajouter une personne (si ma base de donnée est deja ouvert ???? enfin la je patoge....)

Merci
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 12:04
salut,

en fait, le probleme que tu avais precedement c est pas la base de donnees qui etait pouvait pas etre ouverte deux fois, c est l objet recordset:

si il est deja ouvert, ca a aucun interet de faire un autre .open et donc vb pete.

Bref. pour repondre a ta deuxieme question. tu peux te servir d un autre recirdset qui ajoute les personnes. du style:

dim rs as new adodb.recordset
set rs.activeconnection = TACONNEXION
rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (" & TonNouveauNom & ", " & TonNouveauPrenom& ")"
rs.open


NOTE: dans le cas d une insertion il est inutile de fermer le recordset.

et normalement ta nouvelle personne a ete ajoute.

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 12:21
set rs.activeconnection = TACONNEXION

TACPONNEXOIN c genre koi ....c C:\bd.mdb que je doit ettre comprend pas trop ...bon je regarde...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 12:30
re,

Dans ton code tu as une ligne du genre:

connection.open "Provider=Microsoft.jet.OLEDB.4.0;" & "Data Source = C:\bd.mdb"

Et bien tu cree la meme connection dans ton form secondaire et tu la passe au recordset avec le .ActiveConnection.

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 12:42
bon mon code...

dim rs as new adodb.recordset
set rs.activeconnection = connection
rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (Text1.text,Text2.text)"
rs.open // j'ai une erreur si je le laisse "aucune valeur de donnée^pour un ou plusieurs des parametres reqius
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 12:46
re

si cette ligne est reellement ecrite come ca:

rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (Text1.text,Text2.text)"

remplace par:

rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (" & Text1.text & "," & Text2.text & ")"

Si ca plante toujours, essai de voir si can tu ajoute un champs, la table de personnes, d attend pas une autre valeur (colonne suplementaire).

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 12:56
rs.source = "INSERT INTO TaTableDePErsonnes (Nom, Prenom) VALUES (" & Text1.text & "," & Text2.text & ")"

voila g copier ca;.. mais g toujours mon erreur sur rs.open
aucune valeur de donnée^pour un ou plusieurs des parametres reqius
0
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 13:03
bon je vé mangé je revien vers 14h je fé et je te dit......
0
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 14:16
t genial !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ca marche bon maintenant il faut que je fasse un refresh car quand je revien sur ma premiere form ben ma datacombo n'est pas a jour.......

alors la question est vaux mieux ke je place ce code dans le bouton retour dela eme form ou dans la premiere form (mais ou?)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 14:35
re,

Ben en fait ca peut dependre de comment tu ouvre ton form secondaire.
j explique si tu fais un

load FormSecondaire
FormSecondaire.show 1


le show 1 est bloquant c est a dire que le code de ton code principal restera a cet endroit jusqu a ce que tu fasse Accept de l autre form (par exemple).

et donc apres tu as cas rajoute l appel de fonction qui rempli les datracombo.

J sais pas si j ai ete tres clair.. ;)

une question t as pas MSN ce serai plus facile pour repondre en temps reel.

le mien Epsylon_9@hotmail.com.
@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
PsYKrO Messages postés 53 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 3 mai 2005
21 sept. 2004 à 14:39
ca yé ....
je t mi dans mes contact
0
Rejoignez-nous