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

Ajouter un enregistrement avec ADO

7 réponses
Avatar
Thierry
Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert ...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens ?

Merci et bonne journée.


--
Thierry

7 réponses

Avatar
Eric
Bonjour,

Je ne vois rien qui 'croche' apparemment. Si tu mets
RstTbl_Jurys.LockType = adLockOptimistic
au lieu de
RstTbl_Jurys.LockType = adLockBatchOptimistic
que se passe-t-il ?

PS : je suppose que la variable Ident est déclarée comme globale(Public)
ou de portée de module du formulaire.


Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert ...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens ?

Merci et bonne journée.




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Gilbert
Bonjour,

Es-tu sûr que tu n'oublies pas de renseigner un champ obligatoire (avec Null
interdit=Oui) qui n'aurait pas de valeur par défaut?
Ca doit bloquer l'ajout et je n'ai pas testé si ça produit un message
d'erreur.

--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert ...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens ?

Merci et bonne journée.


--
Thierry



Avatar
Thierry
Bonjour Gilbert,
non il n'y a pas de champ obligatoire dans la table.
Je ne comprends vraiment pas pourquoi ça ne fonctionne pas.
Merci Gilbert et si quelqu'un a une idée...

bonne journée.

--
Thierry



Bonjour,

Es-tu sûr que tu n'oublies pas de renseigner un champ obligatoire (avec Null
interdit=Oui) qui n'aurait pas de valeur par défaut?
Ca doit bloquer l'ajout et je n'ai pas testé si ça produit un message
d'erreur.

--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert ...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens ?

Merci et bonne journée.


--
Thierry








Avatar
Gilbert
J'ai testé en remplaçant cette ligne

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

par

RstTbl_Jurys.ActiveConnection = CurrentProject.Connection
RstTbl_Jurys.Open "tbl_jurys", , adOpenKeyset, adLockOptimistic, adCmdTable

et ça fonctionne.

Et chez toi?
--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour Gilbert,
non il n'y a pas de champ obligatoire dans la table.
Je ne comprends vraiment pas pourquoi ça ne fonctionne pas.
Merci Gilbert et si quelqu'un a une idée...

bonne journée.

--
Thierry



Bonjour,

Es-tu sûr que tu n'oublies pas de renseigner un champ obligatoire (avec
Null
interdit=Oui) qui n'aurait pas de valeur par défaut?
Ca doit bloquer l'ajout et je n'ai pas testé si ça produit un message
d'erreur.

--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert
...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est
celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens
?

Merci et bonne journée.


--
Thierry











Avatar
Thierry
ça fonctionne à merveille !!!
merci beaucoup Gilbert et bonne fin de journée.
--
Thierry



J'ai testé en remplaçant cette ligne

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

par

RstTbl_Jurys.ActiveConnection = CurrentProject.Connection
RstTbl_Jurys.Open "tbl_jurys", , adOpenKeyset, adLockOptimistic, adCmdTable

et ça fonctionne.

Et chez toi?
--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour Gilbert,
non il n'y a pas de champ obligatoire dans la table.
Je ne comprends vraiment pas pourquoi ça ne fonctionne pas.
Merci Gilbert et si quelqu'un a une idée...

bonne journée.

--
Thierry



Bonjour,

Es-tu sûr que tu n'oublies pas de renseigner un champ obligatoire (avec
Null
interdit=Oui) qui n'aurait pas de valeur par défaut?
Ca doit bloquer l'ajout et je n'ai pas testé si ça produit un message
d'erreur.

--
Gilbert


"Thierry" a écrit dans le message de
news:
Bonjour,
J'essaie de rajouter un enregistrement en utilisant le code suivant :

Private Sub Prof_DblClick(Cancel As Integer)

Dim cnnLocal As ADODB.Connection
Set cnnLocal = CurrentProject.Connection
Dim RstTbl_Jurys As ADODB.Recordset
Dim VarIdent As String
Dim VarNumInterventions As Integer
Dim booRecordadded As Boolean ' (ça je ne sais pas à quoi cela sert
...)

VarIdent = ident
VarNumInterventions = Forms!frm_saisie.ID_Tbl_Interventions

Set RstTbl_Jurys = New ADODB.Recordset
RstTbl_Jurys.CursorType = adOpenKeyset
RstTbl_Jurys.LockType = adLockBatchOptimistic

RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable

RstTbl_Jurys.AddNew
RstTbl_Jurys!ID_Tbl_Interventions = VarNumInterventions
RstTbl_Jurys!ident = VarIdent
RstTbl_Jurys.Update
booRecordadded = True
RstTbl_Jurys.Close
cnnLocal.Close
End Sub

Mes variables sont bonnes
la ligne RstTbl_Jurys.Open "tbl_jurys", cnnLocal, , , adCmdTable est
celle
où j'ai un doute, surtout dans la façon de nommer la table Tbl_Jurys (
guillements ??? )
tout est bon jusqu'au bout mais pas d'ajout d'enregistrement...

Avez-vous une idée sur ce qui "croche" comme disent nos amis canadiens
?

Merci et bonne journée.


--
Thierry
















Avatar
Eric
re,

Une petite remarque, si je peux me permettre:
en ne modifiant que le type de verrou, de adLockBatchOptimistic
en adLockOptimistic, tu aurais eu le même résultat car tu ne fais pas de
traitement par lot (batch) mais unitaire. C'était là le motif.

ça fonctionne à merveille !!!
merci beaucoup Gilbert et bonne fin de journée.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Thierry
Bonjour Eric,
Merci pour cette explication technique très utile pour un béotien comme moi.
Bonne fin de journée.


--
Thierry



re,

Une petite remarque, si je peux me permettre:
en ne modifiant que le type de verrou, de adLockBatchOptimistic
en adLockOptimistic, tu aurais eu le même résultat car tu ne fais pas de
traitement par lot (batch) mais unitaire. C'était là le motif.

ça fonctionne à merveille !!!
merci beaucoup Gilbert et bonne fin de journée.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr