Macro - Wizard opdrachtknop

Status
Niet open voor verdere reacties.

Gielleke

Gebruiker
Lid geworden
9 feb 2009
Berichten
110
Beste Forumleden,

Graag ben ik op zoek naar meer uitleg over mijn gedachte van een macro in Access 2007.

Ik heb gemerkt als je een macro maakt van bijvoorbeeld een record opslaan en derna naar een nieuw record te gaan. dat Access in 2007 hier een macro voor moet opslaan.

Maar:

Als je de wizard opdrachtknop gebruikt op je record op te slaan, kan je hierbij nog een afbeelding invoegen wat mooi is. Waar Access nu automatisch een maco van maak, en als ik hierbij zelf nog de regel aan toevoeg van "opdracht uitvoeren naar nieuw record" gaan. En ik sla dit op dat er geen macro meer wordt toegevoegd in mijn lijst?

Kan er iemand meer uitleg bieden?
Bedankt.
 
Als ik de vraag goed begrijp, wil je eigenlijk geen macro gebruiken voor wat je wilt, en daar kan ik je helemaal gelijk in geven; met de wizard Opdrachtknop kan dat (m.i.) veel mooier.

Persoonlijk zou ik een knop <Opslaan> niet gebruiken om daarna naar een nieuw record te gaan, omdat een gebruiker na het opslaan misschien wel niet naar een nieuw record wil gaan; misschien wil hij/zij daarna wel sluiten, of verder iets doen op hetzelfde record.

Ik zou dus twee knoppen maken: één voor alleen opslaan, één voor een nieuw record, en zelf gebruik ik uiteraard ook een knop om het formulier te sluiten.

Als je de knoppen met de Wizard maakt, en je bekijkt daarna de VB code die is gegenereerd, zie je dat het vaak maar een paar simpele commando's zijn, die je uiteraard ook naar andere knoppen kunt kopiëren. Ik zou bijvoorbeeld dan de commando's bij de knop <Opslaan> kopiëren naar de knoppen <Nieuw record> en <Sluiten>.

Ziet er dan bij de knop <Nieuw> als volgt uit:

'Commando gekopieerd uit <Opslaan>:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

'Commando gemaakt met de wizard <Nieuw record>:
DoCmd.GoToRecord , , acNewRec

Uiteraard zet je het commando uit Opslaan vóór het commando acNewRec, want je wilt eerst het huidige record opslaan.

Is dit wat je bedoelt?

Michel
 
Beste OctaFish,

Bedankt voor jou reactie,

zal even de situatie verduidelijken.:D
Het formulier dat ik gebruik is één om banktransacties in te voeren.
Dat ook enkel door mij zelf zal gebruikt worden, omwille dat ik nu Excel gebruikte maar wou toch even ook iets maken in Access 2007. Omdat ik denk dat dit beter zal werken.

Maar nu heb ik gemerkt voor knoppen te maken op je formulier.
dat je dat op verschillende manieren kunt doen.

1) Wizard opdrachtenknop: dan krijg je al een mooie marco van access met een afbeelding.

2) Door zelf een macro aan te maken aan de knop. Maar dan krijg je een opgeslagen macro in je navigatie venster.

3) Volledig door VBA code.

Naar jou mening kies jij volledig voor optie 3 niet?

Bedankt.
 
Voor de basishandelingen bestaan prima wizards, die je dan zelf kunt tweaken.
Ik kies dus meer voor een combinatie van 1 en 3: eerst een knop maken m.b.v. de wizard, en dan aanvullende code (bijvoorbeeld) kopiëren van een andere knop. Of uiteraard zelf schrijven, als dat sneller/makkelijker is.

Michel
 
Beste OctaFish,

Zou dit ook jou keuze zijn?

P.s. dit is even snel een voorbeeld.:D

Bedankt.
 

Bijlagen

  • Afb.1.jpg
    Afb.1.jpg
    11,8 KB · Weergaven: 106
Vroeger deed ik alles met macro's. Nu alles met VBA code omdat de mogelijkheden met VBA eindeloos zijn.
Helemaal als je gestructureerd wil werken is VBA aan te raden. Met een goede methode kan je naderhand ook handig nieuwe functionaliteit toevoegen.
Sinds kort werk ik in 3 lagen:
1 Datainvoer (Formulier)
2 Dataprocessing (module)
3 Datastorage (tabel)

In laag 1 (formulier) kan je data invoeren
in laag 2 wordt de data verwerkt (een berekening, een extra controle enz)
in laag 3 schrijf je de data weg naar een of meerdere tabellen.

Alles loopt via 1-2-3 en vice versa. In de formulieren worden alleen nog maar modules aangeroepen.
Als de database flink groter wordt is dit een ideale manier van werken.
 
Beste Floor E,

Werkte vroeger in Excel ook graag met VBA. Ben zeker geen prof maar een textbox visible laten worden was geen probleem.

Soms is er wel een nadeel in VBA dat je soms meer dan één oplossing of weg is voor een resulaat te krijgen. En de ééne is daarom niet beter als de andere.

Ook de VBA code in Access is toch anders als in Excel.

voorbeeld: een code om een forumulier te sluiten kan eenvoudig uitgedrukt zijn door.

DoCmd.Close

Maar dan heb ik al voorbeelden gezien waar men een volledig dagboek bij aanvuld.:D

Zie bijlage.
 

Bijlagen

  • mod1_4.jpg
    mod1_4.jpg
    19,7 KB · Weergaven: 109
Ziet er netjes uit! Zelf prefereer ik nog altijd de oudere versies, maar ik moet toegeven dat de knoppen in 2007 fraaier zijn :thumb:
Nog een schoonheidstip: Ik plaats knoppen altijd in de Footer van het formulier; daarmee krijg je een consistente layout, als je een formulier groter of kleiner maakt, en je kunt m.b.v. een andere kleur je formulier nog weer wat strakker maken.

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan