2.7k Aufrufe
Gefragt in Datenbanken von
Hallo Herr Experte,
ich habe folgendes Problem:

A) Tabelle mit folgenden Felder:
1) Spalte Konto (Eindeutig)
2) Bezeichnung des Kontos
3) Gruppennummer 2 stellig
4) GruppenzeilenNummer zur Gruppennummer Spalte (3)
5) Bezeichnung der Gruppenzeilennummmer

B) Mein Problem:
ich erzeuge ein Hauptformular mit eingem umgebundenen Feld Gruppennummer (Spalte 3). Dort gebe ich eine Gruppennummer ein. bei Aktualisierung startet folgendes Programm:


Private Sub Text0_AfterUpdate()
Dim Gruppennummer As String
Dim SQL_Konto As String

Gruppennummer = Forms![Fmr Gruppenzeilen zu Konto]!Text0

SQL_Konto = "INSERT INTO [Zuordnungsdatei Konto Gruppe] ( Konto, Text_Konto, GrupZeilNr ) " & _
"SELECT Tbl_KOBZ.Konto, Tbl_KOBZ.Bezeichnung, '" & Gruppennummer & "' AS Ausdr1 " & _
"FROM Tbl_KOBZ;"

DoCmd.RunSQL SQL_Konto

End Sub

Dies läuft problemlos.

Im Unterfolmular zum Hauptformular wird aber die ganze Tabelle angezeigt.

Problem:

Was mache ich, daß nur die Werte der Tabelle mit der eingegebenen Gruppennummer angezeigt wird.

Im nächsten Schritt gebe ich im Unterformular die zu der Gruppennummer gehörenden Gruppenzeilen ein. z.B für die Konten 3,5,9,12,89 usw. mit der Zeile 100 , die den Titel trägt "Erlöse für England"; für Konten 1,2,4,6 usw. die Gruppenzeile 110, mit den "Titel Wareneinsätze Produktion" und so weiter.

Problem:
Bei Eingabe von 100 oder 110 soll der Titel automatisch in das Feld 5) "Bezeichnung der Gruppennummer" geschrieben werden. ( Gruppennummer, Zeilen der Gruppennummer und Texte der Zeilen der Gruppennummern stehen in einer Tabelle.

Ich würde mich freuen, wenn Sie eine Lösung haben.
Ich arbeite mit Access 2002
Dank in voraus und Gruß

P_M

8 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

Erstelle ein Formular und füge zwei Kombinationsfelder in Abhängigkeit ein.

>gib unter
>Eigenschaften
>Ereignis
>nachAktualisierung

>folgenden Code ein:


übergeordnetes Kombinationsfeld:


Private Sub Kombinationsfeld6_AfterUpdate()
Me!Kombinationsfeld8.RowSource = "SELECT Gruppenzeilennummer from “Deine Tabelle” where Gruppennummer = '" & Me!Kombinationsfeld6 & "'"
End Sub

untergeordnetes Kombinationsfeld:

Private Sub Kombinationsfeld8_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Gruppenzeilennummer] = '" & Me![Kombinationsfeld8] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Das so vorbereitete Formular füge in das von Dir bereits erzeugte Hauptformular als Unterformular ein.

Das wäre mein Vorschlag nachdem ich die Datenbank nicht gesehen habe und auch nicht weiß aus welchen Tabellen und Feldern das Hauptformular bzw. das Unterformular erstellt wurden.

Ein Nachbau der Datenbank (konzeptmäßig) meinerseits ist auf Grund der Angaben in der Anfrage bzw. auch aus Zeitgründen derzeit nicht möglich.

Für Anregungen empfehle ich zusätzlich:

http://www.donkarl.com/

Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3
ECDL-Syllabus Version 4.0[/sub]
0 Punkte
Beantwortet von
Großen Dank für die schelle Anwort an Paul1!
Ich werde deine Ausführung gleich ausprobieren.

Anmerkung:

Mir geht es darum,einfach diese oben beschriebene Tabelle zu füllen.
Da die Kontenanzahl meißt bei 700 bis 800 Konten liegt, sollte diese Tabelle aus anderen "Schlüsseltabellen" zusammen kopiert werden.
Ein Problem gibt es dabei leider, daß ich alle Felder per kopieren in die Tabelle bekomme. Leider muß ich die Gruppenzeilen, die zu einer beliebigen Gruppe gehören selbst eingeben . Das sollte so wenig arbeit wie möglich machen. Diese dann gefüllte Datei ist wieder eine "Schlüsseltabelle", die mit der Haupttabelle in der Werte stehen, verbunden wird und daraus z.B. GuV-Berichte erzeugt werden.

Konkret:

Mein Hauptformular beinhaltet nur aus eim Kombinationsfeld (= Gruppennummer). Ich gebe die Gruppennummer ein, dann soll aus der Schlüsseldatei Konten, in die obige Tabelle das Konto mit Bez. kopiert werden, zusätzlich wird noch die Gruppennummer dazu kopiert (=meine Eingabe im Kombinationsfeld).

Dieser erzeugte (kopierter) Beriech der UrsprungsTabelle = "Schlüsseltabelle" soll jetzt im Unterformular erscheinen und dort soll jetzt für jedes Konto und Gruppennummer die dazugehörige Gruppenzeile (=Zahl) per Hand eingegeben werden. Wenn ich die Gruppenzeile per Hand eingeben, sollte jetzt aus der "Schlüsseltabelle Gruppen" die Bezeichnung der Zeilennummer mit angegeben oder gezeigt werden.

Anmerkung:

Diese "Schlüsseltabelle" ist ein erster Entwurf. Eigentlich brauchen die Kontenbezeichnungen und Gruppenzeilenbezeichnungen nicht weggespeichert werden. Bei der Dateneingabe sollten wenn möglich die Bezeichnungen jedoch gezeigt werden. Wer weis schon noch nach 5 min was Konto 4711 und Gruppe 129 auch 800 Konten bedeudet !

Nochmals großen Dank für Deine Mühe!

P_M
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo P_M,

Da es hier scheinbar um Buchhaltung geht, sprechen wir diesbezüglich die gleiche Sprache, zumal ich auf eine langjährige Praxis im Rechnungswesen zurückblicken darf.

Mit Access und Excel selbst beschäftige ich mich intensiv erst seit ca. 5 Jahren, aber was die Aufbereitung eines Zahlenmaterials und die dazugehörigen Auswertungen betrifft, glaube ich mich ganz gut auszukennen.

Ich weiß, der Aufbau einer funktionierenden Datenbank ist oft sehr schwierig, da man manchmal erst im Nachhinein feststellt, dass es nicht das ist, was man sich erwartet und zumeist wieder bei Adam und Eva anfangen muß.

Die erforderlichen Test's in Access sind im Vergleich zu Excel leider sehr mühsam und auch zeitintensiv.

Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo P_M,

schau Dir in diesem Zusammenhang auch nachfolgende Möglichkeit an:

http://www.software-chuchi.ch/praxis/microsoft_access_abfragen_union_abfragen.htm

Gruß

Paul1

P.S.
bei Fragen schreibe es
0 Punkte
Beantwortet von
Hallo Paul1,

es wird zu kompliziert!
Was will ich?

Ich möchte eine Schlüsseldatei so weit als möglich mit vorhandenen Daten füllen.
Die Schlüsseldatei verdichtet meine 700 Konten auf 30 Gruppenzeilen. Das ist das Ziel.


Für den Anwender sollte es so einfach als möglich sein, diese Schlüsseldatei zu füllen.

Vorhanden ist die Kontentabelle = KontoNr und Bezeichnung und
die Gruppentabelle = GruppeNr,Zeilennummer und Zeilenbezeichnung.

Was fehlt ist die Zuordnung der Konten zu den Zeilennummern für eine Gruppe.

Damit ich nicht alle Konten, Gruppen und Gruppenzeilen und Bezeichnung der Gruppenzeilen in die Schlüsseltabelle eingeben muß, sollte es per Programm so weit als möglich dazugespielt werden als Start zu Dateneingabe:

Schlüsseltabelle:

Bez.Konto -> bereits in Kontntabelle vorhanden
KontoNr -> bereits in Kontotabelle vorhanden
GruppenNummer ---> Eingabe über das Hauptformular (einmalig)

Diese Werte sollten in der Schlüsseltabelle bereits vorbelegt sein.

Gruppenzeilen -----> dieser Wert muß den einzelnen Konten per Hand zugeordnet werden.
GruppenzeilenBezeichnung -----> sollte per Apdate dazugespielt werden.

Gruß
P_M
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo P_M,

Ich kann es mir nicht richtig vorstellen, um einen umfangreichen Schriftverkehr zu vermeiden, wäre ein von Dir erstelltes Minimalkonzept der Datenbank erforderlich und z.B. hier hochzuladen.

http://www.file-upload.net/

Dann könnte ich entscheiden, ob ich mit den Gegebenheiten einen echten Lösungsvorschlag anbieten kann.


Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo P_M,

So könnte ich es mir vorstellen:

http://www.file-upload.net/download-7598945/Experiment_Buchhaltung_2013-05-15.zip.html

In Tabelle1 werden die Gruppennummern eingegeben in der anschließend aus beiden Tabellen erstellten Abfrage bzw. Formular sind dann Zeilennummern und Zeilenbezeichnung automatisch vorhanden.

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo Paul1,

genau so habe ich mir das vorgestellt.

Nochmals Dank für die Mühe!

Gruß
P_M
...