Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

DoCmd.OpenForm Befehl öffnet Datensatz nicht

Begonnen von Cyberhunter, Dezember 05, 2016, 09:53:46

⏪ vorheriges - nächstes ⏩

Cyberhunter

Hallo zusammen,

ich stehe vor einem Problem und weiß nicht warum. Ich habe ein Form in Datensatzansicht und möchte das der angeklickte Datensatz sich in einen anderen Form öffnet.
Ich habe:
eine Form "frmBestellungen" mit der Feld "Vorgangsnummer"
ein zweites Form "frmRechnungen" mit dem Feld "Vorgangsnummer"

In der "frmBestellungen" werden nur ein Teil der Daten angezeigt und mit klick auf die Vorgangsnummer soll sich das Form "frmRechnungen" öffnen und den entsprechenden Datensatz komplett anzeigen. Das ganze würde auch mit einen geteilten Form gehen, soll aber wegen der Übersichtlichkeit getrennt sein.

Aktuell habe ich folgenden VBA im "frmBestellungen" Vorgangsnummer hinterlegt, dieser öffnet zwar das Form "frmRechnungen", aber nicht den Datensatz den ich angeklickt habe. Das Form ist einfach nur leer.

Private Sub Vorgangsnummer_Click()
    DoCmd.OpenForm "frmRechnungen", , , "Vorgangsnummer=" & Me.Vorgangsnummer
End Sub


Was habe ich falsch gemacht? ich finde den Fehler leider nicht.

Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013

MzKlMu

Hallo,
lasse Dir mal mit einer MsgBox vor dem DoCmd den Inhalt der Vorgangsnummer
ausgeben.
MsgBox Me.Vorgangsnummer
Gruß Klaus

DF6GL

Hallo,

im Fall, dass Vorgangsnummer den Datentyp TEXT besitzt, sollte es so lauten:

DoCmd.OpenForm "frmRechnungen", , , "Vorgangsnummer='" & Me!Vorgangsnummer & "'"
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

@Franz
hatte ich auch erst gedacht, aber würde das nicht zu einer Fehlermeldung führen (Datentypen unverträglich) und nicht zu einem leeren Formular ?
Gruß Klaus

Cyberhunter

Das gibt die Message Box aus: 2

es ist in beiden Form ein Textfeld

die Vorgangsnummer ist ein "Autowert"

Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013

MzKlMu

Hallo,
gibt es bei den Rechnungen den Vorgang 2 ?
Gruß Klaus

Cyberhunter

Ja, die Tabelle ist die gleiche, ein Teil sind Bestellinformationen wie Lieferant, Anschrift etc. und am Ende gibt es noch die Felder Rechnungsdatum, Rechnungs-Nr. Weil das aber sehr viele Informationen sind die bei der Rechnungserfassung nicht relevant sind, werden die RE Infos in einem separaten Form eingetragen.
Die Artikel sind einer anderen Tabelle drin.

Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013

MzKlMu

Hallo,
dann sehe ich keinen Grund warum das nicht funktionieren sollte.
Zeige mal die Abfrage (SQL) für das Formular "frmRechnungen".
Öffne mal die Abfrage direkt und filtere mit der 2
Gruß Klaus

Cyberhunter

So, jetzt bin ich als Newbie an dem Punkt, wo du mich verloren hast.

Wie kann ich mir die SQL Infos anzeigen lassen? Und welche Abfrage soll ich öffnen und filtern?
Wenn ich das Form in der Entwurfsansicht öffne und die Eigenschaften vom Form anzeigen lasse, brauchst du das was unter Datensatzquelle steht?

Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013

MzKlMu

Gruß Klaus

Cyberhunter

Das ist die Datensatzquelle aus dem Form "frmRechnungen"

SELECT tblBestellungen.*, tblLieferant.Mindestbestellwert, tblLieferant.[Skonto Tage], tblLieferant.[Skonto %], tblLieferant.Zahlungsziel, tblLieferant.Pauschale, tblLieferant.Versandkosten, tblLieferant.Verpackung, tblLieferant.Maut, tblLieferant.Versicherung, tblLieferant.Mehrfachberechnung FROM tblLieferant INNER JOIN tblBestellungen ON tblLieferant.Kundennummer = tblBestellungen.Kundennummer;

Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013

MzKlMu

Hallo,
diese Abfrage öffne mal direkt und filter auf die 2 in der Vorgangsnummer.
Gruß Klaus

Cyberhunter

Wolltest du die Infos sehen?
SELECT tblBestellungen.*, tblLieferant.[Skonto Tage], tblLieferant.[Skonto %], tblLieferant.Zahlungsziel, tblLieferant.Pauschale, tblLieferant.Versandkosten, tblLieferant.Verpackung, tblLieferant.Maut, tblLieferant.Versicherung, tblLieferant.Mehrfachberechnung, tblLieferant.Mindestbestellwert
FROM tblLieferant INNER JOIN tblBestellungen ON tblLieferant.Kundennummer = tblBestellungen.Kundennummer;


oder meinst du das was auf den Bild zu sehen ist.

Was mir dabei aufgefallen ist, das das Feld nicht Vorgangsnummer heißt sondern "ID", ich habe den VBA entsprechend umgestellt , aber mit den gleichen Ergebnis.
DoCmd.OpenForm "frmRechnungen", , , "ID=" & Me.ID & ""
Ich arbeite aktuell mit MS Access 2013

DF6GL

Hallo,

DoCmd.OpenForm "frmRechnungen", , , "ID=" & Me.ID & ""

Wie heißt dieses Feld in der Datenherkunft der Formular-Tabelle, bzw. -Abfrage?



Wie heißt dieses Formular-Steuerelement, das die ID anzeigt?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Cyberhunter

In der Tabelle wo alles gespeichert wird ist der Feldname "ID" (Autowert).
In dem Form/Datenblatt "frmBestellungen", wo unter Ereignis der VBA Code steht heißt das Textfeld "ID" mit Steuerelementinhalt "ID"
und in dem Form "frmRechnungen" wo das Ergebnis angezeigt werden soll, steht in dem Textfeld das die ID anzeigt als Steuerelementinhalt "ID" und unter Name "ID"
Vorgangsnummer ist die Beschriftung, die ja nichts mit de Abfrage zu tun hat, hatte ich Verwechselt.
Gruß
Olaf
Ich arbeite aktuell mit MS Access 2013