Ajouter un enregistrement avec ADO

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #6190691
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

Gilbert
Le #6190641
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" 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



Thierry
Le #6190601
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" 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








Gilbert
Le #6190581
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" 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" 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











Thierry
Le #6190571
ç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" 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" 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
















Eric
Le #6190561
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

Thierry
Le #6190511
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




Publicité
Poster une réponse
Anonyme