Avatar billede per2edb Guru
16. september 2020 - 11:43 Der er 4 kommentarer og
2 løsninger

DoCmd.FindRecord fejler

Jeg har et dataark med et feld (fldName) hvor jeg søger en værdi (fldValue)
Jeg får fejlen 2137 Du kan ikke bruge søg eller erstat nu
Kan i hjælpe med at sætte DoCmd.FindRecord rigtigt


  Frm.SetFocus
  Frm.Requery
   
      Frm(fldName).SetFocus

        DoCmd.FindRecord fldValue, acEntire, False, acSearchAll, False, acCurrent, True
Avatar billede Gustav Ekspert
16. september 2020 - 12:26 #1
Prøv at søge direkte i formularens poster:

Frm.SetFocus
Frm.Requery
 
Dim Records as DAO.Recordset

Set Records = Frm.RecordsetClone
If Records.RecordCount > 0 Then
    Records.MoveFirst

    ' Søg tekst.
    Records FindFirst "[" & filName & "] = '" & fldValue & "'"
    ' Søg tal.
    ' Records FindFirst "[" & filName & "] = " & Str(fldValue) & ""

    If Not Records.NoMatch Then
        Frm.Bookmark = Records.Bookmark
    End If
End If
Records.Close

Frm(fldName).SetFocus
Avatar billede per2edb Guru
16. september 2020 - 14:22 #2
OK Tak men den løsning har jeg.
Jeg vilde imidlertid godt have DoCmd.FindRecord til at virke da den er simplere
Avatar billede Gustav Ekspert
16. september 2020 - 14:40 #3
Du kunne jo godt have skrevet, at du havde en løsning, der virker, men at du blot undrer dig over, at DoCmd.FindRecord ikke virker som tilsigtet.

Simplere er den måske, men den opererer i brugerfladen, så det kan være derfor, den ikke virker.
Avatar billede per2edb Guru
16. september 2020 - 14:56 #4
Det er nu ikke så simpelt endda. Jeg ikke blot undre mig, jeg skal faktisk bruge DoCmd.FindRecord da den indgår mange steder i programmet.
Du kan være på rette vej da det tyder på der er forskel på om det er popup form eller
ikke
Avatar billede Gustav Ekspert
16. september 2020 - 15:17 #5
Det lyder rigtigt. Hvis DoCmd virker, hvis formularen åbnes normalt, er det derfor.

Hvis du skal bruge noget tilsvarende mange steder, kunne du oprette en hjælpefunktion, der kan kaldes i én linje:

Public Function FindPost( _
    ByRef Frm As Form, _
    ByVal Criteria As String) _
    As Boolean

    Dim Records As DAO.Recordset
    Dim Match  As Boolean

    Set Records = Frm.RecordsetClone
    If Records.RecordCount > 0 Then
        Records.MoveFirst
        Records FindFirst Criteria
        Match = Not Records.NoMatch
        If Match Then
            Frm.Bookmark = Records.Bookmark
        End If
    End If
    Records.Close

    FindPost = Match

End Function
Avatar billede per2edb Guru
18. september 2020 - 18:02 #6
1000 tak for den flotte anvisning af en søgefunktion som kan anvendes af mange.

Desværre fik jeg ikke løst problemerne med  DoCmd.FindRecord så jeg går i gang med at skifte dem ud (Nb har over 100 - øv)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB