[Gelöst]Im Formular Daten Filtern über 2 Comboboxen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Sheepstyle
Beiträge: 3
Registriert: Mo, 26.04.2010 21:22

[Gelöst]Im Formular Daten Filtern über 2 Comboboxen

Beitrag von Sheepstyle »

Guten Abend die Damen und Herren,
ich habe folgendes Problem, ich möchte über zwei Comboboxen (Name\Vorname) mir die Artikel anzeigen lassen, welche sich die gewählte person ausgeliehen hat, dabei ist zu beachten, dass sich der die Auswahl des Vornamens nur noch auf die Möglichkeiten des vorher ausgewählten Namens beziehen soll.

Bis dato habe ich folgendes Makro, dass ich bei statusänderung der Namens Combobox aufrufe:

Code: Alles auswählen

Sub Reload (oEv as object)

oEv.source.model.commit() Rem... commits the value from the combobox into its bound field
oEv.source.model.parent.GetByName("fmufArtikel").Reload() Rem... reloads the subform.
oEv.source.model.parent.GetByName("fmufVorname").Reload()

End sub
Und mein Formular enthält folgendes:
  • fmDaten (Hauptformular)
    -Kombobox :Nachname
    • fmufVorname (subformular)
      -Kombobox :Vorname
    • fmufArtikel (subformular)
      -Tabellen-Kontrollfeld: kndGrid
Das Hauptformular enthält die Tabelle "tblDummy", in die die Kombobox die Spalte "dmmyInhalt 1" über das Datenfeld, den selektierten Wert einträgt. Der Listeninhalt ergibt sich aus folgendem SQL:

Code: Alles auswählen

SELECT "kndName" FROM "tblKunden"
Das Subformular "fmufArtikel" enthält die Abfrage afRefferenzabfrage und ist von "dmmyInhalt 1" nach "kndName"
verknüpft

Meine Tabellen:
  • -tblArtikel
    -tblDummy
    -tblMitarbeiter
    -tblKunden
    -tblRefferenz


Die Tabellen sind wie folgt gegliedert:
tblArtikel:
  • -artID
    -artName
    -artMenge
    -artBreite
    -artHöhe
    -artLänge
    -artFarbe
    -artZubehör (ja/nein)
    -artZBText
    -artSortierung
tblDummy
  • -dmmyID
    -dmmyInhalt 1
    -dmmyInhalt 2
tblMitarbeiter
  • -maName
    -maVorname
    -maID
tblKunden
  • -kndID
    -kndName
    -kndVorname
    -kndTelefon
tblRefferenz
  • -refID
    -refkndID
    -refartID
    -refartMenge
    -refDatumVon
    -refDatumBis
    -refmaID
Ich hoffe mir kann irgendwer helfen denn ich komme und komme einfach nicht weiter. Mein kopf brummt und meine Base Basic Programmier kenntnis stufe ich als absoluter anfänger ein.
Zuletzt geändert von Sheepstyle am Di, 27.04.2010 22:08, insgesamt 1-mal geändert.
guenther
*
Beiträge: 19
Registriert: Mo, 26.04.2010 07:11

Re: Im Formular Daten Filtern über 2 Comboboxen

Beitrag von guenther »

ich habe so was ähnliches getestet

siehe http://members.aon.at/schardinger/openoffice/ beispiel Bsp03.odb

ist noch nicht fertig.

den filter im formular zu setzen dürfte nicht mehr schwer sein.

ich möchte den gewählten satz in der tabelle anfahren.
strebe eine lösung mit dem ResultSet der tabelle an.

wäre für anregungen dankbar
guenther
*
Beiträge: 19
Registriert: Mo, 26.04.2010 07:11

Re: Im Formular Daten Filtern über 2 Comboboxen

Beitrag von guenther »

das mit dem filtern ist fertig

siehe http://members.aon.at/schardinger/openoffice/ beispiel Bsp03.odb

servus, günther
Sheepstyle
Beiträge: 3
Registriert: Mo, 26.04.2010 21:22

Lösung

Beitrag von Sheepstyle »

Ich habe mein Problem mit Folgendem Makro code erfolgreich abgeschlossen.
Dazu müssen noch folgende Abänderungen an der Ausgangsituation gemacht werden:
Von
  • fmDaten (Hauptformular)
    • -KombiFeld :efNachname
      fmufVorname (subformular)
      • -KombiFeld :efVorname
      fmufArtikel (subformular)
      • -Tabellen-Kontrollfeld: kndGrid
ändern in:
  • fmMain (von "fmDaten" nach "fmMain" umbenannt)
    • -KombiFeld :efNachname
      -KombiFeld :efVorname (verschoben ins Hauptformular)
      -Formatiertes Feld: UnterschfitVorname (hinzugefügt)
      -Formatiertes Feld: UnterschfitName (hinzugefügt)
    fmufDaten (aus dem Hauptformular herausgeholt)
    • -Tabellen-Kontrollfeld: tblVerleih (von "kndGrid" nach "tblVerleih" umbenannt)
Die Abfrage afRefferenzabfrage fragt folgende Daten ab:
  • -artID von tblArtikel
    -artName von tblArtikel
    -refartMenge von tblRefferenz
    -refDatumVon von tblRefferenz
    -refDatumBis von tblRefferenz
    -kndName von tblKunden
    -kndVorname von tblKunden
    -kndTelefon von tblKunden
    -maName von tblMitarbeiter
    -maVorname von tblMitarbeiter


Alle Verknüpfungen wurden aufgelöst (geschieht automatisch sobald das SubFormular aus dem HauptFormular gelöst wird)

Somit enthalten die Formulare nur folgende Daten:
  • fmMain:
    • -Art des Inhaltes: Tabelle
      -Inhalt: tblKunden
  • fmufDaten:
    • Art des Inhaltes: Abfrage
      Inhalt: afRefferenzabfrage
und die KombiFelder:
  • efName:
    • -Art des Listeninhalts: SQL
      -Listeninhalt: SELECT DISTINCT "kndName" FROM "tblKunden"
  • efVorname:
    • -Art des Listeninhalts: SQL
      -Listeninhalt: SELECT "kndVorname" FROM "tblKunden"

Code: Alles auswählen

REM  *****  BASIC  *****
Sub Main()

End sub

'=====================================================================================================
'						****************************************************
'=====================================================================================================

SUB ReloadefVorname (oEvent as object)

'========================Variablen
dim oForm as object, kfVorname as object
dim SQL as string
'========================Zuweisungen

SQL = "SELECT ""kndVorname"" FROM ""tblKunden"" WHERE ""kndName"" = '" & oEvent.Source.GetText() & "'"

oForm = oEvent.Source.Model.GetParent()					'	setzt "oForm" auf das Formular des aufrufenden Objektes
kfVorname = oForm.GetByName("efVorname") 				'	weißt kfVorname das Objekt "efVorname" zu
kfVorname.ListSource = SQL								'	setzt den Listeninhalt auf den string SQL 
kfVorname.Text = " Bitte Wählen "						'	setzt den Text auf Bitte wählen

END SUB

'=====================================================================================================
'						****************************************************
'=====================================================================================================

SUB ReloadtblVerleih (oEvent as object)

'========================Variablen
dim oForm as object, oDoc as object, oFilterForm as object, kfVorname as object, kfName as object, dummy as object
dim oFilterVorname as string, oFilterName as string
'========================Zuweisungen

oForm = oEvent.Source.Model.GetParent()
oDoc = oForm.GetParent()

oFilterForm = oDoc.GetByName("fmufDaten")

kfName = oForm.GetByName("efName")

oFilterVorname = oEvent.Source.GetText()
oFilterName = kfName.Text

oFilterForm.Filter = "tblKunden.kndName = '" & oFilterName & "' AND tblKunden.kndVorname = '" & oFilterVorname & "' "

dummy = oForm.GetByName("UnterschriftName")
dummy.Text = kfname.Text

dummy = oForm.GetByName("UnterschriftVorname")
dummy.Text = oEvent.Source.GetText()

oFilterForm.Reload()


END SUB


'=====================================================================================================
'						****************************************************
'						Die Nun folgenden Funktionen und Subrutinen sind von
'						Günther Schardinger, aufgrund derer ich meine Sub-
'						rutinen geschrieben habe, hiermit bedanke ich
'						mich nochmals bei Günther Schardinger
'						****************************************************
'=====================================================================================================
Antworten