Access - plante si annuler prévisualisation d'un état

Bonjour,

Sous Access, je dois créer différentes factures pour le versement de loyers mensuels :

- Facture, Rappel 1, Rappel 2, Sommation.

Les états de ces factures sont appelés depuis un formulaire, nommé Loyers_Facturation_F. Le choix entre facture, rap1, rap2 et sommation se fait dans le formulaire par un sélecteur à 4 touches qui renvoie une valeur donnée.

Pour la visualisation et pour l’impression, j’ai dans le formulaire deux boutons, un pour l’aperçu et un pour l’impression directe. Voici le code, pour l’aperçu et l’impression directe, qui permet le choix entre les différentes factures en fonction de la valeur renvoyée par la variable « Selecteur » :

selecteurs boutons 1
Option Compare Database
'
'-------------------------------------------------------------------------------------------------100
'       Bouton de commande "Aperçu QR facture"
'-------------------------------------------------------------------------------------------------100
'
' On Error Resume Next
'
Private Sub Commande47_Click()          ' "Aperçu QR facture"
'
    Dim Selecteur As Integer
'
    Selecteur = Forms.Loyers_facturation_F.FactRap
    If Selecteur = 5 Then
    DoCmd.OpenReport "Loyers_Facture_E", acViewPreview
    ElseIf Selecteur = 4 Then
    DoCmd.OpenReport "Loyers_Rap1_E", acViewPreview
    ElseIf Selecteur = 3 Then
    DoCmd.OpenReport "Loyers_Rap2_E", acViewPreview
    ElseIf Selecteur = 2 Then
    DoCmd.OpenReport "Loyers_Sommation_E", acViewPreview
    Else
    End If
'
End Sub
'
'-------------------------------------------------------------------------------------------------100
'       Bouton de commande "Imprimer QR facture"
'-------------------------------------------------------------------------------------------------100
'
Private Sub Commande48_Click()          ' "Imprimer QR facture"
'
    Dim Selecteur As Integer
'
    Selecteur = Forms.Loyers_facturation_F.FactRap
    If Selecteur = 5 Then
    DoCmd.OpenReport "Loyers_Facture_E", acViewNormal
    ElseIf Selecteur = 4 Then
    DoCmd.OpenReport "Loyers_Rap1_E", acViewNormal
    ElseIf Selecteur = 3 Then
    DoCmd.OpenReport "Loyers_Rap2_E", acViewNormal
    ElseIf Selecteur = 2 Then
    DoCmd.OpenReport "Loyers_Sommation_E", acViewNormal
    Else
    End If
'
End Sub

Tout fonctionne bien.

Le problème est que si j’annule l’aperçu ou l’impression (par « Annuler »), le code plante ! Si j’utilise la base au format accdr au lieu de accdb, c’est toute la base qui plante. La plantée se fait ici :

erreur 2501 1 plantage 1

Etant peu expérimenté en prog, je ne sais pas comment résoudre ce problème.

Est-ce que quelqu’un pourrait me guider ?

Par avance, merci.

Bonjour Latterro

Je pense que vous pouvez faire un "On Error Goto"

Private Sub Commande47_Click()          ' "Aperçu QR facture"
  Dim Selecteur As Integer
  Selecteur = Forms.Loyers_facturation_F.FactRap
  ' En cas d'erreur on termine la procédure
  On Error GoTo FinProc
  '
  If Selecteur = 5 Then
   DoCmd.OpenReport "Loyers_Facture_E", acViewPreview
  End If
  If Selecteur = 4 Then
    DoCmd.OpenReport "Loyers_Rap1_E", acViewPreview
  End If
  If Selecteur = 3 Then
    DoCmd.OpenReport "Loyers_Rap2_E", acViewPreview
  End If
  If Selecteur = 2 Then
    DoCmd.OpenReport "Loyers_Sommation_E", acViewPreview
  End If

FinProc:
  If Err.Number <> 0 Then Err.Clear
End Sub

A+

Bonjour Bruno,

Oui, ça fonctionne, c'est génial, un grand merci.

J'ai vu que vous avez remplacé les ElseIf par des EndIf. Y a-t-il une raison pratique à cela ou est-ce que c'est équivalent (dans ce cas) ?

Re,

C'est juste pour ma lecture et pour éviter les erreurs sinon c'est du pareil au même

A+

Merci.

Rechercher des sujets similaires à "access plante annuler previsualisation etat"