Formulier (4) – VB-code analyseren

Eerste lijn (A) “Private Sub cmdToevoegen_Click ()
Private betekent dat de code toehoort aan dat object, welk object? Het object cmdToevoegen. Wat we onze knop hebben genoemd. Weet je nog.
Sub betekent dat hij een subroutine moet uitvoeren. Hoe veel keer moet hij de subroutine uitvoeren?
Zoveel keer tot hij aan de laatste lijn van de code komt “End sub” (B).
Tweede lijn.
Dim iRow declareert de variable iRow als Long
Derde lijn
Dim ws declareert de variable ws als Worksheet
Vierde lijn
Set ws = Worksheet (“klanten”), geeft aan dat hij de gegevens moet wegschrijven naar het werkblad “klanten”.

Vijfde lijn is in het groen, dus dit is commentaar, geen code.
In de zesde en zevende lijn (C) gaat hij naar de laatst ingevulde rij, en gaat vervolgens na de volgende rij, welke een lege cel moet zijn.
.End(xldown) : vind de laatst gebruikte cel voor een lege cel.
Offset(1, 0) : en gaat een cel naar beneden. Mocht je hebben getypt Offset(0, 1), dan verplaatst hij zich een el naar rechts.
In de volgende blokken code (D) controleert hij of er iets is ingevuld in het vak, eerst voor het vak txtNaam, dan voor het vak txtAdres, enzoverder.
Vindt hij een vak dat leeg is na het klikken van de knop cmdToevoegen, dan geeft hij een venster weer waarin wordt vermeld dat je het vak moet invullen.

De code Me. is een VBA sleutelwoord dat een formulier gebruikt om naar zichzelf te refereren.

De code Trim verwijderd spaties voor en achter een tekst

De volgende vijf lijnen code (E) plaatst de gegevens in de database, of beter gezegd in de tabel in het werkblad “klanten”.
De laatste vijf lijnen (F) verwijderd de inhoud ven de cellen wanneer we de knop “Toevoegen” hebben geklikt.
En als laatste voegen we nog de code (G) om het formulier te sluiten toe aan de knop cmdSluiten.

les11_image001

Wanneer je iets verkeerd hebt getypt in de code, bijvoorbeeld de naam van het werkblad waar je de gegevens wil wegschrijven, dan zal VBA je hiervan op de hoogte brengen door een waarschuwingsvenster (A) te tonen, wanneer je de code uitvoert.
Sneltoets hiervoor is de F5 toets op je toetsenbord, weet je nog?
Klik je in dit venster op de knop “Foutopsporing”, dan zal VBA je tonen waar deze fout staat in de code (B).

les11_image002
Voor alle misverstanden uit de weg te helpen!
VBA is niet juist hetzelfde dan VB. Ze zijn vrij gelijkend, maar VB is een code waarmee je een applicatie schrijft, terwijl VBA code is die je in samenwerking met een applicatie gebruikt. Bijvoorbeeld Excel, Word of Access.

Knop toevoegen om het formulier te openen

En tenslotte, ik was het bijna vergeten, moeten we nog een knop toevoegen

die het formulier opent.
Selecteer hiervoor het werkblad “factuur”, kies het tabblad “Ontwikkelaars”, klik de knop “Invoegen” en kies een knop. Of je dit doet met een formulierbesturingselement of een ActiveX-besturingselement dat maakt niet uit, het is de VBA code die we hiervoor moeten aanpassen.
Als voorbeeld kies ik een formulierbesturingselement en teken de knop in het werkblad.
In het macro-venster dat verschijnt geef ik de macro een naam, en klik de knop “Opnemen”.
In het volgende venster hoef ik geen sneltoets in te geven, want ik heb de knop.
Dus klik ik OK.
Stop onmiddellijk daarna de opname van de macro, door de knop “Opname stoppen” te klikken.
Open het Visual Basic venster, en dubbelklik de module “Module2”.
Verwijder de code die de macro heeft geschreven, en typ onderstaande code in het code-venster:

Sub KlantToevoegen()
frmKlantGegevens.Show
End Sub

Ik denk dat deze nu wel duidelijk is.
Sluit het Visual Basic venster

les11_image005

En test de knop

les11_image006

Formidabel U hebt Les 11 voltooid START VOLGENDE LES