Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Objets DAO

6 réponses
Avatar
Myriam
Bonjour,
Lorsque je travaille avec des objets DAO, je n'ai aucun=20
probl=E8me pour les lire. Mais pour ce qui est de mettre des=20
tables =E0 jour, impossible. Je suppose que je sois quelque=20
part transf=E9rer l'objet DAO vers la table =E0 mettre =E0 jour,=20
mais comment faire ?
Merci

6 réponses

Avatar
Xavier HUE
Bonjour Myriam,

Veux-tu être plus précise?
Qu'est-ce que tu n'arrives pas à faire?
N'hésite pas à poster un extrait de ton code.

Cordialement.
Xavier.
Avatar
Myriam
Je ne peux plus de donner le code, je l'ai effacé car tu
as répondu à mon autre question sur le passage d'un champ
et j'ai effacé tout mes essais de code.
Mais en règle général avec des instructions du type:
Dim BD As DAO.Database
Dim Numéros As DAO.Recordset
Set BD = CurrentDb
Set Numéros = BD.OpenRecordset(Requête, dbOpenDynaset)
-----Message d'origine-----
Bonjour Myriam,

Veux-tu être plus précise?
Qu'est-ce que tu n'arrives pas à faire?
N'hésite pas à poster un extrait de ton code.

Cordialement.
Xavier.
.



Avatar
Myriam
Je continue car j'ai été interrompue ...
Donc avec des instructions du type:
Dim BD As DAO.Database
Dim Numéros As DAO.Recordset
Set BD = CurrentDb
Set Numéros = BD.OpenRecordset(MaTable, dbOpenTable)
While Numéros.EOF = False
If i = Numéros!Id Then
Numéros.MoveNext
End If
je parviens bien à lire des infos, mais ne parviens pas à
corriger ou ajouter des infos dans la table.
-----Message d'origine-----
Bonjour Myriam,

Veux-tu être plus précise?
Qu'est-ce que tu n'arrives pas à faire?
N'hésite pas à poster un extrait de ton code.

Cordialement.
Xavier.
.



Avatar
Xavier HUE
Tu n'arrives pas à faire ce que tu cherches parce que ça
plante? ou bien par ce que tu ne sais pas commente faire?

Plusieurs choses:

Si la Table que tu cherches à lire est une table attachée,
tu ne peux pas utiliser dbOpenTable. Il faut passer par un
dbOpenDynaset.

Pour ajouter des infos dans une table:
DoCmd.RunSQL "INSERT INTO TaTable..."
ou bien
Numéros.AddNew
Numéros.Fields("NomChamp") = ValeurChamp
...
Numéros.Update

Pour supprimer des infos:
DoCmd.RunSQL "DELETE * FROM TaTAble... WHERE"
ou bien
Numéros.Delete (supprime l'enregistrement courant)

Pour mettre à jour des infos:
DoCmd.RunSQL "UPDATE TaTable SET... WHERE..."
ou bien
Numéros.Delete (supprime l'enregistrement courant)

Ca aide?
Cordialement.
Avatar
Mimi
Bonsoir,

Pour corriger les infos de ton recordset:

...
Numéros.edit
Numéros!Champ1 = valeur
Numéros.update
...

Pour ajouter des infos:
...
Numéros.addnew
Numéros!Champ1 = valeur
Numéros.update

Tu trouveras plus de détails sur edit et addnew dans l'aide d'access.

Mimi


"Myriam" a écrit dans le message de
news:81da01c431e1$da080da0$
Je continue car j'ai été interrompue ...
Donc avec des instructions du type:
Dim BD As DAO.Database
Dim Numéros As DAO.Recordset
Set BD = CurrentDb
Set Numéros = BD.OpenRecordset(MaTable, dbOpenTable)
While Numéros.EOF = False
If i = Numéros!Id Then
Numéros.MoveNext
End If
je parviens bien à lire des infos, mais ne parviens pas à
corriger ou ajouter des infos dans la table.

.



Avatar
Parce que je ne sais comment faire bien sûr, merci
maintenant je sais...
-----Message d'origine-----
Tu n'arrives pas à faire ce que tu cherches parce que ça
plante? ou bien par ce que tu ne sais pas commente faire?

Plusieurs choses:

Si la Table que tu cherches à lire est une table
attachée,

tu ne peux pas utiliser dbOpenTable. Il faut passer par
un

dbOpenDynaset.

Pour ajouter des infos dans une table:
DoCmd.RunSQL "INSERT INTO TaTable..."
ou bien
Numéros.AddNew
Numéros.Fields("NomChamp") = ValeurChamp
...
Numéros.Update

Pour supprimer des infos:
DoCmd.RunSQL "DELETE * FROM TaTAble... WHERE"
ou bien
Numéros.Delete (supprime l'enregistrement courant)

Pour mettre à jour des infos:
DoCmd.RunSQL "UPDATE TaTable SET... WHERE..."
ou bien
Numéros.Delete (supprime l'enregistrement courant)

Ca aide?
Cordialement.
.