Een record uit een tabel halen en in een formulier invullen.

Status
Niet open voor verdere reacties.

Timg

Gebruiker
Lid geworden
1 apr 2011
Berichten
32
Beste,

Ik zit met volgend probleem:
Ik heb een tabel waar verschillende gegevens in worden bijgehouden.
ID, Werknemer, Melder, Datum, Tijden, Probleem, Oplossing, Storing, enz...

Het is de bedoeling dat, als ik op een record in de tabel klik, (In dit geval het veld ID) er een formulier opent en waar alle gegevens, aanwezig op de geklikte record, instaan. Dit om een mooi overzicht te krijgen.

Ik heb voor het moment onderstaande code: (bij de rode tekst loopt het fout.)


Private Sub ID_Click() 'Bij klik op het veld ID
On Error GoTo Error 'Bij een fout
Dim object As Object

Dim rst As DAO.Recordset
Dim strSearchID As String
'Open formulier 'Overzicht'
DoCmd.OpenForm "overzicht", acNormal, "", "", , acWindowNormal

Set rst = Me.RecordsetClone
strSearchID = Str(Me.Id)
rst.FindFirst "[IDoverzicht]=" & strSearchID
If rst.NoMatch Then
MsgBox "Record is niet gevonden."
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close

Einde:
Exit Sub

Error:
MsgBox Err.Number & " - " & Err.Description, vbInformation, "Foutmelding!"
Resume Einde


Bij de foutmelding krijg ik:
Fout 3070: Kan 'IDoverzicht' niet herkennen als een geldige veldnaam of expressie.
Bij mijn Formulier genaamd 'Overzicht' heb ik als veldnaam nochtans 'IDoverzicht' ingevuld.

Weet iemand hier een oplossing voor?

Alvast bedankt,
Timg
 
Ik vermoed dat je veld [IDoverzicht] op het eerste formulier wordt gezocht. Daar maak je ook een recordsetclone van, om voor mij onduidelijke redenen. Maar je zult zelf wel weten waarom je het zo doet ;) Als ik je verhaal namelijk goed lees, wil je alleen het geselecteerde veld [ID] openen in het tweede formulier.
 
Ik vermoed dat je veld [IDoverzicht] op het eerste formulier wordt gezocht. Daar maak je ook een recordsetclone van, om voor mij onduidelijke redenen. Maar je zult zelf wel weten waarom je het zo doet ;) Als ik je verhaal namelijk goed lees, wil je alleen het geselecteerde veld [ID] openen in het tweede formulier.

beste,
Ik ben totaal verkeerd bezig als ik uw uitleg lees. :eek:

Het is eigenlijk de bedoeling dat de gebruiker de tabel kan bezien en als hij op een ID klikt, dat dit volledige record wordt gekopieerd en in een ander formulier wordt ingevuld om zo een beter overzicht te geven. (tabel is niet duidelijk genoeg)

Dus als hij op ID rij 5 klikt. Dan wordt alles wat op rij 5 staat gekopieerd en in een formulier weergegeven.

groeten,
Timg
 
Dat oogt nog steeds als een vreemde aanpak; een record kopieëren om hem te kunnen bekijken. Gegevens van een tabel bekijken doe je via formulieren; als je van die tabel een enkelvoudig formulier maakt, moet je in beginsel toch wel alles op het scherm kunnen krijgen. Wat je dan met je doorlopende formuliertje doet, is dit record openen in een apart formuliervenster. Daarvoor zijn maar twee regels code nodig:
Code:
        sFilter = "[IDoverzicht]=" & Me.ID
        DoCmd.OpenForm "Overzicht", , , sFilter
 
Beste,

Ik kan nu een bepaald record openen in een formulier met volgende code:

Code:
Private Sub ID_Click() 'Bij klik op het veld ID

On Error GoTo ErrorID_Click 'Bij een fout

Dim strCRLF As String
Dim Antwoord As String

strCRLF = Chr(13) & Chr(10) 'Een nieuwe lijn beginnen

'Als er op Id geklikt wordt en het is <> van 0
If Not IsNull(Id) Then
    'Zoeken op welk record er geklikt is.
    'DoCmd.FindRecord [Id] = huidigID, , True, , True
    'Open het formulier met de ingevulde record.
    DoCmd.OpenForm "Frm_InvulformulierOverzicht", , , "[Id]=" & Id
End If

'Als er op een nieuwe record (onderste) wordt geklikt.
If IsNull(Id) Then
    Antwoord = MsgBox("Wil je een nieuwe oproep registreren?", vbYesNo + vbInformation, _
               "Weekdienst registratie")

    If Antwoord = vbYes Then
            'Open het invulformulier voor een nieuwe registratie.
            DoCmd.OpenForm "Frm_Invulformulier", acNormal, , , acFormAdd, acDialog
    Else
    End If
End If

EindeID_Click:
    Exit Sub

ErrorID_Click:
    MsgBox Err.Number & " - " & Err.Description, vbInformation, "Foutmelding!"
Resume EindeID_Click
End Sub

Dit werkt goed, maar heb nu volgend probleem. :)

Ik open het formulier met maar 1 record, (Het geselecteerde) maar het zou handiger zijn als de gebruiker dan nog kan verder navigeren naar andere records.

Als ik het formulier: Frm_InvulformulierOverzicht gewoon open, heb ik geen problemen en kan ik navigeren naar andere records. Als ik via de weg hierboven beschreven naar dit formulier ga zie ik enkel het geselecteerde record.

Hoe kan ik oplossen dat ik naar het geselecteerde record ga, maar achteraf nog kan navigeren naar anderen?

Alvast bedankt,
Timg
 
In dat geval zou ik het rapport niet filteren, maar binnen het formulier (met alle records) het juiste record opzoeken. Aangezien deze vraag deze week ook al in een andere draad is gesteld en beantwoord, verwijs ik graag naar het bestandje dat Harry gemaakt heeft... Je vind 'm hier.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan