refresh van formulier na invoeren nieuwe records in tabel

Status
Niet open voor verdere reacties.
Ik ben even kwijt waar ik die parameter in moet voeren. Dat kan uiteraard bij het formulier Klantenlijst onder de gebeurtenis 'bij openen', maar dan moet er vast nog iets voor :-). In dat geval zal echter altijd alleen een nieuw record worden weergegeven. Ik wil dat afhankelijk maken van de actie die je uitvoert. Praktisch gezien bedoel ik dit:
- Als een nieuwe klant vanuit het formulier Invoer wordt ingevoerd moet hij naar het formulier Klantenlijst gaan en alleen het ingevoerde record laten zien.
- Als ik rechtstreeks het formulier klantenlijst open, dan wil ik alle klanten zien (en moet het filter actief blijven).
 
Deze structuur moet je gebruiken bij het openen:
Code:
DoCmd.OpenForm "Formuliernaam", acFormAdd:=acFormAdd
En die code zet je natuurlijk op de gebeurtenis waarmee je het formulier opent, niet op het formulier zelf, want dat wordt dan al geopend.
 
Ik heb geprobeerd je opmerking te verwerken in mijn bestaande VBA code. Deze code treedt in werking als de naam van de klant niet in de lijst voorkomt. Ik krijg het echter niet voor elkaar om jouw stukje code in mijn VBA code te verwerken. Mijn huidige code:
Code:
Private Sub cboKlantID_NotInList(NewData As String, Response As Integer)

Dim Result
Dim Msg As String, CR As String

    CR = Chr$(13)
    If NewData = "" Then Exit Sub
    Msg = "'" & NewData & "' is nog geen bekende klant." & CR & CR
    Msg = Msg & "Wil je " & NewData & " toevoegen?"
    If MsgBox(Msg, vbQuestion + vbYesNo) = vbYes Then
        DoCmd.OpenForm "Klantenlijst", , , , acAdd, acDialog, NewData
        End If
    ' Zoek de nieuwe klant op in de tabel tKlanten.
    Result = DLookup("[KlantId]", "Klantenlijst", "[Klantnaam]='" & NewData & "'")
    If IsNull(Result) Then
        ' Als de klant niet is gemaakt, Response argument op Error message zetten en herstellen.
        Response = acDataErrContinue
        MsgBox "Nog een keer proberen...", vbOKOnly
    Else
        ' Als de klant is gemaakt, het Response argument Added zetten.
        Response = acDataErrAdded
        Me.cboKlantID = Result
    End If
    
End Sub
Het lukt niet als ik jouw stukje code toevoeg aan mijn eigen DoCmd.OpenForm "Klantenlijst", , , , acAdd, acDialog, NewData
Ik krijg echter steeds een foutopsporing... Wat doe ik verkeerd?
 
Je opent het formulier al in toevoegmodus; ik snap dan eerlijk gezegd niet wat het probleem is, want je zou dan dus niet door de overige records moeten kunnen bladeren.
 
Ik weet ook niet waar het aan ligt. Wat ik wel merkte is dat als ik de VBA van het filter uitschakel, dan opent hij wel weer in de toevoegmodus. Het gaat om deze code:

Private Sub Form_Open(Cancel As Integer)
Call sbFilteren
End Sub

Moet daar dan ergens in opgenomen worden dat het formulier in toevoegmodus moet starten?
 
Ik snap niet waarom je dat filter gebruikt, maar ik snap prima dat het formulier het prima doet als je hem niet gebruikt. Als je een formulier met acAdd opent, zijn er geen records en valt er ook niets te filteren. Ik durf er wel wat geld op te zetten dat je in dat filter geen rekening houdt met die situatie (geen records)...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan