Supportnet / Forum / Datenbanken
Objekt ausblenden wenn Spalte leer
Frage
Hallo liebe Forenmitglieder!
Ich möchte gerne folgende Funktion realisieren: Wenn eine bestimmte Spalte in meiner Datenbank komplett leer ist (diese wird automatisch angelegt und dass lässt sich nicht verhindern), soll ein Kombinationsfeld ausgeblendet werden.
Das Kombinationsfeld ausblenden sollte hier weniger das Problem sein:
[code]Me.Kombinationsfeld120.Visible=False[/code]
Das habe ich versucht und es funktioniert.
Leider habe ich keinen Schimmer, wie ich überprüfen kann, ob eine Spalte leer ist. Gibt es dafür eine Möglichkeit?
Danke im Voraus.
MfG
renewa
Antwort 1 von RalfH
Guten Morgen renewa,
Im Formular/Bericht kannst Du das Prüfen.
Gruß Ralf
Im Formular/Bericht kannst Du das Prüfen.
If DeinTextfeld.value = "" then
Me.Kombinationsfeld120.Visible=False
else
Me.Kombinationsfeld120.Visible=True
end if
Gruß Ralf
Antwort 2 von lleopard
moin renewa,
eine andere idee wäre auch die...
sicher sind die Daten auch in einer Tabelle, oder zumindest über eine Abfrage zugänglich. Die nimmst du als quelle und sagst ihm
if dcount("*";"[Tabelle oder Abfrage]") =0 then
Me.Kombinationsfeld120.Visible=False
else
Me.Kombinationsfeld120.Visible=True
end if
Anmerkung des Verfassers:
Kombinationsfeld120 als Bezeichnung ist UNMÖGLICH! wer soll denn da hinterher noch durchsteigen welches KF die 120 und welches die 119 hat? Klar kann man, aber das ist ja doch sehr mühsam! Etwas mehr Fleiß beim Daddeln! ;-)
Gruß Leo
eine andere idee wäre auch die...
sicher sind die Daten auch in einer Tabelle, oder zumindest über eine Abfrage zugänglich. Die nimmst du als quelle und sagst ihm
if dcount("*";"[Tabelle oder Abfrage]") =0 then
Me.Kombinationsfeld120.Visible=False
else
Me.Kombinationsfeld120.Visible=True
end if
Anmerkung des Verfassers:
Kombinationsfeld120 als Bezeichnung ist UNMÖGLICH! wer soll denn da hinterher noch durchsteigen welches KF die 120 und welches die 119 hat? Klar kann man, aber das ist ja doch sehr mühsam! Etwas mehr Fleiß beim Daddeln! ;-)
Gruß Leo
Antwort 3 von renewa
Guten Morgen Ralf,
ich kann das Problem trotz deiner Antwort nicht lösen. Wie spreche ich denn jetzt das genaue Textfeld an? Den Tabellennamen habe ich in der Variable TabName und den Spaltennamen in der Variable Spalte1, Spalte2, ...
Was muss ich für "MeinTextfeld" einsetzen? Mit
Habe ich schon herumprobiert aber scheinbar nicht den richtigen Namen herausgefunden.
MfG
renewa
ich kann das Problem trotz deiner Antwort nicht lösen. Wie spreche ich denn jetzt das genaue Textfeld an? Den Tabellennamen habe ich in der Variable TabName und den Spaltennamen in der Variable Spalte1, Spalte2, ...
Was muss ich für "MeinTextfeld" einsetzen? Mit
CurrentDb.TableDefs(TabName).Fields(0).xxx.Value
Habe ich schon herumprobiert aber scheinbar nicht den richtigen Namen herausgefunden.
MfG
renewa
Antwort 4 von renewa
Hallo lleopard,
unsere Beiträge haben sich wohl überschnitten. Danke für deine Lösung. Muss ich für das Sternchen den Index der Spalte angeben?
MfG
renewa
PS: Mein Kombinationsfeld heißt icht wirklich so. Es gibt nur 6 davon und die haben alle richtige Namen. Ich habe diesen Namen gestern bei der Problemstellung einfach so eingetippt, damit ich eine konkrete Antwort bekommen kann. Mach dir keine Sorgen ;)
unsere Beiträge haben sich wohl überschnitten. Danke für deine Lösung. Muss ich für das Sternchen den Index der Spalte angeben?
MfG
renewa
PS: Mein Kombinationsfeld heißt icht wirklich so. Es gibt nur 6 davon und die haben alle richtige Namen. Ich habe diesen Namen gestern bei der Problemstellung einfach so eingetippt, damit ich eine konkrete Antwort bekommen kann. Mach dir keine Sorgen ;)
Antwort 5 von renewa
Hallo nochmal und Entschuldigung, dass ich hier so viele Beiträge hintereinander schreibe.
Hat super funktioniert, lleopard. Mein Code lautet jetzt
Vielen Dank!
Hat super funktioniert, lleopard. Mein Code lautet jetzt
If DCount(Spalte4, TabName) = 0 Then
(Anweisungen)
Else
(Anweisungen)
End If
Vielen Dank!
Antwort 6 von lleopard
Wenns geklappt hat, supi!
in der If Klausel hab ich nämlich die "" vermißt...
also nicht:
If DCount(Spalte4, TabName) = 0 Then
sondern:
If DCount("Spalte4", "TabName") = 0 Then
aber das hast du wohl auch so gemacht...
Viel Erfolg mit deiner DB.
Der Hinweis wegen der Benennung der Formularfelder ist allgemeingültig. Mein Kollege ist zB sone "*Z*" ;-)
in der If Klausel hab ich nämlich die "" vermißt...
also nicht:
If DCount(Spalte4, TabName) = 0 Then
sondern:
If DCount("Spalte4", "TabName") = 0 Then
aber das hast du wohl auch so gemacht...
Viel Erfolg mit deiner DB.
Der Hinweis wegen der Benennung der Formularfelder ist allgemeingültig. Mein Kollege ist zB sone "*Z*" ;-)
Antwort 7 von renewa
Nein das funktioniert ohne Anführungszeichen, weil Spalte4 und TabName Strings sind, die in einer anderen Subroutine zugewiesen werden.
Daran siehst du auch, dass meine Variablennamen immer eindeutig sind ;)
Tschüs
Daran siehst du auch, dass meine Variablennamen immer eindeutig sind ;)
Tschüs