• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

formulier?

Status
Niet open voor verdere reacties.

EagleHunter

Gebruiker
Lid geworden
25 nov 2001
Berichten
166
Ik heb een database in Excel.

Ik wil graag dat, zodra ik dat bestand opstart, er een formulier verschijnt waarop ik simpelweg alle gegevens kan invullen om een nieuw record aan te maken.

Dit is natuurlijk heel simpel door op formulier in het menu data te klikken, maar....
*ik wil het formulier een andere opmaak kunnen geven
*bestaande records mogen niet zomaar veranderd kunnen worden.

Heb ik de wizard Sjabloon nodig? (heb ik namelijk niet + Office XP-cd heb ook niet)

Wie helpt?

Eagle
 
Laatst bewerkt:
Waarom iets makkelijk doen als het ook moeilijk kan, nietwaar?
Voeg een userform in en plaats daarop alles wat jij er op wil hebben.
Natuurlijk moet je daarna mbv vba ook aangeven wat er met de gegevens op dat formulier moet gebeuren.
 
Ehhh...

Er is toch nog wel een andere oplossing?

Het lijkt me teveel werk op alles om te switchen naar VBA. Of vergis ik me?

Eagle
 
Geplaatst door EagleHunter
Ehhh...
Er is toch nog wel een andere oplossing?
Eagle
Wat formulieren betreft heb je (denk ik) geen andere keus dan deze 2:
- Ofwel je neemt het formulier uit het menu Data dat je zelf al noemde, dan worden de gegevens automatisch op de juiste plaats in het bestand geplaatst zonder dat je daar zelf iets voor hoeft te doen.
- Ofwel je voegt een formulier in via het menu Invoegen in vba. Op dat formulier plaats je dan tekstvakken om je gegevens in te vullen, commandbuttons, afbeeldingen enz. De plaats op het formulier kun je helemaal zelf bepalen. Maar wat er met de ingevulde gegevens moet gebeuren, moet je óók zelf bepalen. Bv: je moet aangeven dat de laatst ingevoerde gegevens geplaatst moeten worden in de rij meteen na het laatste record.
Ik zie geen andere mogelijkheid, maar misschien weten anderen iets beters.
 
Goed, ik ga dat 'VBA' maar es proberen. Ik heb er nog geen verstand van, maar aldoende leert men, niet?

Heb je misschien een voorbeeldje voor me, zodat ik daar op kan verder breien?

Als je gen tijd hebt, dan laat maar zitten hoor. Als ik er niet uitkom vraag ik de Help van Office wel.

Bedankt voor je antwoorden, Fra!
 
Om de hele code hier uit te gaan schrijven vind ik een beetje te veel van het goede en dat zou me ook te veel tijd kosten. Maar om je op weg te helpen wat aanwijzingen.
- Kies in het menu van vba: Invoegen-Userform. Er komt dan een formulier te voorschijn (Userform1) met daarnaast de werkset besturingselementen (Is die werkset niet meteen zichtbaar, dan toevoegen via Beeld-Werkset). Het formulier kun je vergroten en verkleinen.
Ik weet niet hoe je database er uit moet komen te zien, maar wellicht staan daar o.a. NAW-gegevens in. Kies uit de werkset een label, plaats dat op het formulier en wijzig de tekst in het label in "Achternaam" (zonder aanhalingstekens). Plaats naast dat label een tekstvak (de breedte daarvan is uiteraard afhankelijk van het gekozen lettertype, de lettergrootte, en de lengte van de naam). Daarna plaats je labels en tekstvakken voor "Voornaam, evt. tussenvoegsels, postcode, woonplaats en de andere gegevens die je wil invoeren.
Je plaatst knoppen
- om de zaak te annuleren (er moet niets gebeuren),
- gegevens toe te voegen (de invoer moet in de database worden geplaatst en de tekst in de tekstvakken moet worden gewist),
- om de invoer te beëindigen (formulier moet verdwijnen).
Je voegt evt. andere besturingselementen toe op het formulier, bv. een keuzevakje man/vrouw, of een element om een logo of andere afbeeldingen te plaatsen, enz.
Vervolgens schrijf je de code om de invoer in het werkblad te plaatsen (hoort bij de button om gegevens toe te voegen), om invoer in de tekstvakken te wissen (hoort zowel bij de knop Annuleren als bij de knop Toevoegen), en om het formulier te laten verdwijnen (hoort bij de knop Ok waarmee je de invoer beëindigt. Bij starten van de werkmap zorg je er uiteraard voor dat het formulier verschijnt). Dit is een voorbeeld hoe het zou kunnen, het kan natuurlijk ook anders.
Zoals je zelf terecht opmerkt: vba leer je het best al doende, maar helaas is een formulier niet het eenvoudigst om mee te beginnen. Het is op zich niet zo moeilijk, maar het lijkt me dat er dan ineens te veel zaken op je afkomen die om een oplossing vragen. Waar je (o.a.) veel van kunt leren is van de voorbeelden die de helpfile van vba geeft bij de verschillende opdrachten. Maar van wat ik hierboven heb beschreven zal ongetwijfeld op deze of op een andere site ook wel voorbeeldcode te vinden zijn.
Succes!
 
Dit ga ik proberen!

Vriendelijk bedankt voor je tijd en moeite, Fra!

Voorlopig zet ik deze vraag maar op 'opgelost'...

Groeten,

Eagle
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan