Tabelle/Textfelder füllen, abhängig vom ausgewählten Dropdownmenüeintrag

25/08/2007 - 19:24 von matthias.kirchner | Report spam
Hallo,
ich habe ein Problem bei einem Projekt, welches ich gerade bearbeite.
Zum besseren Verstàndnis eine kleine Einführung:

Es ist eine Datenbank, die 4 Tabellen enthàlt. Kunden, Artikel,
Kategorien und Kassenbelege.
Die Tabelle, die es zu befüllen gilt, sind die Kassenbelege.
Ich habe zurzeit 2 Abfragen, einmal für die Artikel und für die
Kunden.
In einem Formular, werden die Kassenbelege erstellt, dieses heisst
"Kassenbeleg NORD".

In dem Formular gibt es folgende Felder:

Datum, BelegNr <<< die felder befinden sich in der Kassenbelegtabelle
Auftraggeber, Firma1, Firma2, Str, StrNr, PLZ, ORT, Tel <<< diese
Felder befinden sich in der Kundentabelle
Anzahl1/2/3 <<< Kassenbelegtabelle
Artikel1/2/3, Preis1/2/3, MWST1/2/3, <<< diese Felder befinden sich in
der Artikel/Kategorietabelle
Betrag1/2/3, SummeNetto, MWSTgesamt,Gesamtbetrag <<< Berechnete Felder

Die Felder "Auftraggeber" und "Artikel1/2/3" sind Dropdownmenüs,
welche die Daten aus den jeweiligen Tabellen(Kunden/Artikel) als
auswahlmöglichkeiten haben.

Nun mein Problem:
Öffnet man das Kassenbeleg Formular, so sollen die Daten aus der
Kassenbelegtabelle gelesen werden, was auch getan wird.
Wenn man nun bei einem bestehenden oder neuen Datensatz den
Auftraggeber àndert, so sollen auch die damit verbundenen Werte in
dieTextfelder im Formular geschrieben werden. Wenn man dann das
Formular speichert, sollen die Werte in die Kassenbelegtabelle
geschrieben werden. (Wenn dies wàhrend des àndern der Textfelder
passiert ist das auch OK)
Ich komme mit dem ausdrucksgenerator nicht so klar und habe versucht
bei dem Feld Auftraggeber bei einem Ereignis (nach Aktualisierung
bspw.) einen Ausdruck zu bauen, der die Felder: Firma1, Firma2, Str,
StrNr, PLZ, Ort und Tel mit den Daten füllt, die zu dem ausgewàhlten
Auftraggeber gehören.

Da ich aber keine Ahnung von der Syntax für die Ausdrücke habe, habe
ich es über den Codierten Weg mit SQL statements und dergleichen
versucht, komme da aber auch nicht wirklich weiter.
Hier mein bisheriges Code-Fragment:
'--
Private Sub Auftraggeber_AfterUpdate()
Dim strSQL As String
Dim rstTemp As Recordset
strSQL = "select Match, Firma-1, Firma-2, Strasse, Str-nr, PLZ, Ort,
Tel-1 from lexware-kd where match =" & Autraggeber.value
rstTemp = DoCmd.RunSQL(strSQL)
TextFirma1.Value = rstTemp.Fields("Firma-1")
TextFirma2.Value = rstTemp.Fields("Firma-2")
TextStraße1.Value = rstTemp.Fields("STRASSE")
TextStraßenr.Value = rstTemp.Fields("STR-NR")
TextPLZORT1.Value = rstTemp.Fields("PLZ")
TextORT.Value = rstTemp.Fields("ORT")
TextTel1.Value = rstTemp.Fields("Tel-1")

End Sub
'-
Nun bekomme ich einen Fehler, wenn ich einen Wert in "Auftraggeber"
àndere:
Function oder Variable erwartet.

Ich denke meine Lösung ist nicht gut und würde es gerne anders machen,
nur wie ist die Frage..
Ich bin über jegliche Hilfe und Anregung erfreut!

Achja, ein weiteres Problem, bzw was ich mir wünschen würde, wàre es:
Wenn ein neuer Belegsdatensatz erstellt wird, und ein Kunde
eingetragen wird, der noch nicht existiert, dass dieser dann direkt in
die Kundentabelle hinzugefügt wird.

Vielen Dank im Vorraus!

mfg
Matthias
 

Lesen sie die antworten

#1 Thomas Möller
25/08/2007 - 19:45 | Warnen spam
Hallo Matthias,

schrieb:
Hallo,
ich habe ein Problem bei einem Projekt, welches ich gerade bearbeite.
Zum besseren Verstàndnis eine kleine Einführung:

Es ist eine Datenbank, die 4 Tabellen enthàlt. Kunden, Artikel,
Kategorien und Kassenbelege.
Die Tabelle, die es zu befüllen gilt, sind die Kassenbelege.
Ich habe zurzeit 2 Abfragen, einmal für die Artikel und für die
Kunden.
In einem Formular, werden die Kassenbelege erstellt, dieses heisst
"Kassenbeleg NORD".

In dem Formular gibt es folgende Felder:

Datum, BelegNr <<< die felder befinden sich in der Kassenbelegtabelle
Auftraggeber, Firma1, Firma2, Str, StrNr, PLZ, ORT, Tel <<< diese
Felder befinden sich in der Kundentabelle
Anzahl1/2/3 <<< Kassenbelegtabelle
Artikel1/2/3, Preis1/2/3, MWST1/2/3, <<< diese Felder befinden sich in
der Artikel/Kategorietabelle
Betrag1/2/3, SummeNetto, MWSTgesamt,Gesamtbetrag <<< Berechnete Felder



ich denke, dass Du die Aufgabe zu sehr von Deinem Formular her angehst.
Ich habe den Verdacht, dass Dein Datenmodell nicht den Regeln der
Normalisierung entspricht.

Post doch mal bitte den Aufbau Deiner 4 Tabellen mit allen Feldern.

Eine Einführung zum Thema Normalisierung findest Du hier:
http://www.me-asal.de/access/17-normalformen.htm
(Link in einer Zeile)

Bitte achte bei der Benamsung Deiner Felder darauf, dass Du keine in
Access reservierten Worte verwendest. "Datum" ist so ein Fall. Schau
dazu auch hier: www.donkarl.com?FAQ1.5

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen