• 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.

[2000] database uitbouwen, maar hoe?

Status
Niet open voor verdere reacties.

Chocka

Gebruiker
Lid geworden
6 jun 2004
Berichten
151
Wegens de vele reactie's op vacatures, willen ze bij mij op het werk de huidige excel gaan uitbereiden. Aangezien ik wat weet van Excel, lag die opdracht al gauw op mijn bordje. Leuke uitdaging, alhoewel VBA volledig ontbreekt aan mijn kennis. Daarnaast wil men er geen apart programma voor hoeven te kopen.

Tot nu toe was het gewoon een werkblad waar alle gegevens in werden opgeslagen. Maar door de tijd is dit bestand behoorlijk groot geworden. Daarbij ontstaan problemen dat diegene die er mee werken veel tijd kwijt zijn om te controleren of nieuwe gegevens al niet eens eerder door iemand zijn ingevuld. Plus het niveau van de dagelijkse gebruiker is zeer laag te noemen, waartoe er vaak ook fouten ontstaan of zaken onterecht worden aangepast.

Mijn voorstel is om een apart invoerblad te maken welke de gebruiker kan gebruiken, welke of in hetzelfde bestand of in een ander bestand de gegevens controleert en opslaat. Waarbij dit bestand alleen benaderd kan worden door leidinggevende.

Ik mijn idee-en al uitgewerkt in bijgevoegd bestand. Maar kwam daar niet direct verder mee en ben zodoende al twee dagen aan googlen om een mogelijk antwoord te vinden. Maar ook daar ben ik nog niet verder gekomen. Ik ben bang dat dergelijke idee-en cq oplossingen alleen mogelijk zal wezen met VBA, maar ondanks probeer ik toch iets verzinnen zonder VBA.

Is mijn idee haalbaar zonder VBA en indien ja, wie kan mij mogelijk verder helpen hoe dit aan te pakken.

Bij voorbaat dank voor uw reactie.
 

Bijlagen

Hallo,

Voor de vraag om te controleren of een naam al vaker voorkomt kun je Menu>Data>Formulier gebruiken.
Klik op "Criteria" en vul achternaam in met woonplaats daarna ENTER en zie.
Succes.
 
Dat klopt, zo ver was ik ook al gekomen. Maar het probleem is en blijft daarmee dat de gebruikers de gegevens kunnen aanpassen, wat uiteindelijk niet meer bedoeling mag wezen. Ook excel heeft database invoegtoepassingen waarmee dit heel leuk kan maken, maar ook daarmee heb ik nog niet voor elkaar om het invoerscherm en de database gescheiden van elkaar te krijgen. Ben zelfs al uitgeweken naar Access, maar daar kwam ik ook niet verder mee. Met bijkomende probleem dat de oude gegevens (historie) wegens de omvang niet laat importeren in van Excel in Access. Daarmee heb ik de optie van Access laten varen en ben verder gaan zoeken in Excel. Maar helaas zonder succes. Dus de vraag blijft:

Is mijn idee haalbaar zonder VBA en indien ja, wie kan mij mogelijk verder helpen hoe dit aan te pakken.

Bij voorbaat dank voor uw reactie.
 
Weer een stap verder. Het controleren van de gegevens heb ik kunnen oplossen. Maar dan gaat het erom hoe ik vanuit het invoerblad de nieuwe gegevens op een nieuwe regel krijg toegeschreven in de database???
 
Dat zal niet met formules gaan, heb je VBA voor nodig.

@Wigi, bedankt. Het antwoord waar ik al bang voor was.

Maar dan toch even ander vraag (offtopic) waar en hoe kan ik VBA mss ergens makkelijk gaan leren. Want ik begin het een behoorlijk gemis te vinden. Ik zal deze topic graag aangrijpen om VBA te leren, mogelijk kan ik dan alsnog de opdracht afronden, al weet ik nog niet hoeveel tijd dat zal gaan kosten. Bestaat er mss een VBA voor dummies of iets dergelijks???

Of is er mss een site waar een dergelijk scripts kan verkrijgen, want mijn idee van VBA is ook wel dat veel zaken ondanks in VBA toch veel standaard voorkomen. Maar daar kan ik volledig naast zitten!?

Hoor graag uw reactie.
 
Maar dan toch even ander vraag (offtopic) waar en hoe kan ik VBA mss ergens makkelijk gaan leren. Want ik begin het een behoorlijk gemis te vinden. Ik zal deze topic graag aangrijpen om VBA te leren, mogelijk kan ik dan alsnog de opdracht afronden, al weet ik nog niet hoeveel tijd dat zal gaan kosten. Bestaat er mss een VBA voor dummies of iets dergelijks???

Of is er mss een site waar een dergelijk scripts kan verkrijgen, want mijn idee van VBA is ook wel dat veel zaken ondanks in VBA toch veel standaard voorkomen. Maar daar kan ik volledig naast zitten!?

Hoor graag uw reactie.

Vooral googlen op

excel vba endatwatjezoekt

Die "endatwatjezoekt" kan best in het Engels gezet worden. Zoek je het commando om een rij te verwijderen, dan doe je:

excel vba delete row

Gegarandeerd kan je zo een groot deel van je antwoorden vinden. Ook de helpfiles in VBA moet je regelmatig bekijken en daarin zoeken. Het geeft o.a. weer wat de parameters zijn of argumenten van een commando. Of waarop eigenschappen en methoden van toepassing zijn. Stom voorbeeld, maar daar zie je dan dat de Save methode van toepassing is op een workbook (bestand) en bv. niet op een range (cel). Get the picture... :thumb:

Boeken en sites voor dummies? Uiteraard. Loop de boekenwinkel maar eens binnen. En zie dat de Excel versie zowat overeenkomt met die van jou. Tussen 2000 en 2003 waren er wel weinig verschillen, maar 1997 en 2007 zijn echt nogal verschillend op een aantal vlakken.

Vooral veel zelf doen, en code op forums als dit lezen (dan vooral van diegenen die antwoorden geven). Probeer het te snappen, test zelf uit, verander wat dingen en zie wat er gebeurt, daag jezelf uit en bedenk een simpel probleempje,... enz

Wigi
 
Bloed stroomt toch waar het niet gaan kan, dus heb ik site gevonden met een klein voorbeeldje waarmee ik het voor elkaar heb gekregen om met VBA een gegevens invoerscherm te maken, welke na wat geklooi het ook nog doet. Pffff. Maar ......

Mss wil iemand bijspringen om het zoeken wat te vereenvoudigen, want daar gaat een hoop tijd inzitten.

Ik probeer het volgende te gaan toevoegen:
- Als het scherm zich opent moet het leeg zijn, dus gegevens van de laatste invoer mogen niet blijven staan. Ik vermoed dat het zo iets wordt als
invoerscherm.clear(?) OPGELOST: Unload me, gebruiken
- Ik ga proberen iets te vinden zodat de gegevens eerst gecontroleerd worden of deze al niet een keer voorkomen in de database, anders mogen deze dan niet worden opgeslagen.
- En zodra de gegevens wel zijn toegevoegd aan de database, dat het bestand automatisch wordt opgeslagen, een soort ctrl-S functie in VBA.
Mss is dit een oplossing? ActiveWorkbook.SaveAs Filename:="C:\...\....xls"

Wie zin en tijd heeft mij te helpen, heet ik van harte welkom. Bij voorbaat dank.

Heb het laatste bestand bijgevoegd.
 

Bijlagen

Laatst bewerkt:
Ik ga proberen iets te vinden zodat de gegevens eerst gecontroleerd worden of deze al niet een keer voorkomen in de database, anders mogen deze dan niet worden opgeslagen.

Ondanks de tip van Wigi om te zoeken op excel vba, kom ik even niet verder met dat controleren van gegevens in VBA.

Ik zoek op excel vba validation data, maar krijg alleen maar niet VBA oplossingen.

Wie heeft er betere zoekterm, want hiermee begin ik een beetje dood te lopen. Bedankt.
 
Ik zou je met klem willen aanraden e.e.a. in Access op te lossen want je probeert allerlei zaken in Excel te bouwen die standaard in Access zitten. Dan hoef je dus niets te programmeren maar kun je je applicatie bij elkaar klikken en slepen.
Mijn advies zou dus zijn een goed boek over Access te kopen en je daarin te verdiepen.
Dat gaat je uiteindelijk veel meer tijd besparen dan nu snel even met Excel iets te 'programmeren' op basis van wat je op het internet hebt gevonden.
Realiseer je dat je nl. niet nu alleen tijd kwijt bent met het bouwen van je oplossing, maar dat jij in de toekomst ook degene bent die alle wijzigingen in de oplossing moet doorvoeren. Dit wordt wordt 'beheer' of 'onderhoud' genoemd.
Een softwareprodukt waarin customcode zit is veel lastiger te onderhouden dan een softwareprodukt waarin alleen van de standaardfunctionaliteit gebruik is gemaakt. Wellicht dat je nu nog weet hoe je macro's werken, over een half jaar is dat een heel ander verhaal.
Als je de basiskennis van Access onder de knie hebt had je in de tijd dat je dit verhaal hebt gelezen al een werkend invoerscherm gemaakt geklikt incl. validaties/controles.

suc6
 
Laatst bewerkt:
Klopt, dat boek heb ik al. Maar daarbij moet ik wel gebruik kunnen maken van het huidige excel bestand, wat al niet lukte om het fatsoenlijk geimporteerd te krijgen in access. Het origineel bestand bijkt niet helemaal zuiver te zijn en telt ruim 11.000 regels. Daarnaast kan ik, ondanks het boek, ook niet vinden hoe gegevens te controleren alvorens deze wel of niet op te slaan. Ik kom uit op het woord valideren, maar dat is het juist niet.

Daarnaast betreft het een redelijk platte structuur, waarbij het mij een uitdaging was om al zover te komen als dat ik nu ben met excel en het bouwen in VBA. Maar ook daar blijf ik hangen op het punt hoe nieuwe gegevens te controleren alvorens wel/niet kunnen worden opgeslagen.

En mocht ik het deze week voor elkaar krijgen toch in excel klaar te spelen, is het af. Het behoeft verder geen onderhoud te hebben.
 
Om iets op te zoeken in Excel:

Recht van mijn site geplukt:

Code:
Sub ZoekenInExcel()

    Dim rGevondenCel As Range
    
    Set rGevondenCel = _
        [B]Sheets("Blad1").Cells.Find(what:="datwatjezoekt"[/B], _
        LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False)
    
    If rGevondenCel Is Nothing Then
        MsgBox "Dit werd niet gevonden.", vbCritical, "Bericht"
    Else
        MsgBox "Dit werd gevonden in cel " & rGevondenCel.AddressLocal(0, 0) & ".", vbInformation, "Bericht"
    End If

End Sub

Wigi
 
Dat van jouw site heb ik idd al zitten lezen, maar het lastige eraan vond ik dat het gebaseerd is op het zoeken van het woord barbeque in een werkblad. Daarmee ben ik wel verder gaan zoeken hoe het mogelijk is om in plaats van alleen een woord te zoeken, deze functie variabel te krijgen zodat er gezocht wordt op hetgeen er is ingegeven in het invoerscherm. Maar dat heb ik nog niet gevonden?!
 
Maar WAT wil je dan controleren? Op welk veld? Je schrijft de waardes die in het Userform zijn ingevuld weg in een aantal cellen. De waarde van de betreffende cel kun je dan weer gebruiken om te zoeken, door de formule van WiGi te veranderen:
Code:
datwatjezoekt
in
Code:
Worksheets("Data").Cells(NewRow, 4).Value
als je op CV-code wilt zoeken
 
Aangezien in jouw voorbeeld een naam verschillende keren voorkomt doch met andere voorletters zal je moeten zoeken op 2 criteria en de code van Wigi enigszins aanpassen in die zin. Daarom in bijlage mijn suggestie.
Ik heb op sheet Data een hulpkolom gemaakt waarin Naam en Voorletters samengevoegd worden en daarop gezocht kan worden.

Ps Het is aan te raden om knoppen en velden in een formulier een betekenisvolle naam te geven zodat bij verwijzing in een macro je onmiddelijk weet over welk veld of knop het gaat;Textbox1of Button1 zijn hierbij weinig veelzeggend nietwaar?

Mvg

Rudi
 

Bijlagen

Maar WAT wil je dan controleren? Op welk veld? Je schrijft de waardes die in het Userform zijn ingevuld weg in een aantal cellen. De waarde van de betreffende cel kun je dan weer gebruiken om te zoeken, door de formule van WiGi te veranderen:
Code:
datwatjezoekt
in
Code:
Worksheets("Data").Cells(NewRow, 4).Value
als je op CV-code wilt zoeken

Van de in te voeren gegevens zijn er twee velden uniek te noemen, namelijk de CV code en de naam. Deze wil ik eerst laten controleren of deze al dan wel/niet voorkomen in de database. Mocht deze voorkomen dan wil ik deze zichtbaar tonen naast het invoerscherm, zodat er zichtbaar is wie; wanneer deze gegevens al voorkomen in de database. En dat daarmee bovendien de opslaanknop blokkeert. Hiermee te voorkomen dat gegevens dubbel worden opegslagen. Het lijkt mij niet handig eerst alles op te moeten opslaan en daarna pas te gaan controleren of er mogelijke duplicaten voorkomen.
 
Ps Het is aan te raden om knoppen en velden in een formulier een betekenisvolle naam te geven zodat bij verwijzing in een macro je onmiddelijk weet over welk veld of knop het gaat;Textbox1of Button1 zijn hierbij weinig veelzeggend nietwaar?

Bedankt voor je advies. Maar zoals je zal zien is dit nog geen definitieve versie, ik zal er zekers op gaan letten.

Aangezien in jouw voorbeeld een naam verschillende keren voorkomt doch met andere voorletters zal je moeten zoeken op 2 criteria en de code van Wigi enigszins aanpassen in die zin. Daarom in bijlage mijn suggestie.
Ik heb op sheet Data een hulpkolom gemaakt waarin Naam en Voorletters samengevoegd worden en daarop gezocht kan worden.

Bedankt voor de aangepaste versie. Zal het hierbij mogelijk kunnen zijn om de gevonden gegevens zichtbaar in of naast het invoerscherm te krijgen??? Daarnaast ga ik proberen voor elkaar te krijgen, dat indien de gegevens voorkomen dat de opslaan knop blokkeert zodat het niet mogelijk is deze dubbele gegevens alsnog toe te voegen aan de database..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan