Office: DoCmd.OpenForm

Helfe beim Thema DoCmd.OpenForm in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo! Ich habe eine Tabelle T_Art_Lager, welche von drei anderen mittels Insert Into gefüllt wird. Dadurch gibt es drei Felder welche... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von effemvierfan, 12. Februar 2004.

  1. DoCmd.OpenForm


    Hallo!

    Ich habe eine Tabelle T_Art_Lager, welche von drei anderen mittels Insert Into gefüllt wird. Dadurch gibt es drei Felder welche Lieferscheinnummer (Ausgang, Eingang, Bestellung) heißen. Jenachdem, aus welcher Tabelle eingefügt wurde steht nur in einem dieser Felder ein Wert.

    Die Felder der Ausgangstabellen sind AutoWert und PK, die Felder der LS-Nummern in T_Art_Lager sind vom Typ Zahl.

    Nun möchte ich vom Formular welchem die T_Art_Lager zugrunde liegt zurückspringen auf die Formulare des jeweiligen Herkunftsdatensatzes.
    Formularauswahl funktioniert, die Auswahl des DS auch, nur bekomme ich immer die Fehlermeldung:

    "Die Aktion OpenForm wurde abgebrochen"

    Hab es schon mit mehreren Formulierungen versucht, immer das gleiche Ergebnis, bzw. komme ich zwar aufs Formular, aber nur auf den ersten DS bzw. auf einen neuen DS.

    Noch zur Erklärung:
    Bin an der zweiten IF am Arbeiten.
    Der Wert von [F_Art_Lieferübersicht]![Lieferscheinnummer (Eingang)] ist der Wert von [F_Art_Externereingang]![Lieferschein-Nr] zu dem gesprungen werden soll.
    [F_Art_Externereingang]![Lieferschein-Nr] ist PK und AutoWert

    Wer findet da meinen Fehler?

    Code:
    Schon mal Danke

    Christian

    PS: Vielleicht kann mir jemand sagen, wie ich den Wert "NULL" schöner in meinen Schleifen verarbeiten könnte, außer mit 0?

    :)
     
    effemvierfan, 12. Februar 2004
    #1
  2. Hi Christian,

    mehrere Sachen:

    a) Null vs. 0

    Der Wert Null entspricht nicht 0, sondern Nichts. Während dessen 0 wirklich 0 ist.

    Du kannst ihn abfragen über If IsNull(Variable)


    b) Kriterium Text oder Zahl

    Wenn Du einen Zahlenwert vergleichst, darfst Du diesen nicht in Hochkomma setzen, ergo:

    Code:
    c) Formularverweis

    Wenn es sich bei [F_Art_Lieferübersicht] um ein Unterformular handelt, dann sieht die Syntax so aus:

    Code:
    d) Nur eins von drei Feldern wird gefüllt

    Ich würde prüfen, inwiefern es möglich ist, stattdessen nur ein Feld zu verwenden, wo die Nummer drinsteht und zusätzlich ein Feld mit einem Schlüssel, der angibt, welcher Tabelle dieser Wert zugeornet ist.
     
    Johnny Loser, 14. Februar 2004
    #2
  3. Wenn keine Deiner If-Bedingungen zutrifft, dürfte stDocName eine leere Zeichenkette beinhalten.

    Mit der Funktion IsNull könnte man Null-Werte (leere Felder) überprüfen.

    Die Tabellenstruktur dürfte suboptimal sein - man müßte aber mehr über die Art der Daten, den Zweck wissen, um einen Gegenvorschlag zu machen.
     
  4. DoCmd.OpenForm

    Hallo,

    Ich hab zu dieser DB schon einmal ein Frage gestellt, da hab ich auch die Beziehungen raufgeladen.

    www.ms-office-forum.net/forum/showthread.php?s=&threadid=117833

    @Jonny:

    zu b: Hab ich versucht, mit allen Varianten mit und ohne Hochkomma, fragt mich bestenfalls nach der Lieferscheinnummer und setzt mich dann, zwar ins richtigen Formular, aber auf einen neuen DS.

    zu c: F_Art_Lieferübersicht ist kein UF

    zu d: Diese Abfrage hab ich eh schon und mir wird auch in T_Art_Lieferübersicht die richtige Ein- bzw. Ausgangsart angegeben. Deshalb brauche ich auch die IF-Schleifen um zu sehen von wo der DS herkommt. Wäre mir sicher möglich, das in einem Feld zu schaffen, nur muss ich dann wieder Beziehungen löschen und all diese Dinge und ich bin leider schwer unter Zeitdruck und noch kein wirklicher Access-Experte.

    @Nouba:

    Mit meiner If-Bedingung überprüfe ich in welchem der drei Felder eine LS-Nummer eingetragen ist und kann darauf zurückschließen aus welcher Tabelle die Daten stammen.
    In stDocName steht mein Formularname drin, z.B. F_Art_Externereingang


    Danke euch beiden

    Christian
     
    effemvierfan, 14. Februar 2004
    #4
  5. Hi Christian,

    bin jetzt nicht im Klaren, ob Du weiter gekommen bist.

    Also Zahlen schreibt man nicht in Hochkommata. Wenn Dein Feld [Lieferscheinnr] ein Zahlenfeld ist, Hochkommata weg!
    Wenn dann Fehler auftreten, liegts an was anderem.

    Laß Dir doch mal stLinkCriteria in einer MsgBox anzeigen. Möglicherweise ist der übergebene Wert nicht richtig.

    Gibt es ein Ereignis beim Öffnen des Forms F_Art_Externereingang?
    Kann es sein, daß hier mit einem Cancel das Öffnen abgebrochen wird?

    Das Beste ist wohl, Du setzt in die erste Zeile einen Haltepunkt und buggerst mit F8 Schritt für Schritt durch die Prozedur, irgendwo wird der Code hängenbleiben, wenn ein Fehler vorhanden ist.
    Falls nicht und Dein Formular wird geöffnet mit nur einem neuen Datensatz, dann entspricht entweder kein existierender Datensatz Deinem Kriterium oder aber Dein Formular läßt nur neue Datensätze zu.

    Kannst Du Deine DB auszugsweise hier hochladen?
     
    Johnny Loser, 14. Februar 2004
    #5
  6. Hi Jonny!

    Ich glaub im Endeffekt warens eh nur die Hochkomma, nur hab ich die Tabellennamen im Code so oft umgeschrieben, dass ich nicht draufgekommen bin.

    Danke

    Christian
     
    effemvierfan, 15. Februar 2004
    #6
Thema:

DoCmd.OpenForm

Die Seite wird geladen...
  1. DoCmd.OpenForm - Similar Threads - DoCmd OpenForm

  2. DoCmd RunSql liefert Fehler in einer Funktion

    in Microsoft Access Hilfe
    DoCmd RunSql liefert Fehler in einer Funktion: Hallo Leute. Mit der folgenden Code in "Private Sub" gibt es kein Problem. Alles läuft super. Ich bruche diesen Code als Function, damit ich es aus einem Makro ausführen lassen möchte (oder...
  3. DoCmd Export nach Excel 2016

    in Microsoft Access Hilfe
    DoCmd Export nach Excel 2016: Guten Morgen! Ich möchte gerne erreichen, dass die Abfrage "Zusammenfassung" nach Schließen eines Formulars nach Excel exportiert wird. Dazu habe ich folgenden Code: Code: Private Sub...
  4. DoCmd Click nächste Registerkarte

    in Microsoft Access Hilfe
    DoCmd Click nächste Registerkarte: Hallo Leute, ich habe ein Navigationsformular mit mehreren Reitern. Im 1. Formular gibt man Daten ein. Am Ende dieses Formulars ist dann ein Knopf der die Datenspeichert und über eine Select Case...
  5. Laufzeitfehler 2501: openform wurde abgebrochen

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: openform wurde abgebrochen: hallo, ich bekomme beim öffnen eines formulares den laufzeitfehler 2501: Private Sub Form_Open(Cancel As Integer) Dim RST As Recordset Set RST = Me.Recordset If Me.Recordset.EOF Then Cancel =...
  6. Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen

    in Microsoft Access Hilfe
    Laufzeitfehler 2501: Die Aktion OpenForm wurde abgebrochen: Hallo, ich mal wieder. Ich kriege gerade eine mittelstarke Krise. Und zwar überprüfe ich in einer Tabelle nach ob der gerade ans System angemeldete Anwender das Formular öffnen darf. In jedem...
  7. DoCmd -> Laufzeitfehler 2486

    in Microsoft Access Hilfe
    DoCmd -> Laufzeitfehler 2486: ich habe bei einer Datenbank immer wieder mal das Problem das keine "DoCmd" Anweisungen ausgeführt werden können. Es erscheint der Laufzeitfehler 2486. Dieses hat dann auch zur Folge das sich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden