collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 60
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13972
  • stats Beiträge insgesamt: 66526
  • stats Themen insgesamt: 8970
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Auswertung eines UF ohne DS  (Gelesen 566 mal)

Offline Domm

  • Access-User
  • *
  • Beiträge: 96
Auswertung eines UF ohne DS
« am: Dezember 13, 2017, 08:32:48 »
Hallo alle miteinander!
Ich benötige Eure Hilfe um eine scheinbar leicht zu lösende Aufgabe:
In einem HF werden Daten verarbeitet, welche nach Aktualisierung als Übersicht in einem UF angezeigt werden. Die Auswertung von Fehleingaben durch Benutzer hat gezeigt, dass es wichtig ist, vor der Eingabe eine Meldung auszugeben, wenn sich Daten im UF befinden.
Am Einfachsten schien mir:
If Not me.UF!Textfeld IsNull Then
MsgBox
End If
Allerdings wurde grundsätzlich diese Meldung ausgelöst, auch wenn im UF kein DS vorhanden war.
Alle Versuche mit Nz, Count, Dcount haben zu Fehlermeldungen geführt.
Versuche, über ein Textfeld im HF das UF anzusprechen(=Wenn([UF]![Textfeld]Ist Null;0;1), ebenfalls.
Die Vorschläge in den Foren und Access-Tutorials haben entweder nicht genau das Thema getroffen oder waren für mich zu unverständlich und damit nicht übertragbar.
Hat einer der Götter die Zeit, sich des Themas zu widmen und mir verständlich zu machen, woran ich scheitere?
Ich möchte nochmal erinnern, dass es mit meinen VBA- Kenntnissen nicht zu Besten steht...
Liebe Grüße!
Gruß Domm
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1245
Re: Auswertung eines UF ohne DS
« Antwort #1 am: Dezember 13, 2017, 09:24:05 »
So ein Formular in einem Unterformularsteuerelement kann ja keinen, einen oder viele Datensätze enthalten. Die Position des Datensatzzeigers könnte nun auf einem dieser Datensätze oder auch auf einem neuen Datensatz, wenn das Hinzufügen von Daten erlaubt ist, stehen. Vielleicht solltest Du zunächst einmal die Zusammenhänge der Daten zwischen Haupt- und Unterformular und ggf. deren Verknüpfung klären und den kompletten Codeabschnitt im Kontext zeigen, denn wir kennen Deine Datenbank nicht.

Ganz allgemein:   If Me.UF.Form.Recordset.RecordCount > 0 Then
      'gibt es mindestens einen Datensatz im Unterformular
   End If

   If Me.UF.Form.NewRecord Then
      'steht der Datensatzzeiger auf 'dem neuen Datensatz'
   End If
« Letzte Änderung: Dezember 13, 2017, 09:42:52 von Lachtaube »
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Domm

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7283
Re: Auswertung eines UF ohne DS
« Antwort #2 am: Dezember 13, 2017, 09:27:43 »
Hallo,
"Is Null" ist SQL und nicht VBA. In VBA erfolgt die Prüfung auf Null über eine Funktion.
If Not IsNull(Me.UF!Textfeld) Then 
Aber vermutlich wäre es besser die Datensätze zu zählen.

Nachtrag:
Lauchtaube zählt ja schon.  ;D
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Domm

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1245
Re: Auswertung eines UF ohne DS
« Antwort #3 am: Dezember 13, 2017, 09:41:44 »
@Klaus,

den syntaktischen Fehler hatte ich gar nicht bemerkt. ;)
Grüße von der (⌒▽⌒)
 

Offline Domm

  • Access-User
  • *
  • Beiträge: 96
Re: Auswertung eines UF ohne DS
« Antwort #4 am: Dezember 13, 2017, 14:55:56 »
Hallo @Lachtaube, hallo @Klaus!
Danke für Euren Beitrag zum Problem. Ich bin jetzt dem Vorschlag von Klaus gefolgt und habe bei Auswahl einer Tabellenspalte folgende Prozedur hinterlegt:
Private Sub listePosition_Click()
    If Not IsNull(Me.UF2!AnzKandidat) And Me.listePosition = 1 Then
            If MsgBox("Die Spalte ist schon belegt. Weitere Eingabe?", vbOKCancel, "Achtung!") = vbOK Then  'wird abgefragt, ob trotzdem Eingabe
                    Me.bezListeKursUnion.Visible = True 'zeigt nachfolgende Auswahlliste und Bezeichner an
                    Me.listeKursUnion.Visible = True
                    Me.HinweisTabellen.Visible = True
                    Me.listeKursUnion.Enabled = True 'Schaltet die Liste Kurse frei, um DS wechseln zu können
            End If
    Else
        Me.bezListeKursUnion.Visible = True ' wenn die gewählte Spalte nicht belegt ist, fahre mit der Prozedur fort
        Me.listeKursUnion.Visible = True
        Me.HinweisTabellen.Visible = True
        Me.listeKursUnion.Enabled = True
    End If
End Sub
Das Ergebnis bleibt allerdings das Gleiche: Die Meldung wird grundsätzlich angezeigt (siehe Anhang).
Der erste Copde von Lachtaube hat dann sofort zum Erfolg geführt.
Damit wäre für mich die Untersuchung beendet.
Gibt es denn noch Diskussionsbedarf von Eurer Seite aus?
Wenn nicht- vielen Dank für Eure schnelle Hilfe!
Mir ist wie Weihnachten... ;D
Gruß Domm