msgbox out of the blue

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.680
Hallo,
Als ik op basis van een keuzelijst een form open (en dit werkt), verschijnt er een msgbox:

msgbox.jpg

iemand enig idee... erg informatief is dit wel niet he

Bedankt

JP
 
Hij zal vast ergens staan. Dus dan zit er maar één ding op: in je module zoeken naar Msgbox. Vind je hem gauw genoeg.
 
Nergens een of andere msgbox met een titel “microsoft access”.. vind het dus niet
 
Op de eenb of andere manier heb je de neiging om alles wat ik zeg te veranderen :). Als ik zeg dat je op 'Msgbox' moet zoeken, dan moet je niet op "Microsoft Access" zoeken. Die tekst ga je sowieso nooit vinden, want dat is een standaardnaam. Maar gewoon een keer doen wat ik zeg, gaat je een hoop tijd schelen :D.
 
Wat ik zeker en vast ook gedaan heb... ik ga er dan van uit dat ik, als ik een lijn met msgbox zie ik ook vbOK moet zien in dit geval en dat ben ik (tenzij ik er overheen keek) nergens tegengekomen, vandaar dat ik OOK naar “Microsoft access” gezicht heb.. weet ik veel hoe het zit met “standaardtaal”... je spreekt soms echt in orakels hoor Michel.. hie gied bedoeld ook... Niet iedereen heeft de access kennis die jij hebt en dan is het handig als je naar de basis terug kan... toch?
 
Je hebt (een beetje) gelijk, taal kan soms best lastig zijn en programmeertaal al helemaal. Omdat jouw db (gruwelijk) vol zit met code, ga ik er toch een beetje vanuit dat jij de taal VBA wel een beetje beheerst :). Als je de msgbox niet kan vinden, om wat voor reden dan ook (zoeken kan op een aantal niveaus, zoals je wellicht weet) kun je de code ook in de stapmodus doorlopen. Dat doe je dan neem ik voor het gemak maar aan op basis van het Click event van de keuzelijst, waarvan je dan de code vanaf het verdachte punt regel voor regel doorloopt. Je zet dus eerst de cursor in de beginregel, dan druk je op <F9> (de regel krijgt een kleur, standaardkleur is bordeaux rood) en dan voer je het formulier uit. Als je dan op de keuzelijst klikt, zal de Click event dus worden getriggerd en wordt de code gestart die je formulier opent. Zodra de code bij het onderbrekingspunt is aangekomen stopt de uitvoering. Je ziet die regel dan geel gemarkeerd. Vervolgens loop je met <F8> door de volgende actieregels heen. Als het een hele lange code is, zal de procedure wel even duren maar je komt dan wel alle plekken tegen waar het fout kan gaan, of waar in jouw geval de overbodige Msgbox staat. Die regel haal je dan weg, of je zet er een ' voor (commentaar dus).

De msgbox zelf lijkt een variabele te laten zien, die op het moment van uitvoeren leeg is.
 
nu val je zeker achterover maar dat "click event" ken ik niet..
Wat ik wel doe is hier en daar een "stop" zetten om op dat moment de waarden te bekijken (zo een bruin punt voor de code)
Dat geeft ook wel heel wat info..
maar een "stap voor stap" gebeuren is me vreemd

Niet vergeten is ben een "autodidact" (en ik vrees dat er hier op het forum heel wat rondhangen zoals ik) en heel wat code in mijn db is intussen al heel wat jaartjes geleden geschreven... achterhalen waar alles vandaan komt is niet simpel maar... het werkt..

JP
 
nu val je zeker achterover maar dat "click event" ken ik niet..
Ik val zeker achterover van mijn stoel (ook al vanwege Jorien ter Mors :) ) want dat zou betekenen dat je nog nooit een knop hebt gemaakt.... Gebeurtenissen heten in het Engels een "Event", en "Click" vertaal je natuurlijk als "Klikken". Maak je een knop, dan hang je daar doorgaans een gebeurtenis aan bij de actie <Bij Klikken>. Et voilà, daar heb je je "Click event"! En je knop ziet er dan zo uit:
Code:
Private Sub cmdFormulierOpenen_Click()
     'Hier je code
End Sub
En je keuzelijst krijgt dan dezelfde met uiteraard een andere naam. Bruin, Bordeaux rood, what's in a name? Waar het om gaat is inderdaad dat je met <F9> een onderbrekingspunt instelt. Voor de rest zou ik zeggen: lees bericht #7 nog eens door, want daar geef ik precies aan hoe de "stap voor stap" techniek werkt.
 
Tuuurlijk heb ik al een knop gemaakt, dat zou jij al moeten weten, maar ik snap niet hoe ik, met een klikevent kan achterhalen waar die msgbox ergens vandaan komt.. zal waarschijnlijk een vlaams-hollands probleem zijn zeker.. .. ik ga deze avond nog eens op zoek naar de msgbox
 
Ik zeg nergens dat je een Click event moet maken om de msgbox te zoeken. Wél dat je in het clickevent van je knop een onderbrekingspunt moet maken (heb je) en van daar uit met <F8> door de code moet ‘stappen’. En daar heb je dan de inmiddels fameuze “stap voor stap” modus :).
 
Dit stukje code toont dezelfde messagebox, vbOK is de default voor de knoppenopties:
Code:
Public Sub ToonMelding()
    Dim a As Variant
    MsgBox a
End Sub
 
Heb, dankzij de tip van Michel gevonden waar het probleem ligt:

Code:
Private Sub LstClient_Click()
    On Error GoTo Err_LstClient_Click
    Dim strWhere      As String
    Dim varItem       As Variant
    Me.Visible = False
    DoCmd.OpenForm "Patiënt_nieuw", datamode:=acFormEdit, OpenArgs:="ID = " & Me.LstClient.Value & "|Patiënt"

Err_LstClient_Click:
   MsgBox Err.Description

End Sub

de fout komt voor op lijn: MsgBox Err.Description

wat is er fout?

Bedankt
 
De foutafhandeling is niet compleet.
Vlak voor het fragment waarin de msgbox zit moet je uit de sub springen

Code:
Private Sub LstClient_Click()
    On Error GoTo Err_LstClient_Click
    Dim strWhere      As String
    Dim varItem       As Variant
    Me.Visible = False
    DoCmd.OpenForm "Patiënt_nieuw", datamode:=acFormEdit, OpenArgs:="ID = " & Me.LstClient.Value & "|Patiënt"

    Exit Sub
Err_LstClient_Click:
   MsgBox Err.Description

End Sub
 
Het feit dat die msgbox getoond wordt wil dat dan niet zeggen dat er een fout in de code IS? En welke is het dan?
Bedankt voor je reactie
 
In de oorspronkelijke code wordt de MsgBox altijd getoond.
Een label als Err_LstClient_Click: in de code zorgt er niet voor dat de code eronder overgeslagen wordt.

Door Exit Sub toe te voegen wordt alle code daar onder over geslagen.
Als er tussen On Error GoTo Err_LstClient_Click en Exit Sub een fout optreed, wordt de MsgBox getoond met een omschrijving van de deze fout.

Gebruik eventueel de zoekopdracht "VBA Foutafhandeling" om meer informatie te vinden.

Succes,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan