bien le Bonjour,
pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE
PARAMETRES :1 ATTENDU)
je vous en remercie
Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String)
'Supprimer les enregistrements vides(société) de la bdd
Dim rs As Recordset
'recherche les enregistrements
Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" &
Société & "]=Null;")
If Not rs.EOF And Not rs.BOF Then
rs.Delete
While Not rs.EOF
rs.MoveNext
Wend
End If
End Function
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,
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai : Where IsNull([Société]) (ou à la limite Where [Société] Is Null )
Ton problème vient certainement du fait que Société n'est pas un champ mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide() Dim strSQL as String strSQL = "Delete * from tblClients Where IsNull([Société]);" CurrentDb.execute strSQL End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String) Dim strSQL As String strSQL = "Delete * from [" & NomTable & "] Where IsNull([" & NomChamp & "]);" CurrentDb.Execute strSQL End Sub
que tu appelles par : Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS: 1-Personnellement, j'utlise des procédures quand aucune valeur n'est retournée et qu'il n'existe pas de contraintes à définir la procédure comme une fonction. 2- L'emploi de Call est facultatif mais cela permet de rendre plus lisible le code. En l'absence de Call, mettre : SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour, pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE PARAMETRES :1 ATTENDU) je vous en remercie Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String) 'Supprimer les enregistrements vides(société) de la bdd Dim rs As Recordset 'recherche les enregistrements Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" & Société & "]=Null;") If Not rs.EOF And Not rs.BOF Then rs.Delete While Not rs.EOF rs.MoveNext Wend End If End Function
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ
n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai :
Where IsNull([Société])
(ou à la limite
Where [Société] Is Null
)
Ton problème vient certainement du fait que Société n'est pas un champ
mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide()
Dim strSQL as String
strSQL = "Delete * from tblClients Where IsNull([Société]);"
CurrentDb.execute strSQL
End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la
table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String)
Dim strSQL As String
strSQL = "Delete * from [" & NomTable & "] Where IsNull([" &
NomChamp & "]);"
CurrentDb.Execute strSQL
End Sub
que tu appelles par :
Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS:
1-Personnellement, j'utlise des procédures quand aucune valeur n'est
retournée et qu'il n'existe pas de contraintes à définir la procédure
comme une fonction.
2- L'emploi de Call est facultatif mais cela permet de rendre plus
lisible le code. En l'absence de Call, mettre :
SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour,
pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE
PARAMETRES :1 ATTENDU)
je vous en remercie
Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String)
'Supprimer les enregistrements vides(société) de la bdd
Dim rs As Recordset
'recherche les enregistrements
Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" &
Société & "]=Null;")
If Not rs.EOF And Not rs.BOF Then
rs.Delete
While Not rs.EOF
rs.MoveNext
Wend
End If
End Function
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai : Where IsNull([Société]) (ou à la limite Where [Société] Is Null )
Ton problème vient certainement du fait que Société n'est pas un champ mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide() Dim strSQL as String strSQL = "Delete * from tblClients Where IsNull([Société]);" CurrentDb.execute strSQL End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String) Dim strSQL As String strSQL = "Delete * from [" & NomTable & "] Where IsNull([" & NomChamp & "]);" CurrentDb.Execute strSQL End Sub
que tu appelles par : Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS: 1-Personnellement, j'utlise des procédures quand aucune valeur n'est retournée et qu'il n'existe pas de contraintes à définir la procédure comme une fonction. 2- L'emploi de Call est facultatif mais cela permet de rendre plus lisible le code. En l'absence de Call, mettre : SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour, pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE PARAMETRES :1 ATTENDU) je vous en remercie Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String) 'Supprimer les enregistrements vides(société) de la bdd Dim rs As Recordset 'recherche les enregistrements Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" & Société & "]=Null;") If Not rs.EOF And Not rs.BOF Then rs.Delete While Not rs.EOF rs.MoveNext Wend End If End Function
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
... De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Et surtout beaucoup plus rapide ;-)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
...
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Et surtout beaucoup plus rapide ;-)
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
... De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Et surtout beaucoup plus rapide ;-)
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Pascal
merci une nouvelle fois Eric, L'emploi du delete avec Sql est effectivement bien plus pratique et lisible, je ne connaissais pas merci de ton aide et de toutes ces présicions Pascal
"Eric" a écrit dans le message de news:
Bonjour,
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai : Where IsNull([Société]) (ou à la limite Where [Société] Is Null )
Ton problème vient certainement du fait que Société n'est pas un champ mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide() Dim strSQL as String strSQL = "Delete * from tblClients Where IsNull([Société]);" CurrentDb.execute strSQL End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String) Dim strSQL As String strSQL = "Delete * from [" & NomTable & "] Where IsNull([" & NomChamp & "]);" CurrentDb.Execute strSQL End Sub
que tu appelles par : Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS: 1-Personnellement, j'utlise des procédures quand aucune valeur n'est retournée et qu'il n'existe pas de contraintes à définir la procédure comme une fonction. 2- L'emploi de Call est facultatif mais cela permet de rendre plus lisible le code. En l'absence de Call, mettre : SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour, pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE PARAMETRES :1 ATTENDU) je vous en remercie Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String) 'Supprimer les enregistrements vides(société) de la bdd Dim rs As Recordset 'recherche les enregistrements Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" & Société & "]=Null;") If Not rs.EOF And Not rs.BOF Then rs.Delete While Not rs.EOF rs.MoveNext Wend End If End Function
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
merci une nouvelle fois Eric,
L'emploi du delete avec Sql est effectivement bien plus pratique et lisible,
je ne connaissais pas
merci de ton aide et de toutes ces présicions
Pascal
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de news:
uFFBiU7YHHA.1008@TK2MSFTNGP03.phx.gbl...
Bonjour,
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ
n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai :
Where IsNull([Société])
(ou à la limite
Where [Société] Is Null
)
Ton problème vient certainement du fait que Société n'est pas un champ
mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide()
Dim strSQL as String
strSQL = "Delete * from tblClients Where IsNull([Société]);"
CurrentDb.execute strSQL
End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la
table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String)
Dim strSQL As String
strSQL = "Delete * from [" & NomTable & "] Where IsNull([" & NomChamp &
"]);"
CurrentDb.Execute strSQL
End Sub
que tu appelles par :
Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS:
1-Personnellement, j'utlise des procédures quand aucune valeur n'est
retournée et qu'il n'existe pas de contraintes à définir la procédure
comme une fonction.
2- L'emploi de Call est facultatif mais cela permet de rendre plus lisible
le code. En l'absence de Call, mettre :
SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour,
pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE
PARAMETRES :1 ATTENDU)
je vous en remercie
Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As
String)
'Supprimer les enregistrements vides(société) de la bdd
Dim rs As Recordset
'recherche les enregistrements
Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" &
Société & "]=Null;")
If Not rs.EOF And Not rs.BOF Then
rs.Delete
While Not rs.EOF
rs.MoveNext
Wend
End If
End Function
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
merci une nouvelle fois Eric, L'emploi du delete avec Sql est effectivement bien plus pratique et lisible, je ne connaissais pas merci de ton aide et de toutes ces présicions Pascal
"Eric" a écrit dans le message de news:
Bonjour,
Tu ne peux pas avoir Where [Société]= Null, tu dois tester si le champ n'est pas renseigné avec la fonction IsNull()
Personnellement, je ferai : Where IsNull([Société]) (ou à la limite Where [Société] Is Null )
Ton problème vient certainement du fait que Société n'est pas un champ mais la valeur d'un champ (par ex : toto).
De plus, tu peux faire beaucoup plus simple sans passer par un Recordset.
Sub SupprimerEnregistrementVide() Dim strSQL as String strSQL = "Delete * from tblClients Where IsNull([Société]);" CurrentDb.execute strSQL End Sub
Maintenant, si tu veux que ta procédure fonctionne quels que soient la table et le champ, alors ca devient :
Sub SupprimerEnregistrementVide(NomTable As String, NomChamp As String) Dim strSQL As String strSQL = "Delete * from [" & NomTable & "] Where IsNull([" & NomChamp & "]);" CurrentDb.Execute strSQL End Sub
que tu appelles par : Call SupprimerEnregistrementVide("NomDeLaTable","NomDuChamp")
PS: 1-Personnellement, j'utlise des procédures quand aucune valeur n'est retournée et qu'il n'existe pas de contraintes à définir la procédure comme une fonction. 2- L'emploi de Call est facultatif mais cela permet de rendre plus lisible le code. En l'absence de Call, mettre : SupprimerEnregistrementVide "NomDeLaTable", "NomDuChamp"
bien le Bonjour, pourriez-vous me dire pourquoi ce code me génère 1 erreur : (TROP PEU DE PARAMETRES :1 ATTENDU) je vous en remercie Pascal
Function SupprimerEnregistrementVide() '(Table As String, Champ As String) 'Supprimer les enregistrements vides(société) de la bdd Dim rs As Recordset 'recherche les enregistrements Set rs = CurrentDb.OpenRecordset("select * FROM tblClients WHERE [" & Société & "]=Null;") If Not rs.EOF And Not rs.BOF Then rs.Delete While Not rs.EOF rs.MoveNext Wend End If End Function
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr