VBA: code niet uitvoeren als resultaat van een query leeg is

Status
Niet open voor verdere reacties.

tomswaelen

Gebruiker
Lid geworden
8 dec 2004
Berichten
349
Ik heb een simpele knop in Access gemaakt die een Word-bestand opent. De code is als volgt:

Code:
Private Sub Officieelbewijs_NL_Click()

    MsgBox "Het Nederlandstalige document wordt nu geopend."
    
    Application.FollowHyperlink "NL.doc"

End Sub

Ik heb ook een query genaamd 'Opvraging - te versturen'. Op dit moment moeten de users de query eerst raadplegen om te zien of ze überhaupt bovenstaande knop wel moeten activeren.

Kunnen deze twee niet gecombineerd worden?

Is het mogelijk om bovenstaande code enkel te laten uitvoeren als de query resultaten bevat? Of andersom gezegd: de knop zou niets hoeven te doen en een melding weergeven dat er geen document geopend wordt als het resultaat van query 'Opvraging - te versturen' leeg is.

Is dit mogelijk? Alvast bedankt voor jullie hulp.
 
Tuurlijk kan dat; open eerst je query in een recordset, kijk hoeveel records er in de set zitten en open op basis van dat aantal het document. Zelf zou ik de query in een doorlopend formulier zetten met de knop erachter. Heb je namelijk geen knop als er geen records zijn. Zo'n msgbox zou mij na drie keer klikken al behoorlijk de strot uitkomen trouwens; dan weet ik wel dat er een document geopend wordt :).
 
Euh wat?

Ik vrees dat ik geen idee heb hoe ik daaraan moet beginnen.

Dat van die Msgbox is waar, alleen heb ik de inhoud wat aangepast voor publicatie. :)
 
Dan krijg je zoiets:
Code:
Private Sub Officieelbewijs_NL_Click()
Dim rs As DAO.Recordset
Dim iR As Integer

    Set rs = CurrentDb.OpenRecordset("QueryNaam")
    With rs
        On Error Resume Next
        .MoveLast
        .MoveFirst
        iR = .RecordCount
        .Close
    End With
    If iR > 0 Then
        Application.FollowHyperlink "NL.doc"
    End If

End Sub
 
Ik had iets te vroeg gepost, want heb het ook op een andere manier kunnen uitvissen :)

Deze oplossing werkt ook:

Code:
Private Sub Officieelbewijs_NL_Click()

    If DCount("*", "Opvraging - te versturen") > 0 Then
    Application.FollowHyperlink "Voorbeeld.docx"
    Else
    MsgBox ("Er zijn geen mails te versturen.")
    End If


End Sub
 
DCount is langzamer, maar op een kleine tabel valt dat niet zo op dus dat is ook prima te gebruiken. Zeker als je op één veld telt, en niet op alle :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan