Formulier gelocked, kan niks meer invoeren? + andere vragen

Status
Niet open voor verdere reacties.

medi533

Gebruiker
Lid geworden
2 dec 2011
Berichten
24
ik heb een uitgebreide db gemaakt met flink wat querys en formulieren.
hier de files:
https://drive.google.com/open?id=1OmLUoPqngn5We80Pym20CLSheZUanEJS
https://drive.google.com/open?id=1pVjkMC_PGSBvqCbHhgYAFHsOMwKVcy7v

ik loop echter tegen een aantal problemen aan opeens.
1. ik krijg de vorige ingelogde persoon niet weg. als in wanneer ik het programma open zie je nog staan welke gebruiker de vorige keer ingelogd heeft. Bijv RR in het eerste venster.

2. ik weet niet waarom maar op mijn 2 formulieren zit een blokkade waardoor ik niks kan invullen, ook werkt mn lege velden validatieregel niet zo goed. verder geeft ie soms een niet alle velden zijn ingevuld error terwijl dat wel is.
bij het invoeren van een nieuw record bij geneesmiddelinvoerformulier vraagt ie om een id bij het opslaan, maar hoe kan ik dat uitzetten? dat maakt ie toch zelf aan?

3. hoe kan ik instellen dat het programma automatisch een report print van een record na invullen van geneesmiddelinvoerformulier en geneesmiddelwijzigformulier? hij maakt nu iig al een pdf aan maar wil ook graag een autoprintfunctie

alvast bedankt als iemand wijze raad heeft voor mij
 
1. ik krijg de vorige ingelogde persoon niet weg. als in wanneer ik het programma open zie je nog staan welke gebruiker de vorige keer ingelogd heeft. Bijv RR in het eerste venster.
2. ik weet niet waarom maar op mijn 2 formulieren zit een blokkade waardoor ik niks kan invullen, ook werkt mn lege velden validatieregel niet zo goed.
3. hoe kan ik instellen dat het programma automatisch een report print van een record na invullen van geneesmiddelinvoerformulier en geneesmiddelwijzigformulier? hij maakt nu iig al een pdf aan maar wil ook graag een autoprintfunctie
Vraag 1: Waarom heb je het formulier aan de tabel [usysSettings] gehangen? Lijkt mij nergens voor nodig. Je gebruikt 'm niet als log tabel, en zo te zien doet-ie verder niks. De keuzelijst heeft 'm ook niet nodig. Zelf bepaal ik a.d.h.v. Environ("Username") of een gebruiker toegang heeft tot het systeem of niet. In de tabel [tblUser] kun je die makkelijk opslaan. Geen geldige inlognaam = geen toegang.
Vraag 2: om welke formulieren gaat het? Vraag 3: lijkt mij simpel; een printopdracht toevoegen aan een knop als je het record opslaat. Bijvoorbeeld bij de bladerknoppen. Zelf zou ik dat via een handmatige actie doen, want je wilt niet dat je elke keer als je ergens langs bladert, het ding een rapport gaat uitspugen.
 
Hoh, dat zijn veel vragen ineens en niet echt specifiek.Na een beetje rommelen, koppelen van de database, etc.... en na inloggen met RR en PW 123 zie ik in je VBA code dat je werkt met de usysSettings van je DB, waarom dat zo ver gaan zoeken?
Om op je eerste vraag te antwoorden zou ik gewoon gebruik maken van de Tempvars om je ingelogde persoon overal mee te nemen naar je formulieren, standaard voor je keuzelijsten, etc.... en die tempvars verwijderen zichzelf als je je DB sluit.
Vraag 2 heb ik die vraag voor opslaan van een ID niet gezien maar je vraagt wel veel informatie op te slaan en veel keuzelijsten werken niet, etc....
Waarom nog 's naar een paswoord vragen iedere keer je een formulier opent? Als bepaalde gebruikers een formulier niet mogen zien, laat staan openen, dan moet je dat op voorhand opvangen dat ze via een gebruikersniveau bij het inloggen meekrijgen.
Voor uw derde vraag plaats je deze regel na je pdf print regel
Code:
DoCmd.OpenReport "rptCurrentGeneesmiddel", acViewNormal
 
vraag 1:ik wilde een inlog systeem en hier kwam ik destijds toen bij dit uit, weet niet hoe dat anders moet.

vraag 2 ging over de formulieren :geneesmiddelinvoerformulier en geneesmiddelwijzigformulier.
heb nu wat velden weer gekoppeld maar nu werken beide formulieren niet meer zoals ze moeten... zie de drive link voor een update file https://drive.google.com/open?id=1pVjkMC_PGSBvqCbHhgYAFHsOMwKVcy7v
Heb dynaset inconsistent geselecteerd en nu werkt dit weer. ik krijg wel een error bij het opslaan bij het bewerkformulier. waarom staat record 861 hier standaard op? deze staat ook opeens bovenaan in overzichtstabellistform
bij het invoerformulier lukt het opslaan nog niet echt, wat doe ik hier fout?

waarom zoveel wachtwoorden? dat moet vanwege de veiligheid, bij elke wijziging of opening etc. wil ik die password prompt.
zodat niemand iets kan invoeren als er iemand anders ingelogd staat oid. Dus dat laat ik ook zoals het nu is.

bedankt voor de code voor dat report, hoe zou ik dat dan toch automatisch laten printen als ik dat zou willen ?
 
Laatst bewerkt:
anyone? mn belangijkste vraag is dus waarom het invoerformulier niet werkt en waarom ik alsnog een error krijg bij het het bewerkformulier.
 
Laatst bewerkt:
Heb weinig tijd gehad, maar ik hou 'm in de gaten. Zal er vanavond nog even naar kijken. Overigens kan je veel beter een Timeout instellen op de db m.b.v. een formulier, waarbij je dus op basis van inactiviteit de db lockt. Dan kan de gebruiker zonder gezeur van wachtwoorden gewoon doorwerken, en is je systeem toch veilig. Ik vind jullie methodiek, net als Johan, bizar gebruikersonvriendelijk. Ik had als gebruiker al lang de bibs in de krib gegooid!
 
Ik heb nog wel een paar vraagjes:
1. Waarom twee identieke formulieren? Je kunt makkelijk met één formulier werken, die je in verschillende modi (bewerken, toevoegen) opent.
2. Wat doet de tabel [GPKTabel] in je query? Het veld [GPKNummer] zit óók in de tabel [Overzichtstabel]. Bovendien wil je het niet invullen in de verkeerde tabel, lijkt mij.
Het verwijderen van de tabel [GPKTabel] lost gelijk je probleem van het invoeren op. Nog een reden om die tabel daar te verwijderen.
 
Ik heb nog wel een paar vraagjes:
1. Waarom twee identieke formulieren? Je kunt makkelijk met één formulier werken, die je in verschillende modi (bewerken, toevoegen) opent.
2. Wat doet de tabel [GPKTabel] in je query? Het veld [GPKNummer] zit óók in de tabel [Overzichtstabel]. Bovendien wil je het niet invullen in de verkeerde tabel, lijkt mij.
Het verwijderen van de tabel [GPKTabel] lost gelijk je probleem van het invoeren op. Nog een reden om die tabel daar te verwijderen.
1. ok ik zal daar eens naar kijken dan!. Hoe gaat dat precies in zijn werk? vba code voor de modus waarin het geopend wordt?
2. 1 gpk nummer is gekoppeld aan meerdere knmp nummers. ik wil dat gebruikers dit nummer ook moeten invoeren bij het geneesmiddelbewerkformulier.
dus die 2e tabel is om alle verschillende knmp nummers die bij de gpk's horen te linken.
 
Weet je na 7 jaar HelpMij nog steeds niet waar de QUOTE knop voor is? En dat absoluut niet de bedoeling is dat je daar COMPLETE berichten mee herhaalt, die ook nog eens netjes pal boven jouw vraag, en ook nog eens volslagen leesbaar, te lezen zijn?

dus die 2e tabel is om alle verschillende knmp nummers die bij de gpk's horen te linken.
En daar heb je keuzelijsten voor op een formulier. Nergens voor nodig om die tabel aan de bron te koppelen.
Wat je eerste vraag betreft: als je een formulier opent vanaf een ander formulier (hoofdformulier, startformulier) dan kun je als parameter meegeven of je het formulier wilt gebruiken om records te bewerken, of records in te voeren. Dus dan gebruik je 1 formulier voor twee verschillende taken.
 
Excuses, ik heb niet 7 jaar op dit forum gezeten, heb toevallig 7 jaar geleden een account ergens voor aangemaakt en in de tussentijd niet meer gekeken. Nicknamechange is ook onderweg.(was een beetje kinderachtig deze naam natuurlijk, moderators zijn gemaild)

Heb nu het invoerformulier verwijderd en dit gebruikt om het te openen in dataentrymode:
Code:
   DoCmd.OpenForm "Geneesmiddelbewerkformulier", , , , acFormAdd
Ik krijg na wijziging en na invoer elke keer alsnog de foutmelding ''on error go to problem'' melding met niet alle velden zijn ingevuld terwijl dat wel is. Wat doe ik fout? is er een betere manier om te zorgen dat de vereiste velden ingevuld zijn voor een update?(niet alles is vereist though)

keuzelijstopmerking: Ik snap niet hoe dat efficiënt werkt, die keuzelijst kan namelijk HEEL lang worden. ik wil ook niet dat users via de keuzelijst zoiets kunnen invoeren, maar handmatig moeten intikken.
de gpkcodes zitten niet in de overzichtstabel, maar wel in het geneesmiddelbewerkformulier wat beide tabellen update. 1 gpkcode kan meerdere knmpnummers geven.
Ik probeer met een updatequery de gpknummers in mijn overzichtstabel te krijgen zodat de gpktabel weg kan, dit lukt me echter nog niet... hoe moet dit precies? update query die knmpnummers linkt en dan?

nieuwste versies: https://drive.google.com/open?id=1JV...i1cVmXTL5Vq_aO

https://drive.google.com/open?id=1LM...KmvCfhwtUzRwXK
 
Laatst bewerkt:
Ik kijk er weer even naar! Ik snap nog niet helemaal de bedoeling van die gpk nummers en waarom je met het ene nummer het andere nummer moet opzoeken. En als de lijst met op te zoeken nummers ook nog eens gruwelijk lang is, en de lijst met resultaatnummers ongeveer net zo groot, dan kun je toch net zo goed die knmp nummers intypen?
Keuzelijsten gebruik je om invoer te vergemakkelijken. Als de keuzelijst heel lang is, dan kun je nog wel een tekstvak gebruiken om de keuzelijst te filteren. Maar ik snap dus niet wat je er mee aan het doen bent.
 
zie het maar zo:
een gpknummer is een soort voorschrijfnummer. Dus als een arts iets voorschrijft dan zou je daar een gpknummer aan kunnen koppelen.
Per gpknummer zijn er verschillende merken medicijnen die geschikt zijn voor deze voorschrijving. momenteel zijn er inderdaad nog niet veel verschillende knmpnummers per gpknummer, dit wordt echter alleen maar meer zodra de database groter wordt.

Per knmpnummer zijn er meerdere barcodes, die staan in die aparte tabel. Door een denkfout heb ik dit dus ook met de gpknummers gedaan..dom i know..maar hoe krijg ik die gpknummers nu weer terug in de tabel?

De foutmelding zit hem in deze :
Code:
DoCmd.OpenReport "rptCurrentGeneesmiddel", acViewNormal, , "[RecordID] = " & [RecordID]
wat doe ik hier fout?

overigens geeft dit ook een foutmelding:
Code:
Private Sub Knop179_Click()
On Error GoTo Problem
DoCmd.RunCommand acCmdSaveRecord
Dim FileName As String
Dim FilePath As String
FileName = Me.Geneesmiddel & Me.Id
FilePath = "C:\Users\managergal\Desktop\printscreens\" & FileName & "_" & Format(Date, "DD_MMM_YYYY") & ".pdf"

DoCmd.OutputTo acOutputReport, "rptCurrentGeneesmiddel", acFormatPDF, FilePath, False
MsgBox "Wijzigingen opgeslagen en versiegeschiedenis geupdate"
DoCmd.Close

Problem:
MsgBox "Probleem!"


End Sub

maar als ik die onerror go to problem en die messagebox eruit haal dan is er niks aan de hand.(lijkt het)

https://drive.google.com/open?id=18or-xEVQhNswZy6YJ7tKowltLyD9PlFR nieuwste versie
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan