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
Hallo,
lasse Dir mal mit einer MsgBox vor dem DoCmd den Inhalt der Vorgangsnummer
ausgeben.
MsgBox Me.Vorgangsnummer
Hallo,
im Fall, dass Vorgangsnummer den Datentyp TEXT besitzt, sollte es so lauten:
DoCmd.OpenForm "frmRechnungen", , , "Vorgangsnummer='" & Me!Vorgangsnummer & "'"
@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 ?
Das gibt die Message Box aus: 2
es ist in beiden Form ein Textfeld
die Vorgangsnummer ist ein "Autowert"
Gruß
Olaf
Hallo,
gibt es bei den Rechnungen den Vorgang 2 ?
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
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
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
Hallo,
ja, die Datensatzquelle.
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
Hallo,
diese Abfrage öffne mal direkt und filter auf die 2 in der Vorgangsnummer.
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 & ""
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?
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
Hallo,
verwirrend ist, dass das Formular "frmRechnungen" heißt, obwohl es sich auf eine Tabelle mit "Bestellungen" bezieht....
Ist das denn korrekt?
Ansonsten lad mal die DB hier hoch, datenreduziert, komprimiert/repariert und gezippt.
Die Datei ist gezipt und gekürzt noch 700 KB groß. Hier hochladen geht leider nicht.
Die Tabelle heißt Bestellungen, weil darin alles steht, was die direkt Bestellung betrifft. Lieferant, Kundennummer, Anschrift, Lieferkonditionen, Bestellbestätigungen, Wareneingangsinformationen und zum Schluss noch die Rechnungsinformationen. Artikel werden darin mit gespeichert.
Für die Bestellung gibt es ein Form, für den Wareneingang und auch für die Rechnung. Deshalb auch frmRechnungen.
Gruß
Olaf
Hallo,
ZitatDie Datei ist gezipt und gekürzt noch 700 KB groß. Hier hochladen geht leider nicht.
Hast Du die DB vor dem Zippen mal komprimiert/repariert (Access Dienstprogramm) ?
Hast Du das überhaupt schon mal gemacht ? Das muss in der Entwicklungsphase regelmäßig gemacht werden.
ZitatDie Tabelle heißt Bestellungen, weil darin alles steht, was die direkt Bestellung betrifft. Lieferant, Kundennummer, Anschrift, Lieferkonditionen, Bestellbestätigungen, Wareneingangsinformationen und zum Schluss noch die Rechnungsinformationen. Artikel werden darin mit gespeichert.
Ein solche Tabelle mit einer Vielzahl unterschiedlichster Daten stimmt mich höchst bedenklich was das Datenmodell betrifft. Da gibt es bestimmt noch viel Optimierungsmöglichkeiten.
Und wenn das nicht geändert werden soll, so würde ich ein Formular verwenden in dem man die Felder in Gruppen darstellt auf je einem Registerblatt. Das ergibt sehr einfache auch bei vielen Feldern eine übersichtliche klar strukturierte Formularoberfläche. Und ist sehr einfach in der Handhabung, weil die Registerseiten für den Feldbezug keine Rolle spielen.
Hast Du schon mal mit einer Registerseite versucht ?
Ansonsten, machst Du mit Sicherheit mit dem Bezug auf die ID einen Fehler, man müsste halt die DB mal sehen.
Oder kannst Du mal ein Bild des Beziehungsfensters zeigen ?
ZitatHast Du die DB vor dem Zippen mal komprimiert/repariert (Access Dienstprogramm) ?
Hast Du das überhaupt schon mal gemacht ? Das muss in der Entwicklungsphase regelmäßig gemacht werden.
Das mache ich eigentlich nach jeder Änderung, außer bei Dateneintragungen direkt in der Tabelle.
Ich habe in der Zwischenzeit das ganze mal als Makro getestet und da funktioniert es ohne Probleme.
Einen Screenshot habe ich von dem Makro und den Beziehungen angefügt.
Beziehungen ohne RI sind entweder verknüpft oder lassen es nicht zu (tblStandardHW_index)
Ich kann die auch gerne die DB mal direkt senden wenn du möchtest.
Gruß
Olaf