Beste Mark,
Ziet er mooi uit. Het is te zien dat je veel aandacht hebt besteed aan de lay-out en aantrekkelijkheid. Het startscherm, het logo en de help zijn allemaal erg mooi gedaan. Ook heb ik hier en daar naar de programmeercode gekeken en het is altijd leuk om dan weer nieuwe ideeen op te doen…
Ik heb nog niet de tijd gehad de applicatie uitvoerig te testen, maar hieronder alvast een aantal punten waar ik tegenaan ben gelopen in willekeurige volgorde:
1. E-mail
Omdat ik geen Outlook (maar Lotus Notes) gebruik kan ik dit deel niet testen. Ik vraag me wel af waarom er per sé een directory c:\Orchids moet zijn. En waarom ook het bestand een speciale naam moet hebben. Je kunt er ook voor kiezen om de huidige werkdirectory te nemen, met:
En voor de gekozen bestandsnaam is ook vast een oplossing om die te lezen en door te geven.
2. Volgorde van invulvelden
Bij het invoeren van de velden ben ik gewend TAB te gebruiken. Die brengt me echter van links naar rechts en onder naar boven. Een logische volgorde is gewenst.
N.B. dit kun je doen door de property TabIndex aan te passen.
3. MGRS coordinaten
Graag ook verzoeken de zone te vermelden. Dus Caption van Label20 wordt dan “35S PA03015/18799”
Bij het ontbreken van de zone is het nl. hard werken om de coordinaten om te rekenen naar een ander stelsel of om ze in een GPS in te lezen.
4. Form Waargenomen soorten - Invoeren species
Hoewel de species per soort zijn ondergebracht is het nog steeds een aanzienlijke lijst. Het moet mogelijk zijn om de properties van het veld zo in te stellen dat er bij het typen van de eerste letter(s) de selectie gelijk verspringt naar de soorten die beginnen met die letter. Ik weet het niet uit mijn hoofd, maar om te beginnen zal bij soortnamen de voorloop-spatie moeten worden verwijderd. Verder dacht ik dat het te maken had met de properties MatchEntry, BoundColumn, enz.
5. Form Waargenomen soorten - Invoeren species 2
Stel ik ga een grote hoeveelheid vindplaatsen invoeren van Cyprus. Ik moet me nu iedere keer door de 285 ophrys-soorten heenworstelen. Graag zou ik van te voeren kunnen aangeven welke species ik in mijn combobox kan zien.
Dit kan b.v. door extra kolommen toe te voegen op het tabblad “Soortenbank”. B.v. na kolom ZZ komt er een (smalle) extra kolom (niet niet protected is) waarin ik een “x” kan zetten. Nu worden alleen de soorten ingelezen in de combobox waar een kruisje achter staat.
6. Save file
Eigenwijs als ik ben heb ik onmiddelijk een kopie gemaakt van het bestand. Hierop kreeg ik foutmeldingen, o.a. bij het sluiten van het invoerscherm.
Dit is m.i. op te lossen door de hard-gecodeerde filenaam te veranderen in
7. Geselecteerde vindplaatsen weergeven in een rapport
Wanneer ik deze functie gebruik moet ik een hele rij selecteren, want als ik slechts 1 cell selecteer krijg ik een raar resultaat. Dit kan opgelost worden door in Macro10 “Selection.Copy” te vervangen door:
8. Gebied/Streek/Provincie
Ik geloof dat ik je met eerder opmerkingen in de war heb gebracht. In het VPA worden de volgende twee vormen gebruikt:
- Land – Prov/Dep – Plaats. Deze drie velden zijn hierarchisch en het is de bedoeling dat hier de gangbare administratieve namen worden ingevuld
- Gebied of Streek. Is een “losse” aanduiding die meerdere provincies (of zelfs landen) kan raken. B.v. “Vercors” of “Pyreneeën”
Je *mag* (net of ik daar wat over te zeggen heb) van mij gerust het veld Gebied of Streek laten vervallen. Hiervoor in de plaats kun je dan het veld “PlaatsID” toevoegen – zie hieronder ;)
9. PlaatsID
Zoals al eerder besproken is dit een handig veld. Als er geen PlaatsID is ingevuld zou het genereren van een PlaatsID als volgt kunnen doen (nummering per land):
Stel: - conventie voor een PlaatsID is «LandCode»-«NR»; b.v. “NL-008”
- PlaatsID’s staan in kolom “A” van “Vindplaatsenarchief”
Code: Selecteer alles
Public Const SH_VPA As String = "Vindplaatsenarchief" 'sheetname waarop de vondsten
Public Const COL_PID As Integer = 1 'kolom met de PlaatsID's ("A") is 1
Public Function generatePlaatsID(landcode As String) As String
Dim highest As Integer: highest = 0
Dim lc As String: lc = LCase(landcode) & "-"
Dim pid As String
Dim pidNO As Integer
Dim cell As Range
For Each cell In _
ActiveWorkbook.Sheets(SH_VPA).Range( _
Range("A1").Offset(0, COL_PID - 1), _
Range("A1").Offset(65535, COL_PID - 1).End(xlUp))
pid = LCase(cell)
If Left(pid, Len(lc)) = lc Then
pidNO = Val(Right(pid, Len(pid) - Len(lc)))
If highest < pidNO Then highest = pidNO
End If
Next cell
generatePlaatsID = landcode & "-" & (highest + 1)
End Function
NB. Als er door de gebruiker wel een PlaatsID is ingevuld kun je natuurlijk controleren of deze al bestaat.
10. Data ontwerp
Over de gekozen oplossing om 24 vondsten op een regel te zetten ben ik wat minder enthousiast. Ik begrijp waarom je dit gedaan hebt. Echter, het is heel moelijk om nog grote zaken aan het programma bij te bouwen. Ook is het lastig voor de gebruiker om b.v. in het excel bestand te graven. Sorteren/filteren op soort, het bijvoegen van een soort aan een vindplaats, enz. gaat erg lastig.
Ik snap dat deze keuze niet een-twee-drie te veranderen is, maar wellicht kunnen we hier over brainstormen. Ik zal deze discussie met je direkt voeren.
VGr, Rien