PDA

Vollständige Version anzeigen : Mit Kontrollkästchen Befehlsschaltfläche bzw. Formular steuern?


crashT
10.07.2001, 12:02
Hallo Leute,
ich habe wieder mal ein dickes Problem.
Ich möchte mit einem Kontrollkästchen (Kk) eine Befehlsschaltfläche(Bfsf) bzw. ein Formular steuern.
Und zwar so das die Bfsf nur dann aktiv ist wenn das Kk einen Hacken hat?
Beziehungsweise die Felder eines Formulars nur dann aktiv sind wenn das Kästchen den Hacken hat.
Gibt es eine "einfache" Möglichkeit das zu realisieren die ich auch verstehe??????
Danke für Eure Hilfe
Mfg

Morli
10.07.2001, 12:15
Hallo crashT,

kopier dir mal die folgenden Zeilen in das Ereignis "Beim Klicken" des Kontrollkästchens mit dem Namen "Kk":

Private Sub Kk_Click()
Dim ctl As Control
On Error Resume Next
If Me.Kk = True Then
For Each ctl In Me.Controls
If ctl.Name <> "Kk" Then
ctl.Locked = True
End If
Next
Me.Button.Enabled = False
Else
For Each ctl In Me.Controls
If ctl.Name <> "Kk" Then
ctl.Locked = False
End If
Next
Me.Button.Enabled = True
End If
End Sub

Gruß

Rainer ;)

Sandrine
10.07.2001, 12:21
Hallo CrashT!

Reicht es Dir aus, wenn die Schaltfläche grau wird und nicht nutzbar ist (wie generell bei Windows)?

Dann könntest Du beim Klicken bzw. nach dem Aktualisieren des KK eine Select-Abfrage machen und im Fall True (wenn angekreuzt) die enabled-Eiegnschaft des Schaltfläche auf false setzen.

So in etwa:

Private Sub kk_Click()
Select Case Me!kk
Case True: Me!Bfsf.enabled= True
Case False: Me!Bfsf.enabled= False
Case Null: Me!Bfsf.enabled= False
End Select
End Sub

Gruß, Sandrine

crashT
10.07.2001, 12:27
So, erstmal Danke für die schnelle Antwort,
jetzt habe ich das Script eingefügt und die Kk Bezeichnung durch die Bezeichnung meines Kontrollkästchens ersetzt.
Nun bekomme ich folgende Fehlermeldung:
Microsoft Access kann das Makro 'Private Sub Geschäftskarte_Click() Dim ctl As Control On Error Resume Next If Me' nicht finden.
Was nu?

Morli
10.07.2001, 12:51
Hallo crashT,

post mal schnell deinen kompletten Code. Also in Access kopieren und ins Forum setzen. Eventuell ist beim Kopieren des Codes was schiefgegangen und es fehlen die Zeilenumbrüche.

Oder andere Möglichkeit:
Schreib den Code einfach manuell in das Ereignis rein.

Gruß

Rainer ;)

P.S. Ich habe das natürlich vorher getested und bei mir hat's einwandfrei funktioniert!

crashT
10.07.2001, 12:57
Also wenn Du den VB Code meinst:

Option Compare Database

Private Sub Signet_Click()
On Error GoTo Err_Signet_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frmSignet-Entwicklung"

stLinkCriteria = "[Firma]=" & "'" & Me![Firma] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Signet_Click:
Exit Sub

Err_Signet_Click:
MsgBox Err.Description
Resume Exit_Signet_Click

End Sub


Private Sub Signet_1_Click()
On Error GoTo Err_Signet_1_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frmSignet-Entwicklung"

stLinkCriteria = "[Firma]=" & "'" & Me![Firma] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Signet_1_Click:
Exit Sub

Err_Signet_1_Click:
MsgBox Err.Description
Resume Exit_Signet_1_Click

End Sub

Ich habe Deinen Code und den Von Sandrina ausprobiert und bekomme dieselbe Meldung also muß irgendwas bei mir nicht stimme ?!
Allerdings ist VB für mich mehr als nur Neuland ich berufe mich ein bißchen auf Lingobefehle.

crashT
10.07.2001, 13:03
Ich verstehe etwas nicht,
ich habe Eure Scripte in Eigensch.-Kontrollkästchen eingegeben.
Ich dachte das ich mir diesen Code dann als VB Code irgendwo ansehen kann?!
Aber nix.
Access zeigt mir diese Code im Ausdrucks Generator an???
Bin ich irgendwie unfähig, oder verstehe ich nur ein Arbeitsprinzip von Access nicht?

PS. Ich glaube das Problem habe ich schon gelöst "Code-"meine Datenbank"" fertig!

crashT
10.07.2001, 13:10
Gibt es nicht irgendwo eine Übersicht in der VB Begriffe und Ihre Anwendung verständlich erklärt werden?
zBsp. Sub = blablabla
Verwendung
Privat Sub "Objektname"_"Aktion"
usw.
Was ist Dim?

Morli
10.07.2001, 13:12
Hi crashT,

also ich möchte dir natürlich nichts unterstellen, aber das sieht so aus, als hättest du aus versehen den Ausdrucksgenerator aktiviert.

Mach das Ganze mal rückgängig und kopier dir den Code in die entsprechende Ereignisprozedur!

Gruß

Rainer ;)

Noch was: Bei deinen Codes hast du bei vielen Ereignisse Direkt nach dem Privat Sub ein End Sub. Wenn Du dieses Ereignis nicht brauchst, lösche den kompletten Code incl. Privat Sub und End Sub. Dann wird das Ganze wieder übersichtlicher!

crashT
10.07.2001, 13:34
Ich glaube ich habe wieder etwas dazugelernt.
Dank Eurer und speziell Deiner Hilfe Rainer, Danke!
Dein Code funktz gut.
Ich muß ihn nur noch "umdrehen"!
Access hatte unter anderem ein Problem mit den anderen Befehle weil in Ihnen noch nichts definiert war.
Also das Prog brachte mir ständig Fehlermeldun über "nicht verstandene Namen und deren zugehörigkeit".
Danke an alle.
Mfg