Supportnet Computer
Planet of Tech

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.

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

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

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 ;)

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
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*" ;-)

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: