Avatar billede per2edb Praktikant
04. september 2014 - 15:07 Der er 7 kommentarer og
1 løsning

Lås felder i dataark

Jeg har en form med en Databundet Dataark
Jeg skal kunne vælge at låse eller låseop for de synlige felder

De koder jeg har nedenfor løber gennem ALLE record der tager en frygtelig tid
Kan det ikke laves så det kun er de record der vises i Dataarket

  Set rs = frm.Form.Recordset.Clone
       
        With rs
            For i = 1 To Form.RecordsetClone.RecordCount
                For Each fld In .Fields
                    If LockedRecord = 1 Then
                      Locked = True
                    Else
                      Locked = False
                    End If
                Next
                Set fld = Nothing
                .MoveNext
            Next i
        .Close
        End With
        Set rs = Nothing
Avatar billede terry Ekspert
04. september 2014 - 17:25 #1
ALLE records! As far as I can see its only the records in the form

For i = 1 To Form.RecordsetClone.RecordCount
Avatar billede terry Ekspert
04. september 2014 - 17:27 #2
an idea would be to lock/unlock only when the record gets focus (ON Current). That would be MUCH faster.
Avatar billede per2edb Praktikant
04. september 2014 - 17:41 #3
Jeg havde en fejl

Jeg kan få det til at virke med et feld - [PO]
Hvad skal jeg erstatte [PO] med for at få alle formens felder låst op.  rs og fld virker ikke
(Terry din løsning passer ikke til mit aktuelle setup)

Dim  rs As Object, fld As Field

    Set rs = Form.Recordset.Clone
    rs.Requery

            For Each fld In rs.Fields
             
                  Form![PO].Locked = False
           
            Next
           
            Set fld = Nothing
            Set rs = Nothing
Avatar billede per2edb Praktikant
04. september 2014 - 19:57 #4
Jeg kan også for de nedenfor viste koder til at virke men igen hvad skal jeg erstatte feltet [PO] med for at alle felder låses op

Dim  Ctl As Control
   
        For Each Ctl In frm.Form.Controls
              Form.[PO].Locked = False
        Next Ctl
Avatar billede terry Ekspert
04. september 2014 - 20:42 #5
Here's an example
I have a main form with a sub form (

Dim ctl as Control

For Each ctl In Me.MySubForm.Form.Controls
           
            Me.MySubForm.Form.Controls(ctl.Name).Locked = False
Next ctl




In your loop you will need to check if its a control type which you want to change the Locked status for

If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox _
            Or ctl.ControlType = acListBox Then

...
Avatar billede per2edb Praktikant
04. september 2014 - 21:35 #6
Det giver fejlen object doesn't support this property or methode

Jeg har lavet det 100% efter din anvisning: Husk det er et dataark
Avatar billede per2edb Praktikant
04. september 2014 - 21:57 #7
Jeg fandt fejlen. Det var Label den fejlede på.
1000 tak for hjælpen
Avatar billede terry Ekspert
05. september 2014 - 11:40 #8
selv tak og god weekend
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