Record opzoeken en velden automatisch invullen

Status
Niet open voor verdere reacties.
Michel,

1. Wat moet ik veranderen om het formilier nieuw schip ook in een apart venster te laten openen?
2. In de keuzelijst cboIMO, wordt de naam van het schip weergegeven. Daar moet het IMO nummer komen. Ik heb geprobeerd met de afhankelijke kolom op 0 te zetten, doch dit lukt niet.
 
1. Dit formulier moet nu kunnen worden afgedrukt. Zet ik dezelfde velden met dezelfde lay-out in een rapport?

2. Ik vermoed dat ik een nieuw formulier dien te maken om een gedeeltelijk ingevuld record, terug op te vragen en bij te vullen.
Het liefst zou ik willen zoeken op datum en IMO nummer.
 
Wat betreft je vragen:
Ad 0) Ik gebruik de gebeurtenis <Bij niet in lijst> om nieuwe waarden toe te voegen aan een keuzelijst. Dus als je in [cboIMP] een naam invult die niet bestaat, dan wordt de naam 'overgeheveld' naar het formulier waarin je (in jouw geval dan) schepen invoert. Je kunt dan eerst alle noodzakelijke gegevens invullen, vervolgens het formulier sluiten en doorgaan met je oorspronkelijke formulier, dat dan is bijgewerkt met het nieuwe schip.
Ad 1) Als het rapport dezelfde gegevens moet bevatten als het formulier, dan moet je in ieder geval dezelfde gegevensbron gebruiken. In een rapport kun je uitgebreid groeperen, dus wellicht kun je daar nog wat extra's mee.
Ad 2) Probeer het aantal formulieren te beperken, zeker als ze in beginsel dezelfde layout hebben. Je kunt formulieren openen in verschillende modi, zoals Gegevensinvoer op Ja, Bewerken toestaan op Nee etc. Om een formulier dus te gebruiken voor het invoeren van nieuwe records hoef je het alleen maar te openen in de Gegevensinvoer modus. Dus geen nieuw formulier, wel een aparte knop o.i.d. Hetzelfde geld voor het bewerken van het record.
 
0. Wat plaats je in de code?
Private Sub cboIMO_NotInList(NewData As String, Response As Integer)

End Sub

1. OK wordt aan gewerkt

2. Om een formulier bij te vullen, dien ik een half ingevuld formulier terug op te roepen. Het schip komt echter verschillende keren binnen in de haven. Hoe kom ik op het juiste record terecht?
 
Voorbeeldje van NotInList:
Code:
----------------------------------------------
Private Sub cboKlant_NotInList(NewData As String, Response As Integer)
'-----------------------------------------------------------------------------------------------------------
' Code op een eigen keuzelijst. De waarde wordt direct toegevoegd met een apart popup formulier.
'-----------------------------------------------------------------------------------------------------------
Dim Result
Dim Msg As String, CR As String

    CR = Chr$(13)
    If NewData = "" Then Exit Sub

    Msg = "'" & NewData & "' staat niet in de lijst." & CR & CR
    Msg = Msg & "Wil je " & NewData & " toevoegen?"
    If MsgBox(Msg, vbQuestion + vbYesNo) = vbYes Then
        DoCmd.OpenForm "Klant - details", DataMode:=acFormAdd, WindowMode:=acDialog, OpenArgs:=NewData
    End If
    Me.cboKlant.Requery
    ' Zoek de nieuwe klant op in de tabel Klanten.
    Result = DLookup("[KlantID]", "Klanten", "[Bedrijfsnaam]='" & 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.cboKlant = Result
    End If
End Sub
 
Hartelijk bedankt voor de aangegeven tips. Zal nu eerst alles proberen uit te werken. Tot later.

De titel van topic is voor mij opgelost. Ik heb nog vragen , doch zal deze in een ander topic melden.

Bedankt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan