Dim cmdCommandForm As ADODB.Command
Dim rstForm As ADODB.Recordset
Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'"
Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB,
je souhaite mettre à jour un recorset mais par la méthode Update mais cela
est impossible ?? :
je déclare les propriétés de mon recordset de la façon suivante :
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.CursorLocation = adUseServer ' --- (normalement valeur par
défaut)
End With
mais aprés le chargement du recordset par la méthode :
Set MonRst = MaCommande.Execute()
les propriétés de mon recordset passe automatiquement à :
LockType : "adLockReadOnly "
CursorType : "adOpenStatic"
CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule
Je ne comprend pas pourquoi les propriétés change automatiquement après la
méthode Execute ??
quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance,
Thierry.
PS : détail du code :
...
Set MaCommande = New ADODB.Command
MaCommande .ActiveConnection =
Application.CurrentProject.AccessConnection
MaCommande .CommandType = adCmdText
MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockReadOnly, adOpenStatic, adUseClient ..??!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? :
je viens de faire un essai (simple) sur un projet sql2000 local sans passer par l'objet command et j'ai bien mis à jour par update. ce qui ne veut pas dire que ça fonctionne sur sqlserver , mais .... Dim Rs As ADODB.Recordset Set Rs = New ADODB.Recordset Rs.CursorLocation = adUseClient Rs.Open "select * from table1", CurrentProject.Connection, adOpenDynamic, adLockPessimistic Rs.MoveLast Rs!Madate = Date Rs.Update 'ou 'Rs.MoveLast 'Rs.Update "Madate", Date Set Rs = Nothing
il doit y avoir un truc en passant par command. vérifie. -- @+ 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
"News Groups" a écrit dans le message de news: 415d63df$0$27559$
Dim cmdCommandForm As ADODB.Command Dim rstForm As ADODB.Recordset Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'" Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB, je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? : je déclare les propriétés de mon recordset de la façon suivante : With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseServer ' --- (normalement valeur par défaut) End With mais aprés le chargement du recordset par la méthode : Set MonRst = MaCommande.Execute() les propriétés de mon recordset passe automatiquement à : LockType : "adLockReadOnly " CursorType : "adOpenStatic" CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule Je ne comprend pas pourquoi les propriétés change automatiquement après la méthode Execute ?? quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance, Thierry.
PS : détail du code : ... Set MaCommande = New ADODB.Command MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection MaCommande .CommandType = adCmdText MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockReadOnly, adOpenStatic, adUseClient ..??!!
MonRst .Update "MonChamp", "MaValeur"
Set MaCommande = Nothing Set MonRst = Nothing ...
Bonjour.
je souhaite mettre à jour un recorset mais par la méthode Update mais cela
est impossible ?? :
je viens de faire un essai (simple) sur un projet sql2000 local sans passer
par l'objet command et j'ai bien mis à jour par update.
ce qui ne veut pas dire que ça fonctionne sur sqlserver , mais ....
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open "select * from table1", CurrentProject.Connection, adOpenDynamic,
adLockPessimistic
Rs.MoveLast
Rs!Madate = Date
Rs.Update
'ou
'Rs.MoveLast
'Rs.Update "Madate", Date
Set Rs = Nothing
il doit y avoir un truc en passant par command. vérifie.
--
@+
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
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
415d63df$0$27559$636a15ce@news.free.fr...
Dim cmdCommandForm As ADODB.Command
Dim rstForm As ADODB.Recordset
Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'"
Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB,
je souhaite mettre à jour un recorset mais par la méthode Update mais cela
est impossible ?? :
je déclare les propriétés de mon recordset de la façon suivante :
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.CursorLocation = adUseServer ' --- (normalement valeur par
défaut)
End With
mais aprés le chargement du recordset par la méthode :
Set MonRst = MaCommande.Execute()
les propriétés de mon recordset passe automatiquement à :
LockType : "adLockReadOnly "
CursorType : "adOpenStatic"
CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule
Je ne comprend pas pourquoi les propriétés change automatiquement après la
méthode Execute ??
quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance,
Thierry.
PS : détail du code :
...
Set MaCommande = New ADODB.Command
MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection
MaCommande .CommandType = adCmdText
MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockReadOnly, adOpenStatic, adUseClient ..??!!
je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? :
je viens de faire un essai (simple) sur un projet sql2000 local sans passer par l'objet command et j'ai bien mis à jour par update. ce qui ne veut pas dire que ça fonctionne sur sqlserver , mais .... Dim Rs As ADODB.Recordset Set Rs = New ADODB.Recordset Rs.CursorLocation = adUseClient Rs.Open "select * from table1", CurrentProject.Connection, adOpenDynamic, adLockPessimistic Rs.MoveLast Rs!Madate = Date Rs.Update 'ou 'Rs.MoveLast 'Rs.Update "Madate", Date Set Rs = Nothing
il doit y avoir un truc en passant par command. vérifie. -- @+ 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
"News Groups" a écrit dans le message de news: 415d63df$0$27559$
Dim cmdCommandForm As ADODB.Command Dim rstForm As ADODB.Recordset Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'" Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB, je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? : je déclare les propriétés de mon recordset de la façon suivante : With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseServer ' --- (normalement valeur par défaut) End With mais aprés le chargement du recordset par la méthode : Set MonRst = MaCommande.Execute() les propriétés de mon recordset passe automatiquement à : LockType : "adLockReadOnly " CursorType : "adOpenStatic" CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule Je ne comprend pas pourquoi les propriétés change automatiquement après la méthode Execute ?? quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance, Thierry.
PS : détail du code : ... Set MaCommande = New ADODB.Command MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection MaCommande .CommandType = adCmdText MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockReadOnly, adOpenStatic, adUseClient ..??!!
MonRst .Update "MonChamp", "MaValeur"
Set MaCommande = Nothing Set MonRst = Nothing ...
Sylvain Lafontaine
Si vous mettez un groupe de paramètres dont la combinaison est invalide ou entre en conflit avec la gestion interne des transactions par Access, ADO va les remplacer par des valeurs par défaut.
Je ne sais pas si l'utilisation de adLockPessimistic, de adOpenDynamic et de adUseServer est vraiment nécessaire dans votre cas mais dans le cas contraire, remplacez-le par des valeurs plus orthodoxes:
Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open cmd, , adOpenStatic, adLockOptimistic
S. L.
"News Groups" wrote in message news:415d63df$0$27559$
Dim cmdCommandForm As ADODB.Command Dim rstForm As ADODB.Recordset Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'" Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB, je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? : je déclare les propriétés de mon recordset de la façon suivante : With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseServer ' --- (normalement valeur par défaut) End With mais aprés le chargement du recordset par la méthode : Set MonRst = MaCommande.Execute() les propriétés de mon recordset passe automatiquement à : LockType : "adLockReadOnly " CursorType : "adOpenStatic" CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule Je ne comprend pas pourquoi les propriétés change automatiquement après la méthode Execute ?? quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance, Thierry.
PS : détail du code : ... Set MaCommande = New ADODB.Command MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection MaCommande .CommandType = adCmdText MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockReadOnly, adOpenStatic, adUseClient ..??!!
MonRst .Update "MonChamp", "MaValeur"
Set MaCommande = Nothing Set MonRst = Nothing ...
Si vous mettez un groupe de paramètres dont la combinaison est invalide ou
entre en conflit avec la gestion interne des transactions par Access, ADO va
les remplacer par des valeurs par défaut.
Je ne sais pas si l'utilisation de adLockPessimistic, de adOpenDynamic et de
adUseServer est vraiment nécessaire dans votre cas mais dans le cas
contraire, remplacez-le par des valeurs plus orthodoxes:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockOptimistic
S. L.
"News Groups" <bjt_nwsgrp@yahoo.fr> wrote in message
news:415d63df$0$27559$636a15ce@news.free.fr...
Dim cmdCommandForm As ADODB.Command
Dim rstForm As ADODB.Recordset
Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'"
Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB,
je souhaite mettre à jour un recorset mais par la méthode Update mais cela
est impossible ?? :
je déclare les propriétés de mon recordset de la façon suivante :
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.CursorLocation = adUseServer ' --- (normalement valeur par
défaut)
End With
mais aprés le chargement du recordset par la méthode :
Set MonRst = MaCommande.Execute()
les propriétés de mon recordset passe automatiquement à :
LockType : "adLockReadOnly "
CursorType : "adOpenStatic"
CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule
Je ne comprend pas pourquoi les propriétés change automatiquement après la
méthode Execute ??
quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance,
Thierry.
PS : détail du code :
...
Set MaCommande = New ADODB.Command
MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection
MaCommande .CommandType = adCmdText
MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset
With MonRst
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation
donne respectivement :
' adLockReadOnly, adOpenStatic, adUseClient ..??!!
Si vous mettez un groupe de paramètres dont la combinaison est invalide ou entre en conflit avec la gestion interne des transactions par Access, ADO va les remplacer par des valeurs par défaut.
Je ne sais pas si l'utilisation de adLockPessimistic, de adOpenDynamic et de adUseServer est vraiment nécessaire dans votre cas mais dans le cas contraire, remplacez-le par des valeurs plus orthodoxes:
Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open cmd, , adOpenStatic, adLockOptimistic
S. L.
"News Groups" wrote in message news:415d63df$0$27559$
Dim cmdCommandForm As ADODB.Command Dim rstForm As ADODB.Recordset Dim strCommandText As String
strCommandText = "SELECT B FROM TEST WHERE A='1'" Bonjour,
Je suis sous Access2002 en projet ADP + SQL Server via OLEDB, je souhaite mettre à jour un recorset mais par la méthode Update mais cela est impossible ?? : je déclare les propriétés de mon recordset de la façon suivante : With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseServer ' --- (normalement valeur par défaut) End With mais aprés le chargement du recordset par la méthode : Set MonRst = MaCommande.Execute() les propriétés de mon recordset passe automatiquement à : LockType : "adLockReadOnly " CursorType : "adOpenStatic" CursorLocation : "adUseClient"
et donc l'update ne peut s'éxécuter car le recorset est en lecture seule Je ne comprend pas pourquoi les propriétés change automatiquement après la méthode Execute ?? quelqu'un peut m'aider à résoudre le probléme ???
Merci encore d'avance, Thierry.
PS : détail du code : ... Set MaCommande = New ADODB.Command MaCommande .ActiveConnection > Application.CurrentProject.AccessConnection MaCommande .CommandType = adCmdText MaCommande .CommandText = strCommandText
Set MonRst = New ADODB.Recordset With MonRst .LockType = adLockPessimistic .CursorType = adOpenDynamic End With
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockPessimistic, adOpenDynamic, adUseServer
Set MonRst = MaCommande.Execute()
' la lecture de MonRst.LockType, MonRst.LockType,MonRst.CursorLocation donne respectivement : ' adLockReadOnly, adOpenStatic, adUseClient ..??!!