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

VBA erreur

5 réponses
Avatar
John
Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub

--
John.

5 réponses

Avatar
Michel_D
Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub


Le SQL ne doit pas être correct.

Debug.Print sql ' => devrait t'en dire plus

Avatar
Fabien
Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub

Salut

Dans le sql Table1 : d'où vient il ?
Ne serais ce pas NomTable plutôt ?
et Ordre ?
@+

Avatar
Eric
Bonjour,

Tu as adapté à tes besoins les arguments de la procédure. Il ne fallait
pas le faire dans le corps de la procédure mais lors de son appel.
Ce que je ferai:
- recopier la procédure originale et lors de l'appel spécifier les
arguments.
Dans ton cas, ça devrait donner quelque chose comme :
Call Renuméroter("Table1","AutoNum","Ordre") en adaptant le champ
AutoNum par son vrai nom lors de cet appel.

Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub



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

Avatar
John
Bonsoir Fabien,

Excuse moi pour le retard, tu as écris :
Salut
Dans le sql Table1 : d'où vient il ?
Ne serais ce pas NomTable plutôt ?
et Ordre ?
@+

Le sql Table1 vient du nom d'une table "Table1" ordre est un compteur de
cette table "NumAuto" je ne comprend pas ça ne fonctionne pas.

Tu peux me donner un exemple ?
Merci de ton aide.
--
John.



Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub

Salut

Dans le sql Table1 : d'où vient il ?
Ne serais ce pas NomTable plutôt ?
et Ordre ?
@+




Avatar
Philippe
Bonsoir John,

Ce code fonctionne trés bien, je pense que tu veux renuméroter le compteur
lui même, et bien non, tu ne peux pas, il n'est pas modifiable, par contre tu
peux modifier le côté plusieurs "champ numérique".

Fait des essais et tiens nous au courant.
Bonsoir @ +
Philippe.


Bonsoir Fabien,

Excuse moi pour le retard, tu as écris :
Salut
Dans le sql Table1 : d'où vient il ?
Ne serais ce pas NomTable plutôt ?
et Ordre ?
@+

Le sql Table1 vient du nom d'une table "Table1" ordre est un compteur de
cette table "NumAuto" je ne comprend pas ça ne fonctionne pas.

Tu peux me donner un exemple ?
Merci de ton aide.
--
John.



Bonsoir,

J'ai trouvé sur un autre forum le code suivant, car il m'intéresse,
néanmoins lorsque je veux le mettre en pratique il ne fonctionne pas.

Une ligne jaune s'arrête ici : Set rs = CurrentDb.OpenRecordset(sql)
et j'ai un message : Erreur d'éxécution '3075'
Erreur de syntaxe (opérateur absent) dans l'expression .*.

Merci pour votre aide.

Public Sub Renuméroter(NomTable As String, ChampAutoNum As String,
ChampRenuméroté As String) 'ex call Renuméroter("Tst","AutoNum","Renuméroté")
Dim i As Integer
Dim rs As Recordset
Dim sql As String
i = 1
sql = "SELECT " & Table1 & ".* FROM " & Table1 & " ORDER BY " & Table1 & "."
& ordre & ";"
'Debug.Print sql
Set rs = CurrentDb.OpenRecordset(sql)
Do Until rs.EOF
rs.Edit
rs(ordre) = i
rs.Update
i = i + 1
rs.MoveNext
Loop
End Sub

Salut

Dans le sql Table1 : d'où vient il ?
Ne serais ce pas NomTable plutôt ?
et Ordre ?
@+