J'ai la fonction suivante qui me permet de renuméroter un champ d'une
table.
Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le
nom du champ et de la table via des InputBox.
Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un
formulaire et donc de lui passer en paramètre le champ et la table,
l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim
Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA.
Comment faut il faire ?
Merci d'avance.
Public Sub ReNum()
'Fonction de renumérotation d'un champ d'une table
Dim RS As Recordset
Dim I As Long
Dim Table As String
Dim Champ As String
On Error GoTo message
While Table = ""
Table = InputBox("Veuillez entrer le nom de la table à
renumétoter:", "Table ?")
Wend
While Champ = ""
Champ = InputBox("Veuillez entrer le nom du champ clé de la
table", "Champ ?")
Wend
Set RS = CurrentDb.OpenRecordset(Table)
RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table)
Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value)
RS.MoveNext
Next I
message:
Select Case Err.Number
Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..."
Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical,
"Erreur..."
Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical,
"Erreur..."
Case Else: MsgBox Err.Number & " " & Error, vbCritical,
"Erreur..."
End Select
End Sub
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
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
Eric
Bonjour Ryo
Ou as tu ecrit ton code? Car si c'est dans un module "global" (onglet Modules dans la fenêtre de la base de données)et non de formulaire, ta proc est globale donc Public même sans la faire précédée du mot réservé Public, et tu peux l'exécuter sans prob sous VB dans la fenetre Exécution. Par contre si la proc est définie dans un module de formulaire, je ne suis pas sur qu'en la déclarant Public, tu y as accés de partout.
Je peux pas tester ta proc car tu n'as pas joint la procédure appelée par Call (MAJ(...))
A+ Eric
Ryo écrivait news::
Salut !
J'ai la fonction suivante qui me permet de renuméroter un champ d'une table. Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le nom du champ et de la table via des InputBox. Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un formulaire et donc de lui passer en paramètre le champ et la table, l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA. Comment faut il faire ? Merci d'avance.
Public Sub ReNum() 'Fonction de renumérotation d'un champ d'une table Dim RS As Recordset Dim I As Long Dim Table As String Dim Champ As String On Error GoTo message
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend
Set RS = CurrentDb.OpenRecordset(Table) RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table) Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value) RS.MoveNext Next I
message: Select Case Err.Number Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..." Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical, "Erreur..." Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical, "Erreur..." Case Else: MsgBox Err.Number & " " & Error, vbCritical, "Erreur..." End Select End Sub
Bonjour Ryo
Ou as tu ecrit ton code?
Car si c'est dans un module "global" (onglet Modules dans la fenêtre de
la base de données)et non de formulaire, ta proc est globale donc Public
même sans la faire précédée du mot réservé Public, et tu peux l'exécuter
sans prob sous VB dans la fenetre Exécution.
Par contre si la proc est définie dans un module de formulaire, je ne
suis pas sur qu'en la déclarant Public, tu y as accés de partout.
Je peux pas tester ta proc car tu n'as pas joint la procédure appelée par
Call (MAJ(...))
J'ai la fonction suivante qui me permet de renuméroter un champ d'une
table.
Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le
nom du champ et de la table via des InputBox.
Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un
formulaire et donc de lui passer en paramètre le champ et la table,
l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim
Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA.
Comment faut il faire ?
Merci d'avance.
Public Sub ReNum()
'Fonction de renumérotation d'un champ d'une table
Dim RS As Recordset
Dim I As Long
Dim Table As String
Dim Champ As String
On Error GoTo message
While Table = ""
Table = InputBox("Veuillez entrer le nom de la table à
renumétoter:", "Table ?")
Wend
While Champ = ""
Champ = InputBox("Veuillez entrer le nom du champ clé de la
table", "Champ ?")
Wend
Set RS = CurrentDb.OpenRecordset(Table)
RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table)
Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value)
RS.MoveNext
Next I
message:
Select Case Err.Number
Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..."
Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical,
"Erreur..."
Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical,
"Erreur..."
Case Else: MsgBox Err.Number & " " & Error, vbCritical,
"Erreur..."
End Select
End Sub
Ou as tu ecrit ton code? Car si c'est dans un module "global" (onglet Modules dans la fenêtre de la base de données)et non de formulaire, ta proc est globale donc Public même sans la faire précédée du mot réservé Public, et tu peux l'exécuter sans prob sous VB dans la fenetre Exécution. Par contre si la proc est définie dans un module de formulaire, je ne suis pas sur qu'en la déclarant Public, tu y as accés de partout.
Je peux pas tester ta proc car tu n'as pas joint la procédure appelée par Call (MAJ(...))
A+ Eric
Ryo écrivait news::
Salut !
J'ai la fonction suivante qui me permet de renuméroter un champ d'une table. Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le nom du champ et de la table via des InputBox. Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un formulaire et donc de lui passer en paramètre le champ et la table, l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA. Comment faut il faire ? Merci d'avance.
Public Sub ReNum() 'Fonction de renumérotation d'un champ d'une table Dim RS As Recordset Dim I As Long Dim Table As String Dim Champ As String On Error GoTo message
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend
Set RS = CurrentDb.OpenRecordset(Table) RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table) Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value) RS.MoveNext Next I
message: Select Case Err.Number Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..." Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical, "Erreur..." Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical, "Erreur..." Case Else: MsgBox Err.Number & " " & Error, vbCritical, "Erreur..." End Select End Sub
Eric
re
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les variables mais on ne fait que les typer. Pour appeler ta proc dans la fenetre vba, c'est du genre Renum "NomTable", "NomChamp" et vire tes declarations Dim table as String et Dim Champ as String dans la procédure
A+ Eric
PS: j'ai pas tout lu donc possible d'autres erreurs, notamment vers le rs.Movefirst et rs.movenext compte tenu que tu testes pas le rs.eof
Ryo écrivait news::
Salut !
J'ai la fonction suivante qui me permet de renuméroter un champ d'une table. Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le nom du champ et de la table via des InputBox. Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un formulaire et donc de lui passer en paramètre le champ et la table, l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA. Comment faut il faire ? Merci d'avance.
Public Sub ReNum() 'Fonction de renumérotation d'un champ d'une table Dim RS As Recordset Dim I As Long Dim Table As String Dim Champ As String On Error GoTo message
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend
Set RS = CurrentDb.OpenRecordset(Table) RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table) Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value) RS.MoveNext Next I
message: Select Case Err.Number Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..." Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical, "Erreur..." Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical, "Erreur..." Case Else: MsgBox Err.Number & " " & Error, vbCritical, "Erreur..." End Select End Sub
re
Ya erreur dans la définition de ta proc
Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas
faut remplacer par :
Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
variables mais on ne fait que les typer.
Pour appeler ta proc dans la fenetre vba, c'est du genre
Renum "NomTable", "NomChamp"
et vire tes declarations Dim table as String et Dim Champ as String dans
la procédure
A+
Eric
PS: j'ai pas tout lu donc possible d'autres erreurs, notamment vers le
rs.Movefirst et rs.movenext compte tenu que tu testes pas le rs.eof
J'ai la fonction suivante qui me permet de renuméroter un champ d'une
table.
Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le
nom du champ et de la table via des InputBox.
Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un
formulaire et donc de lui passer en paramètre le champ et la table,
l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim
Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA.
Comment faut il faire ?
Merci d'avance.
Public Sub ReNum()
'Fonction de renumérotation d'un champ d'une table
Dim RS As Recordset
Dim I As Long
Dim Table As String
Dim Champ As String
On Error GoTo message
While Table = ""
Table = InputBox("Veuillez entrer le nom de la table à
renumétoter:", "Table ?")
Wend
While Champ = ""
Champ = InputBox("Veuillez entrer le nom du champ clé de la
table", "Champ ?")
Wend
Set RS = CurrentDb.OpenRecordset(Table)
RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table)
Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value)
RS.MoveNext
Next I
message:
Select Case Err.Number
Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..."
Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical,
"Erreur..."
Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical,
"Erreur..."
Case Else: MsgBox Err.Number & " " & Error, vbCritical,
"Erreur..."
End Select
End Sub
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les variables mais on ne fait que les typer. Pour appeler ta proc dans la fenetre vba, c'est du genre Renum "NomTable", "NomChamp" et vire tes declarations Dim table as String et Dim Champ as String dans la procédure
A+ Eric
PS: j'ai pas tout lu donc possible d'autres erreurs, notamment vers le rs.Movefirst et rs.movenext compte tenu que tu testes pas le rs.eof
Ryo écrivait news::
Salut !
J'ai la fonction suivante qui me permet de renuméroter un champ d'une table. Pour l'instant j'execute ce code depuis la fenêtre VBA, et je saisie le nom du champ et de la table via des InputBox. Ce qui m'intéresserait ce serrait de pouvoir aussi l'éxécuter depuis un formulaire et donc de lui passer en paramètre le champ et la table, l'ennui c'est que si je fait Public Sub ReNum(Dim Table As String, Dim Champ As String), ben je peux plus l'éxécuter depuis la fenêtre VBA. Comment faut il faire ? Merci d'avance.
Public Sub ReNum() 'Fonction de renumérotation d'un champ d'une table Dim RS As Recordset Dim I As Long Dim Table As String Dim Champ As String On Error GoTo message
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend
Set RS = CurrentDb.OpenRecordset(Table) RS.MoveFirst
For I = 1 To DCount("[" & Champ & "]", Table) Call MAJ(Table, Champ, Str(I), Champ, RS.Fields(Champ).Value) RS.MoveNext Next I
message: Select Case Err.Number Case 0: MsgBox "Champ renuméroté !", vbInformation, "Finit..." Case 3078: MsgBox "La table spécifié n'existe pas", vbCritical, "Erreur..." Case 2001: MsgBox "Le champ spécifié n'existe pas", vbCritical, "Erreur..." Case Else: MsgBox Err.Number & " " & Error, vbCritical, "Erreur..." End Select End Sub
Ryo
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
ReNum(Table As String, Champ As String) <- exact c'est une erreur de
copier/coller...
Effectivement ma procédure est dans un module global.
Le problème est que quand je fait ca ReNum(Table As String, Champ As
String) je peux l'executer depuis un formulaire mais je ne peux plus
l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais
pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc
Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas
faut remplacer par :
Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Patatrac92
bonjour,
dans le principe, je ferais comme ça :
public sub ReNum(optional Table As String, optional Champ As String)
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend ...... end sub
1) l'appel par le formulaire marchera sans passer par les While
2) Il faut créer une nouvelle procédure qui appel le renum (pour l'utiliser en VBA)
sub New_Proc () call ReNum end sub
Patrice
"Ryo" a écrit dans le message de news:
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
bonjour,
dans le principe, je ferais comme ça :
public sub ReNum(optional Table As String, optional Champ As String)
While Table = ""
Table = InputBox("Veuillez entrer le nom de la table à
renumétoter:", "Table ?")
Wend
While Champ = ""
Champ = InputBox("Veuillez entrer le nom du champ clé de la
table", "Champ ?")
Wend
......
end sub
1) l'appel par le formulaire marchera sans passer par les While
2) Il faut créer une nouvelle procédure qui appel le renum (pour l'utiliser
en VBA)
sub New_Proc ()
call ReNum
end sub
Patrice
"Ryo" <no-mail@no-provider.com> a écrit dans le message de
news:mesnews.4b517d44.7bb01266.11.0@noprovider.com...
ReNum(Table As String, Champ As String) <- exact c'est une erreur de
copier/coller...
Effectivement ma procédure est dans un module global.
Le problème est que quand je fait ca ReNum(Table As String, Champ As
String) je peux l'executer depuis un formulaire mais je ne peux plus
l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais
pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc
Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas
faut remplacer par :
Public Sub ReNum(Table As String, Champ As String), on ne déclare pas
les
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
public sub ReNum(optional Table As String, optional Champ As String)
While Table = "" Table = InputBox("Veuillez entrer le nom de la table à renumétoter:", "Table ?") Wend
While Champ = "" Champ = InputBox("Veuillez entrer le nom du champ clé de la table", "Champ ?") Wend ...... end sub
1) l'appel par le formulaire marchera sans passer par les While
2) Il faut créer une nouvelle procédure qui appel le renum (pour l'utiliser en VBA)
sub New_Proc () call ReNum end sub
Patrice
"Ryo" a écrit dans le message de news:
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Eric
re, Ryo La raison est simple. Cette proc a besoin de 2 arguments et donc en faisant F5 ou la fleche tui ne lui donnes pas les arguments. Si tu veux l'exécuter en VBA dans le module, il te faut taper en bas dans la fenêtre Exécution : Renum "NomTable","NomChamp"
A+ Eric
Ryo écrivait news::
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les
re, Ryo
La raison est simple.
Cette proc a besoin de 2 arguments et donc en faisant F5 ou la fleche tui
ne lui donnes pas les arguments.
Si tu veux l'exécuter en VBA dans le module, il te faut taper en bas dans
la fenêtre Exécution : Renum "NomTable","NomChamp"
ReNum(Table As String, Champ As String) <- exact c'est une erreur de
copier/coller...
Effectivement ma procédure est dans un module global.
Le problème est que quand je fait ca ReNum(Table As String, Champ As
String) je peux l'executer depuis un formulaire mais je ne peux plus
l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais
pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc
Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche
pas faut remplacer par :
Public Sub ReNum(Table As String, Champ As String), on ne déclare pas
les
re, Ryo La raison est simple. Cette proc a besoin de 2 arguments et donc en faisant F5 ou la fleche tui ne lui donnes pas les arguments. Si tu veux l'exécuter en VBA dans le module, il te faut taper en bas dans la fenêtre Exécution : Renum "NomTable","NomChamp"
A+ Eric
Ryo écrivait news::
ReNum(Table As String, Champ As String) <- exact c'est une erreur de copier/coller... Effectivement ma procédure est dans un module global. Le problème est que quand je fait ca ReNum(Table As String, Champ As String) je peux l'executer depuis un formulaire mais je ne peux plus l'éxécuter depuis la fenêtre VBA (F5 ou la fleche). Moi je voudrais pouvoir faire les 2.
Eric a formulé la demande :
Ya erreur dans la définition de ta proc Public Sub ReNum(Dim Table As String, Dim Champ As String) ca marche pas faut remplacer par : Public Sub ReNum(Table As String, Champ As String), on ne déclare pas les