Bonjour,
J'ai une fonction qui accepte un certain nombre de paramètres.
Parmi ceux-ci, certains sont optionnels.
Dans un formulaire, on peut faire appel à cette fonction. Les champs du
formulaire sont passés en paramètres.
Or si l'un de ces champs est nul, j'obtient une erreur "Utilisation
incorrecte de Null" lors de l'appel de la fonction. Avant son exécution,
donc.
Si j'ai résolu le problème pour les champs textes (je remplace null par""),
je n'ai pas su le résoudre pour un champ date.
Comment déclarer ces paramètres pour que même une valeur nulle ne bloque pas
l'exécution (quitte à traiter le cas au sein du code, mais pas avant son
appel)
Merci
Bonjour,
J'ai une fonction qui accepte un certain nombre de paramètres.
Parmi ceux-ci, certains sont optionnels.
Dans un formulaire, on peut faire appel à cette fonction. Les champs du
formulaire sont passés en paramètres.
Or si l'un de ces champs est nul, j'obtient une erreur "Utilisation
incorrecte de Null" lors de l'appel de la fonction. Avant son exécution,
donc.
Si j'ai résolu le problème pour les champs textes (je remplace null par""),
je n'ai pas su le résoudre pour un champ date.
Comment déclarer ces paramètres pour que même une valeur nulle ne bloque pas
l'exécution (quitte à traiter le cas au sein du code, mais pas avant son
appel)
Merci
Bonjour,
J'ai une fonction qui accepte un certain nombre de paramètres.
Parmi ceux-ci, certains sont optionnels.
Dans un formulaire, on peut faire appel à cette fonction. Les champs du
formulaire sont passés en paramètres.
Or si l'un de ces champs est nul, j'obtient une erreur "Utilisation
incorrecte de Null" lors de l'appel de la fonction. Avant son exécution,
donc.
Si j'ai résolu le problème pour les champs textes (je remplace null par""),
je n'ai pas su le résoudre pour un champ date.
Comment déclarer ces paramètres pour que même une valeur nulle ne bloque pas
l'exécution (quitte à traiter le cas au sein du code, mais pas avant son
appel)
Merci
bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
C'est une fonction qui utilise certains champs pour construire un message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc), mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant As
String, Optional motif As String, Optional action As String, Optional ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" & destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société " &
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel & " à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" a écrit dans le message de
news:OcJ%bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
C'est une fonction qui utilise certains champs pour construire un message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc), mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant As
String, Optional motif As String, Optional action As String, Optional ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" & destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société " &
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel & " à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de
news:OcJ%23R1lSFHA.3972@TK2MSFTNGP14.phx.gbl...
bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
C'est une fonction qui utilise certains champs pour construire un message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc), mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant As
String, Optional motif As String, Optional action As String, Optional ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" & destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société " &
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel & " à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" a écrit dans le message de
news:OcJ%bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
oui, remarque tu peux tourner le pb en déclarant tes dates en variant
(supporte le null) et si non null transforme en date
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
"Antoine Labusquière" a écrit dans
le message de news: d4lc2n$gk8$
C'est une fonction qui utilise certains champs pour construire un
message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc),
mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As
Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant
As
String, Optional motif As String, Optional action As String, Optional
ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" &
destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société "
&
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel &
" à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" a écrit dans le message de
news:OcJ%bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
oui, remarque tu peux tourner le pb en déclarant tes dates en variant
(supporte le null) et si non null transforme en date
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
"Antoine Labusquière" <antoine.labusquiere@nospam-valodia.fr> a écrit dans
le message de news: d4lc2n$gk8$1@s1.news.oleane.net...
C'est une fonction qui utilise certains champs pour construire un
message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc),
mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As
Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant
As
String, Optional motif As String, Optional action As String, Optional
ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" &
destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société "
&
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel &
" à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de
news:OcJ%23R1lSFHA.3972@TK2MSFTNGP14.phx.gbl...
bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
oui, remarque tu peux tourner le pb en déclarant tes dates en variant
(supporte le null) et si non null transforme en date
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
"Antoine Labusquière" a écrit dans
le message de news: d4lc2n$gk8$
C'est une fonction qui utilise certains champs pour construire un
message
envoyé par mail.
Le problème se pose sur les 3 derniers paramètres (optionnels donc),
mais
surtout sur date_rappel.
En fait, je supposais que le fait de déclarer un paramètre optionnel
permettait de s'affranchir du fait que certains paramètres peuvent être
nuls.
Function Envoyer_Message_Mail(destinataire As String, appelant As
Integer,
date_appel As Date, heure_appel As Date, num_appel As String, repondant
As
String, Optional motif As String, Optional action As String, Optional
ByVal
date_rappel As Date)
On Error GoTo Err_Envoyer_Message
Dim adresse As String
Dim destinataires As Recordset
Dim appelants As Recordset
Dim contact As String
Dim societe As String
Dim commande As String
Dim sujet As String
DoCmd.Hourglass True
Set destinataires = CurrentDb.OpenRecordset("SELECT T_DESTINATAIRES.*
FROM T_DESTINATAIRES WHERE T_DESTINATAIRES!destinataire = '" &
destinataire
& "';")
If destinataires.EOF Then
MsgBox "Impossible de trouver le destinataire du message.",
vbCritical, Titre
Else
If destinataires!mail = "" Then
MsgBox "L'adresse mail du destinataire du message n'est pas
connue.", vbCritical, Titre
Else
sujet = "Appel Allô"
adresse = destinataires!mail
Set appelants = CurrentDb.OpenRecordset("SELECT T_CONTACTS.*
FROM T_CONTACTS WHERE T_CONTACTS!num_contact = " & appelant & ";")
If Not appelants.EOF Then
contact = Trim(appelants!civilite & " " &
appelants!prenom_contact & " " & appelants!nom_contact)
societe = IIf(appelants!societe <> "", " de la société "
&
appelants!societe, "")
Else
contact = ""
End If
message = contact & societe & " a appelé le " & date_appel &
" à
" & heure_appel & vbCrLf & vbCrLf & _
"Numéro de téléphone: " & num_appel & vbCrLf & vbCrLf & _
"Répondant: " & repondant & vbCrLf & vbCrLf & _
"Motif: " & motif & vbCrLf & vbCrLf & _
"Action à mener: " & action & vbCrLf & vbCrLf & _
"Rappeler le: " & date_rappel
Envoyer_Mail adresse, sujet, message
DoCmd.Beep
End If
End If
Exit_Envoyer_Message:
Set appelants = Nothing
Set destinataires = Nothing
DoCmd.Hourglass False
Exit Function
Err_Envoyer_Message:
Select Case Err
Case 62
Resume Next
Case Else
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
Resume Exit_Envoyer_Message
End Select
End Function
"Pierre CFI [mvp]" a écrit dans le message de
news:OcJ%bonjour
utilise Nz( qui retourne 0 si null, et dans ta fonction tu triate le 0
mais donne le code de ta fonction
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net