Neuigkeiten:

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

Mobiles Hauptmenü

Formular mit Kombinationsfeld und 2 Tabellen

Begonnen von perladd, März 24, 2015, 14:52:35

⏪ vorheriges - nächstes ⏩

perladd

Hallo Leute,
ich bin neu hier und habe natürlich direkt eine Frage an euch Spezis.
Ich erkläre erst einmal was ich machen möchte. Ich habe in einem Formular ein Kombinationsfeld, in dem Firmennamen ausgewählt werden sollen. Nach dieser Auswahl sollen mir die dazugehörigen Bankverbindungen angezeigt werden in einem Unterformular. Hörst sich eigentlich einfach an, aber die Abfrage der Firmenname erfolgt aus der 1. Tabelle und die Bankverbindungen stehen in einer 2. Tabelle.

Jetzt zum Aufbau meiner Datenbank
1. Tabelle ( tbl_Fa )
Felder
Fa_ID ( Autowert + Primärschlüssel )
Fa_Name1 ( kurzer Text ), indiziert ohne Duplikate
und weitere Felder die sind aber für die Funktion nicht von Bedeutung

2. Tabelle ( tbl_Fa_Bank )
Felder
Fa-Bank_ID ( Autowert + Primärschlüssel )
Fa_Bank_Fa_ID ( Zahl ), indiziert Duplikate möglich
Fa_Bank_Fa_Name1 ( kurzer Text ),  indiziert Duplikate möglich
Fa_Bank_Bank ( kurzer Text ), indiziert nein
Fa_Bank_Konto ( kurzer Text ), indziert nein
Fa_Bank_BLZ ( kurzer Text ), indiziert nein
Fa_Bank_IBAN ( kurzer Text ), indiziert nein
Fa_Bank_BIC ( kurzer Text ), indiziert nein

Beziehungen eingerichtet, ob die aber allerdings so richtig sind müsstet ihr mir dann noch verraten
Fa_ID  --->    Fa_Bank_Fa_ID     ( 1:n, mit referentieller Integrität und Aktualisierungsweitergabe, Verknüpfungstyp 1 )

Abfrage erstellt

qry_Fa, beinhaltet alle Felder aus der Tabelle tbl_Fa

qry_Fa_Bank, beinhaltet alle Felder aus der Tabelle tbl_Fa_Bank


Formulare

frm_Fa_Bank

frm_Fa_Bank_Ufo, ist als Unterformular in dem Formular frm_Fa_Bank eingerichtet ( soll dazu dienen die Bankdaten in Tabellenform dazustellen )

Das Formular frm_Fa_Bank hat die Datensatzquelle qry_Fa_Bank
Das Formular frm_Fa_Bank_Ufo hat die Datensatzquelle tbl_Fa_Bank

In dem Kombinationsfeld in dem Formular frm_Fa_Bank habe ich als Datensatzherkunft Select Fa_Name1 From tbl_Fa eingetragen

Jetzt zu meinem Problem, wenn ich jetzt eine Firma auswähle geht Access sofort in den Bearbeitungsmodus und zeigt mir erst gar keine Bankverbindungen an, wenn welche vorhanden sind. Speichere ich allerdings dann eine neue Bankverbindung dann wird mir diese in dem Unterformular direkt angezeigt. Ich kann also z.B. keine vorhandene Bankverbindung löschen oder ändern.
Was muss ich noch einstellen, damit mein vorhaben funktioniert

Ich danke euch bereits jetzt schon einmal für eure Hilfe

Gruß
Thomas


MzKlMu

Hallo,
welcher Dateneigenschaften hat das Ufo ?
Daten eingeben muss auf Nein stehen.
Gruß Klaus

perladd

Hi,

das Ufo hat die Dateneigenschaft bei Daten eingeben auf "nein" stehen

Gruß
Thomas

MzKlMu

#3
Hallo,
sind Hafo und Ufo über die Schlüsselfelder verknüpft ?

Die Kombinationsfelder zur Auswahl sollten die ID (Fremdschlüssel) verwenden und nicht den Namen, das heißt, Datenherkunft des Kombis sind 2 Spalten der Fremdschlüssel und der Klartext.
Das Kombi im Ufo muss aber die Bank auswählen und nicht Fa.

In Tabelle 2 vermisse ich einen Fremdschlüssel zu tbl_Fa.

Kannst Du mal ein Bild der Beziehungen posten ?
Gruß Klaus

perladd

Hi,

was meinst du genau damit, ich habe eine Beziehung erstellt

Beziehungen eingerichtet, ob die aber allerdings so richtig sind müsstet ihr mir dann noch verraten
Fa_ID  --->    Fa_Bank_Fa_ID     ( 1:n, mit referentieller Integrität und Aktualisierungsweitergabe, Verknüpfungstyp 1 )

Gruß
Thomas

perladd

#5
Hi,

in Tabelle 2 ist doch der Fremdschlüssel Fa_Bank_Fa_ID

Im Ufo habe ich kein Kombi, dort sollen ja direkt die Daten angezeigt werden, die ich anhand des Kombis im Hauptformular ausgewählt habe

Gruß
Thomas

MzKlMu

#6
Hallo,
ZitatFa_ID  --->    Fa_Bank_Fa_ID
über diese Felder muss Hafo und Ufo verknüpft werden. Die Beziehungen einzurichten reicht dazu nicht.
Der Fremdschlüssel zu Fa_ID wird dann automatisch eingetragen.
Das Kombi wählt dann die Bank mit 2 Spalten (Fa-Bank_ID  und Fa_Bank_Fa_Name1) Das Kombi muss dann an das Fremdschlüsselfeld (Fa_Bank_Fa_ID ) gebunden werden.

Gruß Klaus

MzKlMu

Hallo,
ZitatIm Ufo habe ich kein Kombi, dort sollen ja direkt die Daten angezeigt werden
und wie gibst Du die Daten (Bank) ein wenn sich was ändert ?
Sind Hafo und Ufo verknüpft ?
Gruß Klaus

perladd

Hi,

Daten habe ich bis jetzt immer über Textfelder eingegeben und diese dann per Button gespeichert, aber da habe ich halt immer nur eine Tabelle dahinterstehen gehabt.

Kannst du mir noch einen Tip geben, wo ich diese beiden Formulare verknüpfen muss, das habe ich nicht gefunden. Ich weiß das ich irgendwo mal zwei Felder gesehen habe, Verknüpfen nach und Verknüpfen von. Aber gerade steh ich das etwas auf der Leitung

MzKlMu

Hallo,
die beiden Felder findest Du in den Dateneigenschaften wenn Du den Rahmen des Ufos anklickst. Wenn Du dann hinten auf die 3 Punkte klickst, werden die entsprechenden Felder vorgeschlagen. Die Formulare müssen dazu aber gebunden sein.

ZitatDaten habe ich bis jetzt immer über Textfelder eingegeben und diese dann per Button gespeichert
Das sind dann aber ungebunden Felder-
Warum verschenkst Du die Möglichkeit mit gebunden Formularen zu arbeiten.
Das macht Access serienmäßig besser, als Du es programmieren kannst.

Übrigens, hatte ich vorhin vergessen. 2 Banktatbellen sind überflüssig, das geht mit einer Banktabelle besser, Du kannst diese bei Fa und Kunden verwenden.
Gruß Klaus

perladd

#10
Hi,

so das habe ich jetzt gefunden, ist ja das gleiche, als wenn man mit Access das Unterformular aufbaut lässt. Aber ich habe immer noch das Problem, wenn ich eine Firma auswähle, das mir das Formular direkt in Bearbeitungsmodus geht und mir keine Datensätze angezeigt werden. Ich habe jetzt auch einfacher halber das Ufo in dem Hauptformular gelöscht und wir dir einzelnen Textfelder eingefügt um die ganze Sache vorab etwas zu vereinfachen. Diese Textfelder sind auch alle gebunden. Ich denke das es einfach noch an diese Verbindung von Tabelle 1 und Tabelle 2 noch was fehlt. Wenn ich jetzt z.B. auch einfach Daten eingebe wird auch alles soweit gespeichert, bis auf die Fa_ID aus Tabelle 1 in das Feld Fa_Bank_Fa_ID. Das wird mir aber allerdings auch erst gar nicht mit angezeigt im Textfeld

Ich habe das Formular mal als Bild mit angehangen

MzKlMu

Hallo,
wie wählst Du die Firma aus ?
Zeige bitte mal den vollständigen Code dazu.

Hast Du meinen Hinweis zur Bank gelesen ?

Die Banktabelle sollte man ohnehin umbauen.
Die reinen Bankdaten in eine Tabelle. Und eine weitere Tabelle in der die Kunden mit der Bank verbandelt werden. In diese Tabelle kommen dann auch die individuellen Kontodaten, mit einem Gültigkeitsdatum, denn Kontendaten können sich ändern, aber alte Daten müssen trotzdem stimmen. Das gleich gilt analog für die Konten von FA (=Firma?)
Gruß Klaus

perladd

Hi Klaus,

das mit der Bank habe ich gelesen, ich denke wenn ich das jetzige Problem im Griff habe, kann ich da noch einmal drüber nachdenken. habe halt nur gedacht das die Daten so sauber getrennt sind

Die Firma ( =Fa )habe ich ja über ein Kombi Feld ausgewählt. Einen Code habe ich nicht dazu, ich dachte es geht mit dieser Select Verknüpfung aber scheint wohl nicht so zu sein

MzKlMu

#13
Hallo,
Zum Suchen wird Code benötigt. Wenn das Formular an die Tabelle (oder eine gespeicherte Abfrage) gebunden ist, wird beim Anlegen eines Kombis das Suchen angeboten und der dazu notwendig Code (oder Makro in den neuen Versionen) automatisch erzeugt.
Zitathabe halt nur gedacht das die Daten so sauber getrennt sind
es macht keinen Sinn in einer Datenbank gleiche Daten zu trennen. Was gleich ist kommt in eine Tabelle. Es kann ja auch sein, dass FA und Kunde die gleiche Bank haben, willst Du das 2x pflegen ?

Man sollte auch darüber nachdenken ob es nicht besser wäre Fa und Kunden in einer Tabelle zu haben.
Auch die Kommunikationseinträge (Tel, Email, Fax) sollten auf den Prüfstand, da gibt es auch Verbesserungspotential.


Gruß Klaus

perladd

Hi Klaus,

ich bin für jeden Hinweis dankbar, ich glaube in manchen Sachen anscheinend noch zu kompliziert was den Aufbau angeht :)

Was dein Hinweis bezüglich Fa und Kunde gleiche Bank angeht, meinst du, wenn ich z.B. die Firma als Kunden anlegen muss, aber dazu muss ich doch auch wieder ein Feld anlegen, wo ich die Firma und die Kunden aufsplitte, sprich jeweils die ID mit reinsetzen

Das gleiche würde ja dann auch für dein Vorschlag gelten die Firma und Kunden in eine Tabelle

Darauf hin auch sicher deine Kommunikationstabelle ( Tel, Fax, E-Mail )

Ich warte noch einmal auf deine Antwort und unternehme erst einmal nichts weiter, wegen unnötiger Arbeit

Gruß
Thomas