Base de donnée access

GhnombX Messages postés 43 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 8 février 2004 - 20 nov. 2002 à 17:03
miate Messages postés 16 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2006 - 22 nov. 2002 à 09:03
SAlut, je débute en base de données access, dabord, jutilise "Microsoft Ado Data Control 6.0"

jai un code style :

Dim BD As Connection
Dim rsEtudiants As Recordset

Set BD = New ADODB.Connection
BD.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bd1.mdb"

Set rsEtudiants = New ADODB.Recordset
Dim Rq As String
rsEtudiants.CursorLocation = adUseClient
Rq = "Select * from Etudiants2002_2003" ' order by now asc"
rsEtudiants.Open Rq, BD, adOpenDynamic, adLockOptimistic


Set Label1.DataSource = rsEtudiants
Label1.DataField = "Prénom"


'MsgBox rsEtudiants.GetString(adClipString, 1, ";", ";", "")

'rsEtudiants.AddNew "Prénom", "éric"
End Sub

je voulai savoir comment faire pour la méthode "AddNew", pour modifier tous les champs...

mais surtout jaurai aimer avoir une méthode d'acces a un champ en particulier, paske GetString ça renvoie toute la ligne.
comment faire un truc du genre:

dim s as string

s = rsEtudiants->prénom
'(en php)
qui récupererai directement une valeur donnée...

sinon, si vous avez des meilleurs codes que celui ci dessu pour ouvrir la base etc...dites le moi.

GhnombX

5 réponses

miate Messages postés 16 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2006
21 nov. 2002 à 08:50
La methode AddNew Ajoute une nouvelle entrée dans ton recordset elle doit etre suivie de la methode Update pour que ca prenne effet.

la methode Update te permet aussi de modifier l'entrée sélectionnée dans ton recordset

pour obtenir la valeur d'un champ particulier
si je reprends ton exemple ca donne ceci

Dim s as String

s = rsEtudiants!Prénom
ou s = rsEtudiants.Fields(XX).value
''''''''''XX N° du champ ca commence à 0

tu inverse pour une modification

rsEtudiants!Prénom= s
rsEtudiants.Update

j'espere avoir repondu à ta demande.
0
GhnombX Messages postés 43 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 8 février 2004
21 nov. 2002 à 12:46
ouais ça maide carément! merci bien!

sinon jai encore qq ptites kestions:
comment ajouter un nouvel enregistrement en une seule fois (autrement ke faire rsEtudiant!Nom "toto" puis rsEtudiant!PréNom "tutu", etc...) ?

et une dernière:

Rq = "Select * from Vidéos"
rsVidéo.Open Rq, BD, adOpenDynamic, adLockOptimistic

=> la variable rsVidéo contient la liste des enregistrement ki corespondent à la requète c bien ça ?
> kels genre de requete on peu faire sinon (genre "Select * from Vidéos where NomVidéo1" à la MySql)
=> et enfin, il fau la fermer à chaque fois ?
rsVidéos.Close

merci!

GhnombX
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
21 nov. 2002 à 13:45
l'enregistrement se fais lors de
rsEtudiants.Update

donc avant tu fais

rsEtudiants!Prénom= s
rsEtudiants.Nom=...
rsEtudiants!Adresse=..
.....
rsEtudiants.Update

avec ton recordset tu peux faire tout type de requete:
select, insert ....
avec jointures, comptage...
0
miate Messages postés 16 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2006
22 nov. 2002 à 09:01
1) si sur un formulaire tu lies tes champs de table à des contrôles grâce à la propriété datafield il te suffira juste d'appeler les methodes AddNew et Move. Il te faudra aussi verifier la propriété EditMode de ton recordset. Essaie ce code sur l'evenement click d'un bouton "Ajouter".

rsEtudiants.AddNew

A l'appel de l'evenement Click d'un bouton "Enregistrer"

If rsEtudiant.EditMode<>0
rsEtudiants.Move 0
End If

Astuce la methode Move XX d'un objet recordset apelle automatiquement la methode update.
ce petit code te permets aussi bien de modifier que d'ajouter des enregistrements, grâce à la propriéte EditMode :
0 adEditNone
1 adEditInProgress 'Modification
2 adEditAdd 'Ajout
3 adEditDelete 'Suppression

Faut-il encore que tes champs soient liés à des contrôles par la propriété Datafield ex:

Text1.Datafield = rsEtudiant.Fields(0).Name

2) Oui rsVideo contient tous les enregistrements correspondant à un critére (ou non). Si la requête renvoie des données il se positionne automatiquement sur le premier enregistrement, sinon il renvoi la valeur EOF tu peux intercepter cette valeur par la propritéte EOF (True-False)

3) tu peux faire tous les genres de requête impossible inimaginable permise par SQL.
Select, Insert,Insert Into,Update,Delete.

4) Tu refermes le recordset par la mehtode Close dés que tu n'en a plus besoin. Ca libére la mémoire pour autre chose.

Voila en espérant que ca te serve.
0

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

Posez votre question
miate Messages postés 16 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2006
22 nov. 2002 à 09:03
1) si sur un formulaire tu lies tes champs de table à des contrôles grâce à la propriété datafield il te suffira juste d'appeler les methodes AddNew et Move. Il te faudra aussi verifier la propriété EditMode de ton recordset. Essaie ce code sur l'evenement click d'un bouton "Ajouter".

rsEtudiants.AddNew

A l'appel de l'evenement Click d'un bouton "Enregistrer"

If rsEtudiant.EditMode<>0
rsEtudiants.Move 0
End If

Astuce la methode Move XX d'un objet recordset apelle automatiquement la methode update.
ce petit code te permets aussi bien de modifier que d'ajouter des enregistrements, grâce à la propriéte EditMode :
0 adEditNone
1 adEditInProgress 'Modification
2 adEditAdd 'Ajout
3 adEditDelete 'Suppression

Faut-il encore que tes champs soient liés à des contrôles par la propriété Datafield ex:

Text1.Datafield = rsEtudiant.Fields(0).Name

2) Oui rsVideo contient tous les enregistrements correspondant à un critére (ou non). Si la requête renvoie des données il se positionne automatiquement sur le premier enregistrement, sinon il renvoi la valeur EOF tu peux intercepter cette valeur par la propritéte EOF (True-False)

3) tu peux faire tous les genres de requête impossible inimaginable permise par SQL.
Select, Insert,Insert Into,Update,Delete.

4) Tu refermes le recordset par la mehtode Close dés que tu n'en a plus besoin. Ca libére la mémoire pour autre chose.

Voila en espérant que ca te serve.
0
Rejoignez-nous