nach Datensatz in Formular suchen, alle Felder auf inaktiv

Moderator: ModerationP

nach Datensatz in Formular suchen, alle Felder auf inaktiv

Beitragvon snoopy_1959 » 18. Okt 2019, 11:19

Hallo Zusammen,
ich habe in Formular in dem ich per Dropropdown Feld einen Datensatz selektieren kann.
Nach dem selektieren möchte ich, dass keine Bearbeitung der Daten möglich ist.
Mit einer Schaltfläche möchte ich die Bearbeitung wieder frei geben.

mit for each ctl habe ich schon rum probiert, aber immer ohne erfolg.
Weiss einer wie das geht und kann mir das auch erklären, so dass ich das beim nächsten Mal selbstständig anwenden kann?

Danke füe die Hilfe

Snoopy
Benutzeravatar
snoopy_1959
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 392
Registriert: 18. Jun 2014, 06:20
Wohnort: Müllheim Dorf

Re: nach Datensatz in Formular suchen, alle Felder auf inakt

Beitragvon snoopy_1959 » 18. Okt 2019, 12:43

Hallo,
nun habe ich es mal so versucht

Code: Alles auswählen
Private Sub btdInaktiv_Click()
Dim MyForm As Form
Dim ctl As Control
Dim BackColor As String 'Added this code for BackColor

Set MyForm = Screen.ActiveForm

' Disable each control on the form that has the Tag property set to True.
For Each ctl In MyForm.Controls
If ctl.Value = True Then

        ctl.Value = False
        'ctl.BackColor = 10092543 'Added this code for BackColor
    End If
Next ctl
   
End Sub


Leider stimmt das ctl.value nicht

Wie muss das lauten?

Gruss

Snoopy
Benutzeravatar
snoopy_1959
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 392
Registriert: 18. Jun 2014, 06:20
Wohnort: Müllheim Dorf

Re: nach Datensatz in Formular suchen, alle Felder auf inakt

Beitragvon Bitsqueezer » 18. Okt 2019, 23:34

Hallo,

wenn Du Tag abfragen willst, wieso schreibst Du dann Value?
Wenn Du in einer Schleife durch alle Controls gehst, wieso fragst Du dann deren Wert ab und versuchst, den Wert auf False zu setzen?
Wenn Du ein Control deaktivieren willst, wieso dann nicht die Eigenschaft Enabled entsprechend setzen?
Wenn der Code im aktuellen Formular steht, wozu dann umständlich das aktive Formular in eine Objektvariable setzen?

Einfach "For Each ctl in Me". (oder alternativ "Me.Controls")

Wenn die Bearbeitung nicht möglich sein soll, könntest Du auch einfach "AllowEdits" des Formulars auf False setzen, ebenso "AllowAdditions" und AllowDeletions".

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7219
Registriert: 21. Jun 2007, 12:17


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste

cron