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

Re: Groupe d'options avec plusieurs réponses possibles Options

4 réponses
Avatar
FujitsuChaos
Bonjour 3Stone

J'ai un message d'erreur :

Set rst = db.OpenRecordset("dbo_Tble_Inter_02")

Merci d'aide

Fujitsuchaos

4 réponses

Avatar
3stone
Salut,

"FujitsuChaos"
| J'ai un message d'erreur :
|
| Set rst = db.OpenRecordset("dbo_Tble_Inter_02")


As-tu déclarer ta variable "db" et "rst" ?

Dim db as DAO.Database
Dim est as DAO.Recordset

et as-tu activé la référence "DAO" ?


PS: Il est d'usage de s'adresser au groupe et non à quelqu'un en particulier ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
FujitsuChaos
Bonjour

Deux table en local :
Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....)
Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)

Private Sub Form_Open(Cancel As Integer)
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim i
Dim cpt
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT * FROM [Tble Inter 02] WHERE LienInter="
& NuAutoIntervention)
rst.MoveLast
rst.MoveFirst
.....
.....
End Sub

Private Sub BtnUpdate_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim i
Set db = CurrentDb
Set rst = db.OpenRecordset("Tble Inter 02")
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
'Suppression de tous les anciens enregistrements
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE * FROM [Tble Inter 02] WHERE LienInter=" &
Me.NuAutoIntervention)
DoCmd.SetWarnings True
.....
.....
End sub

AUCUN MESSAGE D'ERREUR

Je changer les tables par réseau (SQL Expresse 2005):
dbo_Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....;)
dbo_Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)

MESSAGE D'ERREUR :

DoCmd.RunSQL ("DELETE * FROM [dbo_Tble Inter 02] WHERE LienInter=" &
Me.NuAutoIntervention) 'dans le Private Sub Form_Open(Cancel As Integer)
et
Set rst = db.OpenRecordset("dbo_Tble Inter 02") 'dans le Private Sub
BtnUpdate_Click()

Je trouve ça vraiment bizarre.
Merci pour votre aide...

Marco



"3stone" a écrit dans le message de groupe de
discussion : #
Salut,

"FujitsuChaos"
| J'ai un message d'erreur :
|
| Set rst = db.OpenRecordset("dbo_Tble_Inter_02")


As-tu déclarer ta variable "db" et "rst" ?

Dim db as DAO.Database
Dim est as DAO.Recordset

et as-tu activé la référence "DAO" ?


PS: Il est d'usage de s'adresser au groupe et non à quelqu'un en
particulier ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)





Avatar
3stone
Salut,

"FujitsuChaos"
| Deux table en local :
| Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....)
| Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)
|
| Private Sub Form_Open(Cancel As Integer)
| Dim db As DAO.Database
| Dim rst As DAO.Recordset
| Dim i
| Dim cpt


i et cpt sont ici déclaré variant, par défaut...


| Set db = CurrentDb
| Set rst = db.OpenRecordset("SELECT * FROM [Tble Inter 02] WHERE LienInter="
| & NuAutoIntervention)
| rst.MoveLast
| rst.MoveFirst

pourquoi ces deux mouvement ?
de plus, si le recodset est vide, tu auras une erreur !

donc, plutôt après le Set rst= ...

if Not rst.EOF Then
...
...
End if



| .....
| .....
| End Sub
|
| Private Sub BtnUpdate_Click()
| Dim db As DAO.Database
| Dim rst As DAO.Recordset
| Dim i

idem, i est variant !

| Set db = CurrentDb
| Set rst = db.OpenRecordset("Tble Inter 02")
| DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
| If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
| 'Suppression de tous les anciens enregistrements
| DoCmd.SetWarnings False
| DoCmd.RunSQL ("DELETE * FROM [Tble Inter 02] WHERE LienInter=" &
| Me.NuAutoIntervention)
| DoCmd.SetWarnings True


les DoCmd ne sont pas forcément joli dans ce contexte...
tout comme les DoMenuItem depuis Access 97

if Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord

est une autre abération... écrire simplement :

Me.Dirty = False



| .....
| .....
| End sub
|
| AUCUN MESSAGE D'ERREUR
|
| Je changer les tables par réseau (SQL Expresse 2005):
| dbo_Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....;)
| dbo_Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)
|
| MESSAGE D'ERREUR :
|
| DoCmd.RunSQL ("DELETE * FROM [dbo_Tble Inter 02] WHERE LienInter=" &
| Me.NuAutoIntervention) 'dans le Private Sub Form_Open(Cancel As Integer)


Dans l'événement "Open" du formulaire, les données ne sont pas encore
présentes ! Essaies sur le OnLoad (chargement)


| et
| Set rst = db.OpenRecordset("dbo_Tble Inter 02") 'dans le Private Sub
| BtnUpdate_Click()


Sur click d'un bouton tu fait juste un set rst ?


| Je trouve ça vraiment bizarre.

Ce n'est pas parce que le VBA est "interprété" que le traducteur
est forcément polyglotte ;-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
FujitsuChaos
Bonjour 3stone

Au moment, j'utilise entre deux base de donnée Access.
Entre SQL Server et un base de donnée Access, plus tard car toujours message
erreur.

Merci à 3stone

Marco



"3stone" a écrit dans le message de groupe de
discussion : #
Salut,

"FujitsuChaos"
| Deux table en local :
| Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....)
| Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)
|
| Private Sub Form_Open(Cancel As Integer)
| Dim db As DAO.Database
| Dim rst As DAO.Recordset
| Dim i
| Dim cpt


i et cpt sont ici déclaré variant, par défaut...


| Set db = CurrentDb
| Set rst = db.OpenRecordset("SELECT * FROM [Tble Inter 02] WHERE
LienInter="
| & NuAutoIntervention)
| rst.MoveLast
| rst.MoveFirst

pourquoi ces deux mouvement ?
de plus, si le recodset est vide, tu auras une erreur !

donc, plutôt après le Set rst= ...

if Not rst.EOF Then
...
...
End if



| .....
| .....
| End Sub
|
| Private Sub BtnUpdate_Click()
| Dim db As DAO.Database
| Dim rst As DAO.Recordset
| Dim i

idem, i est variant !

| Set db = CurrentDb
| Set rst = db.OpenRecordset("Tble Inter 02")
| DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70
| If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
| 'Suppression de tous les anciens enregistrements
| DoCmd.SetWarnings False
| DoCmd.RunSQL ("DELETE * FROM [Tble Inter 02] WHERE LienInter=" &
| Me.NuAutoIntervention)
| DoCmd.SetWarnings True


les DoCmd ne sont pas forcément joli dans ce contexte...
tout comme les DoMenuItem depuis Access 97

if Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord

est une autre abération... écrire simplement :

Me.Dirty = False



| .....
| .....
| End sub
|
| AUCUN MESSAGE D'ERREUR
|
| Je changer les tables par réseau (SQL Expresse 2005):
| dbo_Tble Inter 01 (Clé Primaire : NuAutoIntervention,.....;)
| dbo_Tble Inter 02 (Clé Primaire : NuAutoQuest1, LienInter,....)
|
| MESSAGE D'ERREUR :
|
| DoCmd.RunSQL ("DELETE * FROM [dbo_Tble Inter 02] WHERE LienInter=" &
| Me.NuAutoIntervention) 'dans le Private Sub Form_Open(Cancel As Integer)


Dans l'événement "Open" du formulaire, les données ne sont pas encore
présentes ! Essaies sur le OnLoad (chargement)


| et
| Set rst = db.OpenRecordset("dbo_Tble Inter 02") 'dans le Private Sub
| BtnUpdate_Click()


Sur click d'un bouton tu fait juste un set rst ?


| Je trouve ça vraiment bizarre.

Ce n'est pas parce que le VBA est "interprété" que le traducteur
est forcément polyglotte ;-))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)