Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von F3K Total »

Hi,
stelle die Datei, ggf. verfremdet, zu Verfügung, dann wird Dir bestimmt geholfen.
Gruß R
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von F3K Total »

Wenn Du hier angemeldet bist, kannst Du sie beim Erstellen eines Beitrags unten anhängen, wenn nicht, verwende einen Filehoster wie z.B. Dropbox und verlinke die Datei.
Gruß R
Tobi_Frenker
Beiträge: 2
Registriert: Sa, 12.03.2016 15:33

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von Tobi_Frenker »

Hier einmal die Datei in abgespeckter und anonymisierter Form
Datenbank_Forum_2016.odb
(29.73 KiB) 99-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von F3K Total »

Also,
habe mir die Datei angesehen, ja, du bist Neuling. Was soll in der Tabelle Bereichsinformationen stehen?
Du hast überhaupt keinen Bezug zum jeweiligen Kontakt vorgesehen. Wenn du dort also irgendwelche Werte eingibst, weißt du später nicht, wer sie gegeben hat.
Das wichtigste beim Erstellen einer Datenbank, ist es, Tabellen so anzulegen dass die Daten, die du erfassen möchtest, nur ein einziges mal vorkommen, man spricht von Normalisierung. Das Fragment beinhaltet aber nicht alle Daten die du erfassen willst, ich sehe z.B. nirgends die Standfläche, Standgebühr usw.
Ausserdem erschließt sich mir nicht, was du am Ende "Herausbekommen" möchtest, was du verwalten willst?
Summe aller Einnahmen?
Vergabe aller möglichen Standflächen?
Bitte beschreibe den Prozeß den du durchführen möchtest, so exakt wie möglich.
Dazu gehört auch das du wenigsten zwei drei Zeilen ausfüllst, wenn auch mit Fake-Daten.
Kann ein Kontakt z.B. mehrere Standflächen "anmieten", oder gibt es je Kontakt nur eine?

Ich sehe nicht, dass du ein einziges Makro benötigst, läßt sich vermutlich alles mit einer geeigneten Tabellenstruktur auf einem Formular lösen.



Gruß R
Tobi_Frenker
Beiträge: 2
Registriert: Sa, 12.03.2016 15:33

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von Tobi_Frenker »

Ich versuche mal so genau zu antworten wie möglich, fange aber hinten an
F3K Total hat geschrieben:was du am Ende "Herausbekommen" möchtest, was du verwalten willst?
:

Es soll im Prinzip eine Art Kundendatenbank sein - bezogen auf ein Stadtfest - alle Kontakte, die damit zu tun haben.

Jeder Kontakt wird einem Bereich zugeordnet (Sponsoring, Gewerbe, Automeile etc.)

In der Tabelle Bereichsinformationen werden alle Infos zu allen Bereichen abgelegt (Standgebühr, standfläche, Strom etc.)

Dann wollte ich einzelne Formulare für die jeweiligen Bereiche als Eingabeoberfläche anlegen mit den spezifischen Bereichsinformationen
(siehe Bereichsinformationen_Sponsoring)

mit dem Formular neuer Kontakt sollen die neuen "Kundendaten" dann eingeben werden - wenn ich mit dem Dropdown den Bereich auswähle soll sich das

darauf bezogene Eingabeformular öffnen und die eingegebenen Daten dann auch diesem Kontakt zugeordnet werden.

Warum das alles - ich möchte eine Oberfläche zur Eingabe haben, die alles soweit abdeckt und zuordnet.

Herausbekommen möchte ich nachher unterschiedliche Dinge, Abfragen wer sich in welchem Bereich bereits angemeldet hat, Summe aller Standgelder Gewerbe Summe aller Einnahmen gesamt - alle angemeldeten in Automeile etc.

Ich hoffe das ist verständlich

LG
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von F3K Total »

OK,
da du meine Fragen nicht beantwortest, hier exakt nur dass, was du wolltest, ein kurzes Makro.
Natürlich mußt du die Formulare
  • Bereichsinformationen_Automeile
  • Bereichsinformationen_Markt_am_Teich
erst noch anlegen.

Code: Alles auswählen

Sub Bereichsinformationen(Event)
    olst = event.source.model
    sBereich = olst.CurrentValue
    oFormDocuments = ThisDatabaseDocument.FormDocuments
    select case sBereich
        case "Sponsoring"
        oFormDocuments.getbyName("Bereichsinformationen_Sponsoring").open
        case "Automeile"
        oFormDocuments.getbyName("Bereichsinformationen_Automeile").open
        case "Markt am Teich"
        oFormDocuments.getbyName("Bereichsinformationen_Markt_am_Teich").open
    end Select
End Sub
Glücklich wirst du damit vermutlich nicht.
Gruß R
EDIT: Hatte (Event) in der ersten Code-Zeile vergessen, jetzt nachgetragen.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld als Dropdown soll nach Auswahl ein neues Formular öffnen

Beitrag von F3K Total »

Damit du etwas glücklicher wirst:
Mit diesem beiden Makros wird das entsprechende Formular geöffnet, die KundenID und die BereichsID übernommen.
Wenn du speichern drückst, werden die Bereichsdaten in die DB geschrieben, siehe Beispiel anbei.

Code: Alles auswählen

Sub Bereichsinformationen(Event)
    olst = event.source.model
    olst.Commit
    oFormKunde = olst.Parent
    if oFormKunde.isnew then oFormKunde.insertRow else oFormKunde.updateRow
    nKontakt_ID = oFormKunde.Columns.Kontakt_ID.getint()
    nBereich = oFormKunde.Columns.Bereich.getint()
    sBereich = olst.CurrentValue
    oFormDocuments = ThisDatabaseDocument.FormDocuments
    select case sBereich
    case "Sponsoring"
        oFormDocument = oFormDocuments.getbyName("Bereichsinformationen_Sponsoring").open
        S_Insert_Values(oFormDocument,nKontakt_ID,nBereich)
    case "Automeile"
        oFormDocument = oFormDocuments.getbyName("Bereichsinformationen_Automeile").open
        S_Insert_Values(oFormDocument,nKontakt_ID,nBereich)
    case "Markt am Teich"
        oFormDocument = oFormDocuments.getbyName("Bereichsinformationen_Markt_am_Teich").open
        S_Insert_Values(oFormDocument,nKontakt_ID,nBereich)
    end Select
End Sub

Sub S_Insert_Values(oFormDocument,nKontakt_ID,nBereich)
    oForm = oFormDocument.DrawPage.Forms.MainForm
    do
        wait 10
    loop until oForm.isloaded
    oForm.moveToInsertRow
    oForm.Columns.FK_ID_K.updateint(nKontakt_ID)
    oForm.Columns.FK_ID_B.updateint(nBereich)
end sub
Gruß R
Dateianhänge
Datenbank_Forum_2016.odb
(49.09 KiB) 92-mal heruntergeladen
Antworten