Fout onderdrukken of script aanpassen

Status
Niet open voor verdere reacties.

VB noob

Gebruiker
Lid geworden
11 feb 2009
Berichten
78
Ik heb een form (Sightings) met een listbox (lstBehaviour) erin.
Bij verschillende waardes moeten verschillende formulieren geopend worden en bij andere waardes geen forms.

Bijv. bij de waarde 'Hunting' moet het formulier 'Hunting' worden geopend en bij de waarde 'Social Interaction' het formulier 'Social Interaction'.
Maar bij de waarde 'Travelling' moet er geen formulier worden geopend.

Nou had ik deze code:
Code:
public sub MyComboBox_AfterUpdate()
docmd.openform MyComboBox.Value
End Sub

En die werkt dus goed voor de waardes waar er formulieren voor zijn met dezelfde naam (als die waarde) maar geeft een foutmelding als er geen formulier is.
Foutmelding 2102: "De formuliernaam [naam] is onjuist gespeld of verwijst naar een formulier wat niet bestaat."

Nou had ik 2 mogelijke oplossingen in gedachten, maar voor beiden weet ik niet hoe ik dat aan moet pakken.
Oplossing 1: De foutmelding onderdrukken. Heb hiernaar gezocht en zou moeten kunnen lijkt me maar ik krijg het niet voor elkaar. Blijkbaar plak ik de codes niet op de goede plaats.
Oplossing 2: De code zo aanpassen dat alleen de formulieren die gespecificeerd worden geopend worden. Maar daarvan gaat de code mij boven mijn pet.

Iemand suggesties?
 
Opgelost met deze code in de after_update van de listbox lstBehaviour:
Code:
Public Sub LstBehaviour_AfterUpdate()

Dim strArgs As String

If Me.lstBehaviour.Value = "Hunting" Then
DoCmd.OpenForm "Hunting", , , , acFormAdd, , Me.SightingID
ElseIf Me.lstBehaviour.Value = "Social Interaction" Then
DoCmd.OpenForm "Social Interaction", , , , acFormAdd, , Me.SightingID
End If

End Sub

En door deze code in het te openen form te plakken:

Code:
Private Sub Form_Load()

Dim Args As Variant

If Not IsNull(Me.OpenArgs) Then
    '-- Form is being opened from a form passing values
    Args = Split(Me.OpenArgs, ";")
    Me.SightingID = Args(0)    '-- Assuming a numeric value
   End If

End Sub

acFormAdd gebruikt om het te openen form te openen in een nieuw record en niet in het eerste record.
Me.SightingID gebruikt om de SightingID door te geven aan het nieuwe form.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan