Base de donnée access

Signaler
Messages postés
43
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
8 février 2004
-
Messages postés
16
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
24 mai 2006
-
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

Messages postés
16
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
24 mai 2006

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
Messages postés
43
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
8 février 2004

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
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
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
Messages postés
16
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
24 mai 2006

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
Messages postés
16
Date d'inscription
mercredi 20 novembre 2002
Statut
Membre
Dernière intervention
24 mai 2006

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