Discussion:
Anzeige einer Befehlsschaltfläche in Abhängigkeit eines Tabelleneintrages
(zu alt für eine Antwort)
Thorsten Halm
2005-12-24 02:55:57 UTC
Permalink
Hallo zusammen,

als erstes Mal: frohe Weihnachten. ;o)

Ich habe ein Formular ("frm_Artikelübersicht") mit Artikeldaten, welches auf
der Tabelle "Artikel" basiert.

Nun gibt es ein zweites Formular "Ergänzungen", dort findet man u.a. zwei
Felder: Artikelnummer und Kommentar, die in einer anderen Tabelle liegen
("Artikel_Ergänzungen")

Ich möchte nun auf dem Formular "frm_Artikelübersicht" eine
Befehlsschaltfläche einbauen, die das Formular "Ergänzungen" öffnet, wenn
die Artikelnummer übereinstimmt. Soweit so gut, das ist ja relativ leicht zu
lösen.

Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...

Ich danke euch im Voraus für eure Hilfe.

Danke und Gruß
Thorsten
Peter Doering
2005-12-24 05:04:35 UTC
Permalink
Hallo,
Post by Thorsten Halm
als erstes Mal: frohe Weihnachten. ;o)
Gleichfalls ;-)
Post by Thorsten Halm
Ich möchte nun auf dem Formular "frm_Artikelübersicht" eine
Befehlsschaltfläche einbauen, die das Formular "Ergänzungen" öffnet, wenn
die Artikelnummer übereinstimmt. Soweit so gut, das ist ja relativ leicht zu
lösen.
Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...
Das Prinzip ist in FAQ 5.8 "Ohne Daten nicht drucken", Variante 1
(www.donkarl.com) erklaert.

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Thorsten Halm
2005-12-24 10:50:28 UTC
Permalink
Hallo Peter,

auch am heiligen Abend unermüdlich im Access Einsatz?! ;o)
Post by Peter Doering
Hallo,
Post by Thorsten Halm
Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...
Das Prinzip ist in FAQ 5.8 "Ohne Daten nicht drucken", Variante 1
(www.donkarl.com) erklaert.
Tja, bei Formular unter Punkt 4 hatte ich alles abgegrast... Nun sind meine
VBA Kenntnisse eher von anfänglicher Natur, verhindert die Variante 1

If Dcount("*", "Datenherkunft_des_Berichtes") > 0 Then
DoCmd.OpenReport "Berichtsname"
Else
MsgBox "Der Bericht enthält keine Daten.", _
vbInformation + vbOKOnly, "Keine Daten"
End If


nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu klickende
Schaltfläche nicht sichtbar machen, wenn das zu öffnende Formular leer ist.

Und was ich auch nicht ganz verstehe ist: was macht dieses Dcount? Wo werden
denn in diesem Code die beiden Feldinhalte verglichen? Stehe auf dem
Schlauch... Könntest du mir nochmal Žnen Tipp geben?

Danke und ein schönes Fest mit vielen Geschenken!

Grüße aus Hessen
Thorsten
Gunter Avenius
2005-12-24 11:02:37 UTC
Permalink
Hallo Thorsten,
Post by Thorsten Halm
nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu
klickende Schaltfläche nicht sichtbar machen, wenn das zu öffnende
Formular leer ist.
"Beim Anzeigen" Deines Formulares [Ereignisprozedur]:

If Dcount("*", "Artikel_Ergänzungen", "Artikelnummer =" &
me!DeinFeldArtikelnummer ) > 0 Then
' bzw wenn Artikelnummer als Text in der Tabelle definiert ist:
' If Dcount("*", "Artikel_Ergänzungen", "Artikelnummer ='" &
me!DeinFeldArtikelnummer & "'" ) > 0 Then
Me!DeinButton.Enabled=true
Else
Me!DeinButton.Enabled=false
End If
Post by Thorsten Halm
Und was ich auch nicht ganz verstehe ist: was macht dieses Dcount?
Wo werden denn in diesem Code die beiden Feldinhalte verglichen?
In der WHERE Klausel der DCount Funktion
Post by Thorsten Halm
Stehe auf dem Schlauch... Könntest du mir nochmal ´nen Tipp geben?
Setze den Cursor auf DCount und drücke die Taste "F1"
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Ekkehard Böhme
2005-12-24 11:10:51 UTC
Permalink
Hallo Thorsten,
Post by Thorsten Halm
Hallo Peter,
auch am heiligen Abend unermüdlich im Access Einsatz?! ;o)
Post by Peter Doering
Hallo,
Post by Thorsten Halm
Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...
Das Prinzip ist in FAQ 5.8 "Ohne Daten nicht drucken", Variante 1
(www.donkarl.com) erklaert.
Tja, bei Formular unter Punkt 4 hatte ich alles abgegrast... Nun sind
meine VBA Kenntnisse eher von anfänglicher Natur, verhindert die Variante
1
If Dcount("*", "Datenherkunft_des_Berichtes") > 0 Then
DoCmd.OpenReport "Berichtsname"
Else
MsgBox "Der Bericht enthält keine Daten.", _
vbInformation + vbOKOnly, "Keine Daten"
End If
nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu klickende
Schaltfläche nicht sichtbar machen, wenn das zu öffnende Formular leer ist.
Private Sub DeinForm_Current
'wenn ArtikelID numerisch ist:
Me!DeineSchaltfläche.Visible = (DCount("*", "tblArtikel", "ArtikelID = "
& Forms!DeinForm!FeldmitArtikelID)>0)
'wenn ArtikelID ein String (Text) ist:
Me!DeineSchaltfläche.Visible = (DCount("*", "tblArtikel", "ArtikelID =
'" & Forms!DeinForm!FeldmitArtikelID & "'")>0)
End Sub
(Tabellen- und Feldnamen anpassen)
hth
ekkehard böhme
Post by Thorsten Halm
Und was ich auch nicht ganz verstehe ist: was macht dieses Dcount? Wo
werden denn in diesem Code die beiden Feldinhalte verglichen? Stehe auf
dem Schlauch... Könntest du mir nochmal Žnen Tipp geben?
Danke und ein schönes Fest mit vielen Geschenken!
Grüße aus Hessen
Thorsten
Peter Doering
2005-12-24 11:14:21 UTC
Permalink
Hallo,
Post by Thorsten Halm
auch am heiligen Abend unermüdlich im Access Einsatz?! ;o)
Aber nicht mehr lange ... ;-)
Post by Thorsten Halm
"Peter Doering" ...
Post by Peter Doering
Post by Thorsten Halm
Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...
Das Prinzip ist in FAQ 5.8 "Ohne Daten nicht drucken", Variante 1
(www.donkarl.com) erklaert.
Tja, bei Formular unter Punkt 4 hatte ich alles abgegrast... Nun sind meine
VBA Kenntnisse eher von anfänglicher Natur, verhindert die Variante 1
If Dcount("*", "Datenherkunft_des_Berichtes") > 0 Then
Hilfe zu DCount (im deutschen DomAnzahl) findest du in der OH.

Statt Datenherkunft des Berichtes musst du halt die des Formulars angeben,
das du oeffnen moechtest. In deinem Fall:

If DCount("*", "Artikel_Ergänzungen", _
"Artikelnummer=" & Me!ArtikelNummer ) > 0 Then

vorausgesetzt, in "frm_Artikelübersicht" gibt es ein Feld ArtikelNummer
(aber hier den richtigen Namen zu finden, sollte kein Problem mehr sein,
oder? ;-)
Post by Thorsten Halm
Ich würde gerne die zu klickende
Schaltfläche nicht sichtbar machen, wenn das zu öffnende Formular leer ist.
Me!btnArtikelUebersicht.Visible = True
Else
Me!btnArtikelUebersicht.Visible = False
End If

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Thomas Möller
2005-12-24 11:47:18 UTC
Permalink
Hallo Thorsten,
Post by Thorsten Halm
nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu
klickende Schaltfläche nicht sichtbar machen, wenn das zu öffnende
Formular leer ist.
aus Sicht des Erstellers einer Datenbank kann ich Dein Vorgehen
nachvollziehen.
Denk' aber bitte auch an die User Deiner Datenbank: Mal ist diese
Schaltfläche sichtbar - und mal ist sie es nicht. Der User erhält kein
Feedback dazu, warum das so ist.
Ich finde es generell besser, die Schaltfläche immer eingeblendet zu lassen
und im Klick-Ereignis ggfs. eine Meldung auszugeben.
Aus Sicht des Users: Die Schaltfläche ist immer sichtbar. Wenn man darauf
klickt erhält man Feedback warum die gewünschte Operation nicht ausgeführt
wird.

CU
--
Thomas

Ich wünschen allen frohe Weihnachten
und einen guten Rutsch ins neue Jahr.
Ekkehard Böhme
2005-12-24 12:36:14 UTC
Permalink
Hallo Thorsten, Hallo Thomas,
Post by Gunter Avenius
Hallo Thorsten,
Post by Thorsten Halm
nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu
klickende Schaltfläche nicht sichtbar machen, wenn das zu öffnende
Formular leer ist.
aus Sicht des Erstellers einer Datenbank kann ich Dein Vorgehen
nachvollziehen.
Denk' aber bitte auch an die User Deiner Datenbank: Mal ist diese
Schaltfläche sichtbar - und mal ist sie es nicht. Der User erhält kein
Feedback dazu, warum das so ist.
Ich finde es generell besser, die Schaltfläche immer eingeblendet zu
lassen und im Klick-Ereignis ggfs. eine Meldung auszugeben.
Aus Sicht des Users: Die Schaltfläche ist immer sichtbar. Wenn man darauf
klickt erhält man Feedback warum die gewünschte Operation nicht ausgeführt
wird.
Ergänzend dazu frage ich mich warum Du die Ergänzungen nicht gleich in die
Datenherkunft des Formulars einfügst, und den Wert in einem Textfeld
anzeigst. Falls es mehrere Ergänzungen zu einem Artikel geben sollte, bietet
sich ein Unterformular an. Den Button benutzt Du dann um das zweite Formular
zur Dateneingabe zu öffnen.
mfg
ekkehard
Post by Gunter Avenius
CU
--
Thomas
Ich wünschen allen frohe Weihnachten
und einen guten Rutsch ins neue Jahr.
Thorsten Halm
2006-01-04 22:01:18 UTC
Permalink
Hallo Thomas,
Post by Gunter Avenius
Hallo Thorsten,
Post by Thorsten Halm
nicht "nur" die Anzeige des Formulares? Ich würde gerne die zu
klickende Schaltfläche nicht sichtbar machen, wenn das zu öffnende
Formular leer ist.
aus Sicht des Erstellers einer Datenbank kann ich Dein Vorgehen
nachvollziehen.
Denk' aber bitte auch an die User Deiner Datenbank: Mal ist diese
Schaltfläche sichtbar - und mal ist sie es nicht. Der User erhält kein
Feedback dazu, warum das so ist.
Ich finde es generell besser, die Schaltfläche immer eingeblendet zu
lassen und im Klick-Ereignis ggfs. eine Meldung auszugeben.
Aus Sicht des Users: Die Schaltfläche ist immer sichtbar. Wenn man darauf
klickt erhält man Feedback warum die gewünschte Operation nicht ausgeführt
wird.
Da gebe ich dir recht, ich erde das so umsetzen.
Danke & Gruß
Thorsten

Karl Donaubauer
2005-12-24 11:04:24 UTC
Permalink
Post by Thorsten Halm
Ich habe ein Formular ("frm_Artikelübersicht") mit Artikeldaten, welches
auf der Tabelle "Artikel" basiert.
Nun gibt es ein zweites Formular "Ergänzungen", dort findet man u.a. zwei
Felder: Artikelnummer und Kommentar, die in einer anderen Tabelle liegen
("Artikel_Ergänzungen")
Ich möchte nun auf dem Formular "frm_Artikelübersicht" eine
Befehlsschaltfläche einbauen, die das Formular "Ergänzungen" öffnet, wenn
die Artikelnummer übereinstimmt. Soweit so gut, das ist ja relativ leicht
zu lösen.
Aber: kann man der Schaltfläche sagen, dass sie nur vorhanden sein soll,
wenn in der Ergänzungstabelle auch der Artikel drin ist? Denn wenn der
Artikel nicht drin ist, erscheint logischerweise ein leeres Formular...
Versuch mal im Ereigniscode "Beim Anzeigen" von "frm_Artikelübersicht":

Me!DeineSchaltfläche.Visible = _
DCount("*","Artikel_Ergänzungen", "Artikelnummer=" & Me!Artikelnummer)

oder falls Artikelnummer den Datentyp Text hat:

Me!DeineSchaltfläche.Visible = _
DCount("*","Artikel_Ergänzungen", "Artikelnummer='" & Me!Artikelnummer &
"'")
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Datenbank-Profis: http://www.dbdev.org
Thorsten Halm
2006-01-04 21:59:34 UTC
Permalink
Hallo Karl,
Post by Karl Donaubauer
Me!DeineSchaltfläche.Visible = _
DCount("*","Artikel_Ergänzungen", "Artikelnummer='" & Me!Artikelnummer &
"'")
Vielen Dank!
Gruß
Thorsten
Loading...