OVH Cloud OVH Cloud

2 mini questions

13 réponses
Avatar
Pascal
bonjour,
encore besoin de vous 2 toutes petites questions

1)cette commande: strsql = "Delete from " & MaTable & " where N° = " &
MonNuméro
j'ai fais cette commenade pour efacer l'enregistrement en cours (sur lequel
je suis positionné)
est-ce correct?, je pense que la clause WHERE recherche à travers toute la
base non?
si une erreur, quel est la bonne syntaxe pour supprimer UNIQUEMENT
l'enregistrement sur lequel ont est postionné?

2) Question = "entrez le nom de la table."
MaTable = InputBox(Question, "Demande d'informations ")
On Error GoTo fin:
'on ouvre la table choisie
Set t1 = CurrentDb.OpenRecordset(MaTable)

je désirerai pouvoir ouvrir une table au choix à l'aide des boîtes
standard de dialogue de Windows, est-ce SHOWOPEN? si oui la méthode est-elle
la même qu'en VB6? faut-il insérer la réference COMMON DIALOG ?

Merci d'avance de votre aide
bien à vous
Pascal

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

1.:
Si ce n'est que pour supprimer l'enregistrement en cours , préfére la
commande:
DoCmd.RunCommand acCmdDeleteRecord

2.:
Tu peux faire une zone de liste ou une zone de liste modifiable contenant la
liste de tes tables. Sur l'événement afterupdate de la liste tu peux ouvrir
la table.
voir la page : http://access.seneque.free.fr/liste_des_objets.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pascal" a écrit dans le message de
news:
bonjour,
encore besoin de vous 2 toutes petites questions

1)cette commande: strsql = "Delete from " & MaTable & " where N° = " &
MonNuméro
j'ai fais cette commenade pour efacer l'enregistrement en cours (sur
lequel

je suis positionné)
est-ce correct?, je pense que la clause WHERE recherche à travers toute la
base non?
si une erreur, quel est la bonne syntaxe pour supprimer UNIQUEMENT
l'enregistrement sur lequel ont est postionné?

2) Question = "entrez le nom de la table."
MaTable = InputBox(Question, "Demande d'informations ")
On Error GoTo fin:
'on ouvre la table choisie
Set t1 = CurrentDb.OpenRecordset(MaTable)

je désirerai pouvoir ouvrir une table au choix à l'aide des boîtes
standard de dialogue de Windows, est-ce SHOWOPEN? si oui la méthode
est-elle

la même qu'en VB6? faut-il insérer la réference COMMON DIALOG ?

Merci d'avance de votre aide
bien à vous
Pascal





Avatar
3stone
Salut,

"Pascal"
1)cette commande: strsql = "Delete from " & MaTable & " where N° = " &
MonNuméro
j'ai fais cette commenade pour efacer l'enregistrement en cours (sur lequel
je suis positionné)
est-ce correct?, je pense que la clause WHERE recherche à travers toute la
base non?



ou plus simplement (si dans un formulaire) :

DoCmd.RunCommand acCmdDeleteRecord



2) Question = "entrez le nom de la table."
MaTable = InputBox(Question, "Demande d'informations ")
On Error GoTo fin:
'on ouvre la table choisie
Set t1 = CurrentDb.OpenRecordset(MaTable)

je désirerai pouvoir ouvrir une table au choix à l'aide des boîtes
standard de dialogue de Windows, est-ce SHOWOPEN? si oui la méthode est-elle
la même qu'en VB6? faut-il insérer la réference COMMON DIALOG ?


"Ouvrir une table" n'a pas vraiment de sens...

Une table est un conteneur et doit être considéré comme tel,
par contre, on peut ouvrir un recordset basé sur une table...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Pascal
génial comme d'habitude
merci Raymond
bien à toi
Pascal

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

1.:
Si ce n'est que pour supprimer l'enregistrement en cours , préfére la
commande:
DoCmd.RunCommand acCmdDeleteRecord

2.:
Tu peux faire une zone de liste ou une zone de liste modifiable contenant
la

liste de tes tables. Sur l'événement afterupdate de la liste tu peux
ouvrir

la table.
voir la page : http://access.seneque.free.fr/liste_des_objets.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Pascal" a écrit dans le message de
news:
bonjour,
encore besoin de vous 2 toutes petites questions

1)cette commande: strsql = "Delete from " & MaTable & " where N° = " &
MonNuméro
j'ai fais cette commenade pour efacer l'enregistrement en cours (sur
lequel

je suis positionné)
est-ce correct?, je pense que la clause WHERE recherche à travers toute
la


base non?
si une erreur, quel est la bonne syntaxe pour supprimer UNIQUEMENT
l'enregistrement sur lequel ont est postionné?

2) Question = "entrez le nom de la table."
MaTable = InputBox(Question, "Demande d'informations ")
On Error GoTo fin:
'on ouvre la table choisie
Set t1 = CurrentDb.OpenRecordset(MaTable)

je désirerai pouvoir ouvrir une table au choix à l'aide des boîtes
standard de dialogue de Windows, est-ce SHOWOPEN? si oui la méthode
est-elle

la même qu'en VB6? faut-il insérer la réference COMMON DIALOG ?

Merci d'avance de votre aide
bien à vous
Pascal









Avatar
Pascal
salut 3stone,
je m'exprime mal, pour moi cela à un sens logique, je doit pouvoir choisir
la TABLE sur lequel je veux travailler, ce à partir d'un formulaire
la requête que j'utilise doit pouvoir se faire dans n'importe quel table au
choix de l'utilisateur
d'ou la question
la question est plustôt pouvoir SELECTIONNER une table esur laquellle on
vas travailler

pour la commande :DoCmd.RunCommand acCmdDeleteRecord
cela ne fonctionne pas chez moi
je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend

avec la commande SQL cela fonctionne très bien, qu'ai encore fait ?
merci
Pascal


"3stone" a écrit dans le message de
news:%
Salut,

"Pascal"
1)cette commande: strsql = "Delete from " & MaTable & " where N° = " &
MonNuméro
j'ai fais cette commenade pour efacer l'enregistrement en cours (sur
lequel


je suis positionné)
est-ce correct?, je pense que la clause WHERE recherche à travers toute
la


base non?



ou plus simplement (si dans un formulaire) :

DoCmd.RunCommand acCmdDeleteRecord



2) Question = "entrez le nom de la table."
MaTable = InputBox(Question, "Demande d'informations ")
On Error GoTo fin:
'on ouvre la table choisie
Set t1 = CurrentDb.OpenRecordset(MaTable)

je désirerai pouvoir ouvrir une table au choix à l'aide des boîtes
standard de dialogue de Windows, est-ce SHOWOPEN? si oui la méthode
est-elle


la même qu'en VB6? faut-il insérer la réference COMMON DIALOG ?


"Ouvrir une table" n'a pas vraiment de sens...

Une table est un conteneur et doit être considéré comme tel,
par contre, on peut ouvrir un recordset basé sur une table...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------








Avatar
Eric
Bonjour Pascal

au lieu de mettre DoCmd.RunCommand acCmdDeleteRecord
mets
t1.delete

(mais à la sortie de ta boucle tu n'auras plus d'enregistrement dans t1
donc il faudra la supprimer aussi, non ?)

A+
Eric

(DoCmd.RunCommand acCmdDeleteRecord te permet de supprimer
l'enregistrement en cours de ton formulaire à partir de ton formulaire
mais pas avec ta procédure qui parcourt le jeu d'enregistrement)




"Pascal" écrivait
news:#:


pour la commande :DoCmd.RunCommand acCmdDeleteRecord
cela ne fonctionne pas chez moi
je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend

avec la commande SQL cela fonctionne très bien, qu'ai encore fait ?
merci
Pascal





Avatar
Pascal
salut eric,
encore une fois toi, j'aurais franchement pû y penser
bien à toi
Pascal

"Eric" a écrit dans le message de
news:
Bonjour Pascal

au lieu de mettre DoCmd.RunCommand acCmdDeleteRecord
mets
t1.delete

(mais à la sortie de ta boucle tu n'auras plus d'enregistrement dans t1
donc il faudra la supprimer aussi, non ?)

A+
Eric

(DoCmd.RunCommand acCmdDeleteRecord te permet de supprimer
l'enregistrement en cours de ton formulaire à partir de ton formulaire
mais pas avec ta procédure qui parcourt le jeu d'enregistrement)




"Pascal" écrivait
news:#:


pour la commande :DoCmd.RunCommand acCmdDeleteRecord
cela ne fonctionne pas chez moi
je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend

avec la commande SQL cela fonctionne très bien, qu'ai encore fait ?
merci
Pascal








Avatar
3stone
Salut,

"Pascal"
je m'exprime mal, pour moi cela à un sens logique, je doit pouvoir choisir
la TABLE sur lequel je veux travailler, ce à partir d'un formulaire


oui, mais c'est une question de mots...
d'ailleurs, dans ton exemple tu ouvre bien un recordset.



pour la commande :DoCmd.RunCommand acCmdDeleteRecord
cela ne fonctionne pas chez moi


j'avais dit: dans un formulaire (devant, pas derrière ;)

je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend


évidement...

que pense tu de : t1.Delete

hum ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Pascal
salut 3 stone,
ben oui mais moi je débute en ACCESS, et m'emmêle un peu les pinceaux avec
VB6
la commande DoCmd.RunCommand acCmdDeleteRecord, doit être pacée "derrière"

pour ce qui est de la proposition d'eric, n'ai pas encore essayé

bien à toi
Pascal


"3stone" a écrit dans le message de
news:%
Salut,

"Pascal"
je m'exprime mal, pour moi cela à un sens logique, je doit pouvoir
choisir


la TABLE sur lequel je veux travailler, ce à partir d'un formulaire


oui, mais c'est une question de mots...
d'ailleurs, dans ton exemple tu ouvre bien un recordset.



pour la commande :
cela ne fonctionne pas chez moi


j'avais dit: dans un formulaire (devant, pas derrière ;)

je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend


évidement...

que pense tu de : t1.Delete

hum ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
Pascal
bonjour 3 stone et Eric,
viens d'essayer ta solution Eric, ne fonctionne pas!
3stone: évidement... késako? mauvaise structure?
bien à vous
Pascal


"3stone" a écrit dans le message de
news:%
Salut,

"Pascal"
je m'exprime mal, pour moi cela à un sens logique, je doit pouvoir
choisir


la TABLE sur lequel je veux travailler, ce à partir d'un formulaire


oui, mais c'est une question de mots...
d'ailleurs, dans ton exemple tu ouvre bien un recordset.



pour la commande :DoCmd.RunCommand acCmdDeleteRecord
cela ne fonctionne pas chez moi


j'avais dit: dans un formulaire (devant, pas derrière ;)

je suis dans un formulaire derrière un bouton code VBA

je shématise:
Dim t1 As DAO.Recordset
Set t1 = CurrentDb.OpenRecordset(MaTable)
t1.MoveFirst
While Not t1.EOF
--
--
--
DoCmd.RunCommand acCmdDeleteRecord
t1.movenext
wend


évidement...

que pense tu de : t1.Delete

hum ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
3stone
re,

"Pascal"
la commande DoCmd.RunCommand acCmdDeleteRecord, doit être pacée "derrière"



utiliser un docmd lorsque l'on est dans un recordset,
c'est comme descendre de voiture pour serrer le frein à main ;-))


pour ce qui est de la proposition d'eric, n'ai pas encore essayé


si tu m'avais lu jusqu'à la fin... ;o)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

1 2