Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Bericht erstellen

Begonnen von dralle, Januar 05, 2015, 12:51:24

⏪ vorheriges - nächstes ⏩

dralle

Moin!

Ich will von einem Formular Werte, die in einem Textfeld sind, in einem Bericht übernehmen!
Doch mein Quellcode geht nicht!
Jemand eine Idee?

Private Sub Rechnung_Click()

DoCmd.OpenReport "Rechnung", View:=acViewPreview
Me!Bestellungen.Be_txtAnrede = rst!Rech_1

End Sub


Dralle

DF6GL

Hallo,

Dein Code hat wohl keinen besonderen Bezug zur Frage....


.
.
DoCmd.OpenReport "Rechnung", View:=acViewPreview,,,,Me!Textfeld1
.
.
.

im Bericht:

Sub Report_Open()
If Not Isnull(Me.Openargs) Then Me!Textfeldxy = Me.Openargs
End Sub
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

Hallo,
das kann ja auch nicht funktionieren. Was willst Du mit dem rst ?
Das ist üblicherweise ein Verweis auf ein Recordset, hast Du aber keines.

Ist das Formular an eine Datenquelle gebunden ?
Und die Formularfelder auch ?

Beschreibe das Vorhaben mal genauer.
Gruß Klaus

dralle

Also,

auf dem Formular Bestellungen werden unter anderem die Kundendaten durchs auswählen in Textfelder gefüllt.

Private Sub Be_ID_AfterUpdate()
    Dim rst As Recordset
    Dim strSQL As String
   
    strSQL = "SELECT K.Kunden_ID, K.Ku_Vorname, K.Ku_Familienname, K.Ku_Straße, K.Ku_Anrede, P.PLZ, P.Ort, K.Ku_IBAN, K.Ku_BIC " & _
             "FROM PLZ_Ort P INNER JOIN Kunden K ON P.PLZ_ID = K.PLZ_ID_F " & _
             "WHERE K.Kunden_ID=" & Me.Be_ID
   
    Set rst = CurrentDb.OpenRecordset(strSQL)
   
    'Kundendaten eintragen
    Me.Be_1 = rst!Ku_Vorname
    Me.Be_2 = rst!Ku_Familienname
    Me.Be_3 = rst!Ku_Straße
    Me.Be_4 = rst!PLZ & " " & rst!Ort
    Me.Be_5 = rst!Ku_IBAN
    Me.Be_6 = rst!Ku_BIC
    Me.txtAnrede = rst!Ku_Anrede
   
    rst.Close
    Set rst = Nothing

End Sub


Auf diesem Formular habe ich jetzt auch ein Button, womit der Bericht aufgemacht wird und dort jetzt z.B die Kundendaten eingetragen/übernommen werden sollen.

MaggieMay

Hallo,

was spricht dagegen, auf gebundene Formulare und Berichte umzusteigen?
Das würde die Sache wesentlich vereinfachen.

Alternativ dazu, könntest du im Steuerelementinhalt der Berichtsfelder folgendermaßen auf die Formularfelder Bezug nehmen:=Forms!Bestellungen!feldname
Freundliche Grüße
MaggieMay

MzKlMu

#5
Hallo,
Zitatwas spricht dagegen, auf gebundene Formulare und Berichte umzusteigen?
ich wundere mich ohnehin immer wieder, warum man Sachen programmiert die Access serienmäßig besser kann.
Wenn Formular und Bericht an eine Abfrage (wahrscheinlich die gleiche) gebunden werden, geht das alles (fast) automatisch.
Jediglich im Openbefehl für den Bericht muss ein Kriterium mitgegeben werden, das auf den Formulardatensatz verweist. Das ist ein Einzeiler.
Gruß Klaus

dralle

ich bin gerade dabei eine neue abfrage für den bericht zu schreiben. doch ich komme nicht mehr weiter!

SELECT Auftraege.Auftrags_ID AS Auftrag, Kunden.Ku_Familienname & " " & Kunden.Ku_Vorname AS Kunde, Kunden.Ku_Anrede, Kunden.Ku_Straße, Mitarbeiter.Mi_Familienname AS Verkäufer, Auftraege.Verkaufspreis AS Preis, Auftraege.Rabatt, Auftraege.bezahlt
FROM Mitarbeiter INNER JOIN (Kunden INNER JOIN Auftraege ON Kunden.Kunden_ID = Auftraege.Kunden_ID_F) ON Mitarbeiter.Mitarbeiter_ID = Auftraege.Mitarbeiter_ID_F
WHERE (((Auftraege.bezahlt)=False));

will ich verbinden mit..

SELECT PLZ_Ort.Ort, PLZ_Ort.PLZ
FROM PLZ_Ort INNER JOIN Kunden ON PLZ_Ort.PLZ_ID = Kunden.PLZ_ID_F;


ich brauche halt für den bericht
Anrede,Familienname/Vorname, Straße, PLZ/Ort, Auftrags_ID, Kunden_ID, Aktuelle Datum, Mitarbeiter, Hersteller, Modell, Fahrzeugklasse, Produktionsdatum, Rabatt, Verkaufspreis


MaggieMay

Wo genau ist dein Problem?
Du musst halt die Tabelle "PLZ_Ort" in die erste Abfrage mit hinzunehmen und dort mit der Kundentabelle verknüpfen.

Die Tabellenverknüpfungen lassen sich am einfachsten über den Abfrageentwurf erstellen.
Freundliche Grüße
MaggieMay

dralle

wie mache ich das über den Abfrageentwurf ? :-\

MaggieMay

Sorry, aber wie gehst du denn normalerweise mit Access und der Entwickler-Umgebung um, dass dir der Abfrageentwurf nicht bekannt ist?

Und wie hast du die erste Abfrage erstellt?
Freundliche Grüße
MaggieMay

dralle

Vielen Dank für den Denkanstoß. Ich habs hinbekommen. An dem Abend ging einfach gar nix mehr!