Hallo Ihr lieben Helfer!
Ich habe ein Formular Rechnungen und ein Unterformular Rechnungsdetails.
Mit einem Code beim öffnen möchte ich festlegen ob das UF angezeigt wird oder nicht:
Private Sub Form_Open(Cancel As Integer)
If Forms!Auftraege!Rechnung1!Rechnungsdatum = 0 Then
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = False
Else
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = True
End If
End Sub
Das klappt aber nicht, weil das FormFeld Rechnungsdatum entweder ein Datum enthält oder - wenn das Feld noch kein Datum bekommen hat, keinen Inhalt hat.
Wir muss ich den Code ändern? "O" oder > < O habe ich vergeblich versucht.
Dorian
Hallo,
der volle Bezug sollte hier verzichtbar sein.
Versuche es also mal so:
If Nz(Me!Rechnungsdatum,0) = 0 Then
.
.
Hallo MzKlMu !
Das gleiche Ergebnis wie bei mir.
Das Feld "Rechnungsdatum" ist nicht vorhanden oder es steht ein Datum drin.
Das UF ist bei meinem und deinem Code immer sichtbar.
Das Problem ist die "0" Prüfung.
Wie prüfe ich ob ein Feld 1. einen Wert hat oder 2.nicht vorhanden ist?
Dorian
Hallo,
aber nicht vorhanden kann doch gar nicht sein. Wie kommt es, dass das Feld nicht vohanden ist?
N'abend Dorian,
was passiert, wenn Du if isnull(DeinFeld) then ...
verwendest?
Harald
@Harald
IsNull wird mit Nz() auch abgefangen.
Mit meinem obigen Beispiel wird Null zu 0 auf das man dann prüft.
Aber das funktioniert ja nicht.
Hallo Zusammen!
Ich habe das Formular "Rechnungen" in einem Register.
Wenn ich die Rechnung noch nicht angefangen habe zu schreiben, also kein Datum und keine Rechnungsnummer vorhanden ist, dann ist zu dem passendem Datensatz ( Hauptformular ist "Auftraege" ) zwar ein DS für Auftraege aber nicht für Rechnungen vorhanden. Wenn ich dann das UF Rechnungsdetails einblende und anfange Daten einzugeben, können die später nicht wiedergefunden werden, weil die Zuordnung (Verknüpfung) zum Rechungsformular fehlt. Erst wenn ein passender Datensatz zu Rechnungen angelegt ist, werden die im UF "Rechnungsdetails" eingegebenen Daten richtig zugeordnet.
Darum möchte ich das UF "Rechnungsdetails" ausblenden wenn das Formular Rechnungen noch keine Daten hat.
Nur ich weiß keine Lösung für die Prüfung:
Rechnungsdatum vorhanden oder kein Datensatz vorhanden...
Dorian
@ bahasu:
Auch Dein Code bringt nicht das gewünschte Ergebnis. Das UF wird jetzt immer angezeigt bei einer "0" Prüfung...
Hallo,
Zitatoder kein Datensatz vorhanden...
Das ist der entscheidende Hinweis.
Zähle mit DCount() die Datensätze. Etwa so:
If DCount("*","Rechnungstablle","AuftragID = " & Me!FeldMitAuftragID) = 0
.
.
Wobei ich jetzt annehme, dass die Rechnung ein Fremdschlüsselfeld (AuftragID) zum Auftrag enthält.
Dieses Feld muss auch im Ufo für die Rechnung enthalten sein.
Hallo MzKlMu !
Also:
Auftraege: PK_AuftragsID
Rechnungen: FK_AuftragsID
PK_RechnungsID
Rechnungsdetails: FK_RechnungsID
Dorian
Hallo,
und hast Du die DCount() Funktion mal benutzt?
If DCount("*","Rechnungstablle","FK_AuftragsID = " & Me!FeldMitFK_AuftragsID) = 0
Auf dem Rechnungsufo muss das Feld mit FK_AuftragsID vorhanden sein (unsichtbar). Dieses Feld ist auch gefüllt (über die Ufo Verknüpfung) wenn noch kein Rechnungsdatensatz angelegt ist.
Gebundene Formulare vorrausgesetzt.
Habe diesen Code versucht:
Private Sub Form_Open(Cancel As Integer)
If DCount("*","Rechnungen","FK_AuftragsID = " & Me!FK_AuftragsID) = 0
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = False
Else
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = True
End If
End Sub
Jetzt ist das UF immer ausgeblendet?
Was habe ich falsch gemacht?
Dorian
Hallo,
1) im Form_Open-Ereignis kann Me!FK_AuftragsID evtl. noch gar keinen Wert enthalten, wenn doch, welchen dann?
2) Benutz das Form_Current-Ereignis, um je nach akt. Wert von Me!FK_AuftragsID das UFO ein-/aus zu blenden.
Hallo!
Private Sub Form_Current()
If DCount("*","Rechnungen","FK_AuftragsID = " & Me!FK_AuftragsID) = 0
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = False
Else
Forms!Auftraege!Rechnung1!Rechnungsdetails.Visible = True
End If
End Sub
Jetzt bekomme ich eine Fehlermeldung:
Diese Zeile ist markiert.
If DCount("*","Rechnungen","FK_AuftragsID = " & Me!FK_AuftragsID) = 0
Es gibt in der Tabelle "Rechnungen" das Feld "FK_AuftragsID" und im Formular das Feld ""FK_AuftragsID"
Dorian
Hallo,
und wie lautet die Fehlermeldung ?
Die solltest Du wenn vorhanden immer zitieren.
Fehler beim kompilieren:
Syntaxfehler
Sorry hatte ich vergessen...
Dorian
Hallo,
huch, da hatte ich doch das Then vergessen.
If DCount("*","Rechnungen","FK_AuftragsID = " & Me!FK_AuftragsID) = 0 Then
Sorry
Hallo MzKlMu!
Jetzt zeigt er keinen Fehler mehr ... aber jetzt ist das Rechnungsformular und das UF Rechnungsdetails ausgeblendet???
halt!!!!
Ich habe wohl aus Versehen das ganze Formular gelöscht.... ;D
Habe es nochmal eingefügt und jetzt .... klappt es :D
Vielen Dank für Deine Mühe!!!
Dorian