Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
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
Ambassadeur kosh
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
vu le code, aucune.
à part le dbOpenDynaset qui n'a pas un sens tres "clair"...
une c... de configuration du CurrentDb, un side effect avec un autre
recordset pas fermé, je sais pas moi...
pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
99itk313ufkv858kmu1cdn78ng583akcu8@4ax.com...
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Hawk
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté
le traitement parce que vous et un autre utilisateur
tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL
Le meme code fonctionne !
Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh"
<kosh.naranek@babylon5.net> wrote:
vu le code, aucune.
à part le dbOpenDynaset qui n'a pas un sens tres "clair"...
une c... de configuration du CurrentDb, un side effect avec un autre
recordset pas fermé, je sais pas moi...
pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
99itk313ufkv858kmu1cdn78ng583akcu8@4ax.com...
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Philippe TROTIN [MS]
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________
"Hawk" a écrit dans le message de groupe de discussion :
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en
T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '')
UPDATE clients SET tel = REPLACE(tel, ' ', '')
UPDATE clients SET tel = REPLACE(tel, '-', '')
UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement
_______________________________
Philippe TROTIN
Microsoft Services France
_______________________________
"Hawk" <nospam@orange.fr> a écrit dans le message de groupe de discussion :
a2quk3h18s6kluml4u4g88842mqfvqdt1q@4ax.com...
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté
le traitement parce que vous et un autre utilisateur
tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL
Le meme code fonctionne !
Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh"
<kosh.naranek@babylon5.net> wrote:
vu le code, aucune.
à part le dbOpenDynaset qui n'a pas un sens tres "clair"...
une c... de configuration du CurrentDb, un side effect avec un autre
recordset pas fermé, je sais pas moi...
pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto
:)
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
99itk313ufkv858kmu1cdn78ng583akcu8@4ax.com...
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________
"Hawk" a écrit dans le message de groupe de discussion :
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
SQLpro
On 30 nov, 14:43, "Philippe TROTIN [MS]" wrote:
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes e n T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Ceci supposerait que notre internaute connaisse SQL !
SI je voulais faire du mauvais esprit, je dirais que déjà faire du VB est une hérésie... Rapellons en effet que le B de BASIC signifie : Beginner All Purpose Symbolic Code, c'est à dire selon moi Langage à tout mal faire pour débutant ignare !!! ;-)
Mais je crois que je vais encore m'attirer des foudres... Espérons simpelment que ces foudres seront remplis de champagne !
A +
On 30 nov, 14:43, "Philippe TROTIN [MS]"
<ptro...@online.microsoft.com> wrote:
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes e n
T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '')
UPDATE clients SET tel = REPLACE(tel, ' ', '')
UPDATE clients SET tel = REPLACE(tel, '-', '')
UPDATE clients SET tel = REPLACE(tel, '/', '')
Ceci supposerait que notre internaute connaisse SQL !
SI je voulais faire du mauvais esprit, je dirais que déjà faire du VB
est une hérésie... Rapellons en effet que le B de BASIC signifie :
Beginner All Purpose Symbolic Code, c'est à dire selon moi Langage à
tout mal faire pour débutant ignare !!! ;-)
Mais je crois que je vais encore m'attirer des foudres... Espérons
simpelment que ces foudres seront remplis de champagne !
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes e n T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Ceci supposerait que notre internaute connaisse SQL !
SI je voulais faire du mauvais esprit, je dirais que déjà faire du VB est une hérésie... Rapellons en effet que le B de BASIC signifie : Beginner All Purpose Symbolic Code, c'est à dire selon moi Langage à tout mal faire pour débutant ignare !!! ;-)
Mais je crois que je vais encore m'attirer des foudres... Espérons simpelment que ces foudres seront remplis de champagne !
A +
Hawk
De cette façon ca risque d'être long pour une base de près de 10000 lignes ! Et puis, selon si c'est un tel de mobile, il faut que je le mettre dans un autre champs. Le SQL ne propose pas bcp de condition, à la limite, ce serait sans doute possible en transact SQL
On Fri, 30 Nov 2007 14:43:51 +0100, "Philippe TROTIN [MS]" wrote:
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________
"Hawk" a écrit dans le message de groupe de discussion :
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
De cette façon ca risque d'être long pour une base de près de 10000
lignes !
Et puis, selon si c'est un tel de mobile, il faut que je le mettre
dans un autre champs.
Le SQL ne propose pas bcp de condition, à la limite, ce serait sans
doute possible en transact SQL
On Fri, 30 Nov 2007 14:43:51 +0100, "Philippe TROTIN [MS]"
<ptrotin@online.microsoft.com> wrote:
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en
T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '')
UPDATE clients SET tel = REPLACE(tel, ' ', '')
UPDATE clients SET tel = REPLACE(tel, '-', '')
UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement
_______________________________
Philippe TROTIN
Microsoft Services France
_______________________________
"Hawk" <nospam@orange.fr> a écrit dans le message de groupe de discussion :
a2quk3h18s6kluml4u4g88842mqfvqdt1q@4ax.com...
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté
le traitement parce que vous et un autre utilisateur
tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL
Le meme code fonctionne !
Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh"
<kosh.naranek@babylon5.net> wrote:
vu le code, aucune.
à part le dbOpenDynaset qui n'a pas un sens tres "clair"...
une c... de configuration du CurrentDb, un side effect avec un autre
recordset pas fermé, je sais pas moi...
pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto
:)
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
99itk313ufkv858kmu1cdn78ng583akcu8@4ax.com...
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
De cette façon ca risque d'être long pour une base de près de 10000 lignes ! Et puis, selon si c'est un tel de mobile, il faut que je le mettre dans un autre champs. Le SQL ne propose pas bcp de condition, à la limite, ce serait sans doute possible en transact SQL
On Fri, 30 Nov 2007 14:43:51 +0100, "Philippe TROTIN [MS]" wrote:
Bonjour,
Pourquoi ne pas le faire tout bêtement avec des commandes ensemblistes en T-SQL ?
UPDATE clients SET tel = REPLACE(tel, '.', '') UPDATE clients SET tel = REPLACE(tel, ' ', '') UPDATE clients SET tel = REPLACE(tel, '-', '') UPDATE clients SET tel = REPLACE(tel, '/', '')
Cordialement _______________________________
Philippe TROTIN Microsoft Services France _______________________________
"Hawk" a écrit dans le message de groupe de discussion :
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Patrice
Classiquement un problème de verrouillage optimiste. Le where teste les valeurs originales pour voir si la ligne à changer entretemps et détecte parfois à tord un tel changement (par exemple sur des dates qui serait précises à la ms près dans SQL Server ce que la précision des valeurs originales stockées par DAO). Un petit coup de profiler permettrrait de voir ce qu'il en est exactement...
-- Patrice
"Hawk" a écrit dans le message de news:
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub
quelqu'un a une idée ?
Merci
Classiquement un problème de verrouillage optimiste. Le where teste les
valeurs originales pour voir si la ligne à changer entretemps et détecte
parfois à tord un tel changement (par exemple sur des dates qui serait
précises à la ms près dans SQL Server ce que la précision des valeurs
originales stockées par DAO). Un petit coup de profiler permettrrait de voir
ce qu'il en est exactement...
--
Patrice
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
a2quk3h18s6kluml4u4g88842mqfvqdt1q@4ax.com...
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté
le traitement parce que vous et un autre utilisateur
tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL
Le meme code fonctionne !
Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh"
<kosh.naranek@babylon5.net> wrote:
vu le code, aucune.
à part le dbOpenDynaset qui n'a pas un sens tres "clair"...
une c... de configuration du CurrentDb, un side effect avec un autre
recordset pas fermé, je sais pas moi...
pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto
:)
"Hawk" <nospam@orange.fr> a écrit dans le message de news:
99itk313ufkv858kmu1cdn78ng583akcu8@4ax.com...
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur
me disant que deja un utilisateur modifie les memes données que moi
??? quand j'arrive sur rst.update
Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset,
dbSeeChanges)
While rst.EOF = False
If IsNull(rst("tel")) Then
GoTo Drop
End If
rst.Edit
rst("tel") = Replace(rst("tel"), ".", "")
rst("tel") = Replace(rst("tel"), " ", "")
rst("tel") = Replace(rst("tel"), "-", "")
rst("tel") = Replace(rst("tel"), "/", "")
rst.Update
Drop:
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Classiquement un problème de verrouillage optimiste. Le where teste les valeurs originales pour voir si la ligne à changer entretemps et détecte parfois à tord un tel changement (par exemple sur des dates qui serait précises à la ms près dans SQL Server ce que la précision des valeurs originales stockées par DAO). Un petit coup de profiler permettrrait de voir ce qu'il en est exactement...
-- Patrice
"Hawk" a écrit dans le message de news:
Le message d'erreur exact est celui-la :
le moteur de base de données microsoft jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps.
J'ai exporter la base de données en question sur un autre serveur SQL Le meme code fonctionne ! Quelqu'un a une idée ?
Merci
On Thu, 29 Nov 2007 19:58:25 +0100, "Ambassadeur kosh" wrote:
vu le code, aucune. à part le dbOpenDynaset qui n'a pas un sens tres "clair"... une c... de configuration du CurrentDb, un side effect avec un autre recordset pas fermé, je sais pas moi... pitié pour ceux qui bossent avec vous, ecrivez du C#, et arretez les goto :)
"Hawk" a écrit dans le message de news:
Bonjour,
Je veux corriger des choses sur une base mais j'ai un message d'erreur me disant que deja un utilisateur modifie les memes données que moi ??? quand j'arrive sur rst.update Mon code sur une base access est OK
Je fais les modifs sur une base sql server
Sub Tel() Dim db As DAO.Database Dim rst As DAO.Recordset Dim fld As DAO.Field Dim Update As String
Update = "clients"
Set db = CurrentDb()
Set rst = db.OpenRecordset(Update, dbOpenDynaset, dbSeeChanges) While rst.EOF = False If IsNull(rst("tel")) Then GoTo Drop End If rst.Edit rst("tel") = Replace(rst("tel"), ".", "") rst("tel") = Replace(rst("tel"), " ", "") rst("tel") = Replace(rst("tel"), "-", "") rst("tel") = Replace(rst("tel"), "/", "") rst.Update Drop: rst.MoveNext Wend rst.Close Set rst = Nothing Set db = Nothing End Sub