none
Expression sans paramètre RRS feed

  • Question

  • Bonjour à tous
    Dans un formulaire en mode continu, je souhaite ajouter par VBA de nouveaux enregistrements
    Pour ajouter ces nouveaux enregistrements, et pour les impératifs de l'application,
    j'ai besoin de connaître la date du premier enregistrement et une autre valeur min d'un des champs
    Tout marcherais bien, sauf lorsque le formulaire est vide, car mes tentatives pour connaître
    la date du premier enregistrement et une autre valeur min d'un des champs restent vaines
    et je reçois le message "Expression sans paramètre"
    J'ai essayé plusieures choses :
    DatePremièreDom = Me.DébutPremièreDom
    DatePremièreDom = IIf(IsError(DMin("Dom_Début", "T_Domiciliations", "Dom_Clé_Usager =" & CléUsager)), Null, (DMin("Dom_Début", "T_Domiciliations", "Dom_Clé_Usager =" & CléUsager)))
    DatePremièreDom = IIf(IsEmpty(Me.DébutPremièreDom), Null, Me.DébutPremièreDom)
    sans succès
    Je pense que ce problème doit être assez récurrent et il doit bien exister une solution pour le contourner.
    Merci par avance pour votre aide
    Pierre
    mercredi 26 octobre 2016 13:43

Toutes les réponses

  • Bonjour,

    Oui, il y a plusieurs solutions.
    Une au hasard consiste à créer une fonction qui exploite un Recordset qui intérroge la table pour savoir s'il y a des enregistrements, le cas échéant, poursuivre avec vos paramètres.

    Public Function TableContientDesLignes(ByVal Requete As String) As Boolean
    Dim oRS                                                As DAO.Recordset
    Dim lngNBLignes                                        As Long
    
        On Error GoTo Erreur
        Set oRS = CurrentDb.OpenRecordset(Requete, 2)
        With oRS
            lngNBLignes = Not .EOF
            If lngNBLignes Then
                .MoveLast
            End If
            .Close
        End With
        On Error GoTo 0
    Sortie:
        TableContientDesLignes = lngNBLignes
        Set oRS = Nothing
        Exit Function
    
    Erreur:
        lngNBLignes = 0
        Resume Sortie
    End Function

    donc... s'il y en a, vous affectez les paramètres :

    If TableContientDesLignes("MaTable") Then
        '[./.../.]
    Else
        MsgBox "C'est pas possible !"
    End If



    Argy

    mercredi 26 octobre 2016 17:55
    Modérateur