Hulp bij access programma

  • Onderwerp starter Onderwerp starter RedB
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RedB

Nieuwe gebruiker
Lid geworden
3 jun 2013
Berichten
3
Beste,

Ik ben een complete leek in het programmeren en heb wat hulp nodig bij een programma dat ik aan het schrijven ben voor de opvolging van een aantal productieapparaten. Hieronder een screenshot van het formulier met twee subformulieren.

Main form 2.JPG

Het probleem ontstaat als ik een waarde in het subformulier wil aanpassen. Het gaat als volgt. Ik ga in 1 van de 2 subformulieren op de regel staan die ik wil aanpassen en klik deze regel aan. Vervolgens druk ik op de knop "Data Aanpassen". Nu wordt de data van het subformulier terug naar de tekstvelden vanboven overgehaald en kunnen deze aangepast worden. Zie screenshot hieronder.

Main form.JPG

Dit is de code die ik voor de knop "Data Aanpassen" gebruik.

Code:
Private Sub cmdDataAanpassen_Click()
         
        'check of er al data in de lijst staat
        If Not (Me.frmMengvijsVervangingenSub.Form.Recordset.EOF And Me.frmMengvijsVervangingenSub.Form.Recordset.EOF) Then
        'haal data over naar de textvelden
        With Me.frmMengvijsVervangingenSub.Form.Recordset
            Me.frmOptiongroep = 1
            Me.ID = .Fields("ID1")
            Me.txtMengvijs = .Fields("Mengvijs")
            Me.txtDatum = .Fields("Datum")
            'Mengvijs terug herkennen
            txtMengvijs_AfterUpdate
            'ID ergens opslaan zodat ik hier later naar kan verwijzen
            Me.ID.Tag = .Fields("ID1")
            'Verander de naam van de Data Toevoegen knop naar Data Bijwerken
            Me.cmdDataToevoegen.Caption = "Data Bijwerken"
            'Data Aanpassen knop onbruikbaar maken
            cmdDataToevoegen.SetFocus
            Me.cmdDataAanpassen.Enabled = False
        End With
        End If

        'check of er al data in de lijst staat
        If Not (Me.frmMengvijsMetingenSub.Form.Recordset.EOF And Me.frmMengvijsMetingenSub.Form.Recordset.EOF) Then
        'haal data over naar de textvelden
        With Me.frmMengvijsMetingenSub.Form.Recordset
            Me.frmOptiongroep = 2
            Me.ID = .Fields("ID2")
            Me.txtMengvijs = .Fields("Mengvijs")
            Me.txtDatum = .Fields("Datum")
            Me.txtWaardeA = .Fields("WaardeA")
            Me.txtWaardeB = .Fields("WaardeB")
            Me.txtWaardeC = .Fields("WaardeC")
            Me.txtWaardeD = .Fields("WaardeD")
            'Mengvijs terug herkennen
            txtMengvijs_AfterUpdate
            'ID ergens opslaan zodat ik hier later naar kan verwijzen
            Me.ID.Tag = .Fields("ID2")
            'Verander de naam van de Data Toevoegen knop naar Data Bijwerken
            Me.cmdDataToevoegen.Caption = "Data Bijwerken"
            'Data Aanpassen knop onbruikbaar maken
            cmdDataToevoegen.SetFocus
            Me.cmdDataAanpassen.Enabled = False
        End With
        End If

End Sub

De 2 subformulieren zijn:
frmMengvijsVervangingenSub
frmMengvijsMetingenSub

De tekstvelden zijn:
txtMengvijs, txtDatum, enz...

Ik kan 1 keer de datum aanpassen om data te wijzigen, maar daarna werkt het niet meer. Ik weet niet hoe ik de 2 wijzigingen van de subformulieren onder dezelfde knop kan aanpassen.

Kan iemand mij hiermee helpen?

mvg,

RedB
 

Bijlagen

  • Main form.JPG
    Main form.JPG
    78,4 KB · Weergaven: 48
Ik snap niet veel van je formulier; zo te zien heb je een niet-gebonden formulier met daarin twee formulieren met een zekere afhankelijkheid. Waarom niet één gekoppeld formulier en een daaraan gekoppeld subformulier? Ben je volgens mij gelijk klaar.
Want de werking van de subformulieren snap ik ook niet helemaal; waarom zijn die niet gekoppeld, en werk je met een simpel filter?
 
De formulieren hebben 1 link aan elkaar en dat is de dataentry "Mengvijs". De subformulieren geven de entries in 2 verschillende databases weer. 1 geeft metingen met respectelijke datums weer en de andere geeft vervangingen weer met dus andere datums. Ik wil de twee databases graag gescheiden houden en wil de waardes weergeven aan de gebruikers van het programma. Ik wil echter dat de data in beiden subformulieren en dus beide databases aangepast kunnen worden via dezelfde knop. Ik weet echter niet hoe ik ervoor kan zorgen dat ik geen foutmelding krijg als ik de data aanpas in 1 subformulier en dan data in het ander subformulier wil aanpassen.
Mijn vraag dus: Is er een simpele manier om dit toch te kunnen doen zonder al teveel aan te passen?

mvg
 
Zonder voorbeeldje? Weinig van te zeggen; ik vind nog steeds dat je het veel te ingewikkeld aanpakt, en dat je de formulieren niet zo zou moeten opbouwen. Maar om dat met meer zekerheid te kunnen zeggen, zou ik de db moeten zien. Nu denk ik: klok horen luiden, maar geen idee waar de klepel hangt...
 
Mijn vraag is simpel. Hoe kan ik de code laten werken om beide subformulieren aan te kunnen passen op de manier zoals bedoeld is met het hoofdformulier (waardes van subformulier naar hoofdformulier overhalen en ze dan aanpassen met een knop "data aanpassen"). Zoals je kan zien in mijn code heb ik de 2 stukken code van de subformulieren aanpassen gewoon onder elkaar gezet, waardoor hij altijd voor het aanpassen van het tweede subformulier gaat (dit vind ik vreemd, je zou eerder zeggen dat hij voor het eerste gaat). Ik wil hier met Case werken of met If/Else maar ik krijg het niet klaar. Ik weet dat ik het waarschijnlijk te moeilijk heb gemaakt, maar ik snap de code die ik heb wel.

In concreto het probleem:
Als ik een rij aanduidt in een subformulier om deze aan te passen dan wordt altijd de data van het tweede subformulier "metingen" overgehaald naar het hoofdformulier. Ik weet vrijwel zeker dat ik een fout heb gemaakt in de code, omdat ik de code van de 2 subformulieren aanpassen gewoon onder elkaar heb gezet omdat ik niet weet hoe ik ze kan scheiden. Zoals gezegd lukt het me niet met If-statements of Case-statement. Ik heb het ook al eens geprobeerd met TempVars. Wanneer dan in een subformulier een rij wordt aangeklikt dat hij dan een waarde instelt en onthoudt en dat ik die waarde dan kan gebruiken in een If-statement, om duidlijk te kunnen aangeven welk subformulier ik wil aanpassen.

Ter info: Beide Subformulieren moeten te zien zijn in het hoofdformulier. Vanuit dit hoofdformulier wordt de data ook ingegeven in de 2 subformulieren.

Als ik één van beide stukken code weglaat van een subformulier aanpassen dan werkt het wel perfect. Dan kan ik wel elk subformulier aanpassen, maar dus de 2 aanpassen zonder problemen lukt niet. Hoe kan ik dit simpel oplossen??
 
Je vraag mag dan simpel zijn, en je mag je eigen oplossing ook nog snappen, het feit dat je het niet aan de praat krijgt geeft al aan dat je insteek niet deugt. En zonder db kan ik er ook geen chocola van maken. Dus wat wil je nu eigenlijk van ons? Dat we zo uit de lucht een oplossing kunnen grijpen? Dus zolang je geen voorbeeldje post, blijft het (in ieder geval voor mij) kleiduiven schieten met een blinddoek om. En daar steek ik liever geen tijd in...
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan