Neuigkeiten:

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

Mobiles Hauptmenü

Über Optionsfelder in einem Formular eine Abfrage selektieren

Begonnen von Muselhexe, April 08, 2014, 15:45:54

⏪ vorheriges - nächstes ⏩

Muselhexe

Moin zusammen,
ich komme an einer Stelle nicht weiter, obwohl ich fast denke es sollte eigentlich nicht so schwer sein. Ich suche schon den ganzen Vormittag nach der Lösung aber bis jetzt habe ich nichts gefunden was mir weiterhilft. Aber vllt. suche ich auch nur nach dem Falschen ???

Ich habe eine recht simple Abfrage über so ziemlich alle Spalten einer Tabelle. Über ein Formular gebe ich einen Zeitraum an die Abfrage gegeben wird. Soweit so gut, funktioniert auch super.
Aber ich würde gerne in dem Formular auch angeben welche Spalten noch angezeigt werden sollten.
Dafür habe ich für jeden Spaltennamen ein Optionsfeld angelegt. Wenn es angeklickt ist soll es angezeigt werden und wenn nicht eben nicht.

Ist das die richtige Variante um da ran zu gehen? Ich fand es vom Layout her recht passend und auch praktikabel (wenn es denn funktionieren würde).

Es wäre toll wenn mir jemand helfen könnte.

Viele Grüße
Hexe

DF6GL

Hallo,

solche Vorgehensweise ist eigentlich kontroproduktiv in einer relationalen Datenbank und demzufolge standardmäßig auch nicht vorgesehen...

Wie auch immer, natürlich kann man eine Abfrage so erstellen, dass sowohl das Kriterium als auch die "ausgewählten" Felder in der Abfrage (!?) berücksichtig werden.

Bevor ich aber die Lösung zeige, wäre es sinnvoll, den dahinterliegenden Sinn dieses Unterfangens zu (er)kennen...

Soll heißen, beschreib mal den Sinn und Zweck der DB..



Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Muselhexe

Moin,
also der eigentliche Sinn der DB ist eine Ereignisliste mit einer Qualitätsparameterliste zusammenzuführen, das funktioniert dank eurer Hilfe auch ganz wunderbar.

Mit dieser Abfrage bzw. Formular möchte ich folgendes bezwecken.

Die Tabelle mit den Qualitätsparametern behinaltet die Spalten Datum und Sorte sowie 20 Qualitäsparameter. Wenn jetzt einer meiner Kollegen zu irgendeinem Thema etwas auswerten möchte ist es meist so das wir nur einen Zeitraum brauchen und je nach Thema vllt. nur 5 der Qualitätsparameter.
Und da ich regelmäßig damit beauftragt werde diese zusammenzustellen dachte ich es wäre einfacher den ganzen Spaß über ein Formular zu automatisieren.
Deshalb soll man den gewünschten Zeitraum angeben und die Qualitätsparameter die man braucht anklicken. Danach kann man das Abfrageergebnis dann in eine Excel exportieren und weiter grafische Auswertungen vornehmen.
Ich fand das eigentlich recht sinnvoll, da ich sonst wenn ich nur eine Zeitraumabfrage mache ja die Spalten in der Excel händisch rauslöschen müsste. Aber vielleicht liege ich da ja auch falsch.

Viele Grüße

DF6GL

#3
Hallo,

nun gut, die 20 Qualitätsparameter-(Felder) in einem(!) Datensatz gehören normalisiert und als 20 Datensätze in einer n-Tabelle hinterlegt. Das würde die Sachlage enorm vereinfachen...

Wie auch immer, so könnte die dynamische Zusammensetzung einer Abfrage (SQL-String) aussehen (bei Klick auf den Formular-Button "btnCreateSQL" und irgendeiner vorher gespeicherten Abfrage ("qry_dynQParam") ):

(LuftCode)

Sub btnCreateSQL_Click()
Dim strSQL as String, strKrit as String

strKrit = " Where [Datum] between " & Format(nz( Me!txtDatVon,#01/01/1900#) ,"\#yyyy-mm-dd\#") & " and " & Format(nz( Me!txtDatBis,#12/31/2050#) ,"\#yyyy-mm-dd\#")

If Me!Optfeld1 Then strSQL =strSQL & ", QFeld1"
If Me!Optfeld2 Then strSQL =strSQL & ", QFeld2"
If Me!Optfeld3 Then strSQL =strSQL & ", QFeld3"
.
.
.

strSQL = "Select [Datum], Sorte" & strSQL  & " from tblQValues " & strKrit

Currentdb.Querydefs!qry_dynQParam.SQL = strSQL
DoCmd.TransferSpreadsheet , , "qry_dynQParam", "c:\Temp\Qualitätsparameter.xls", True

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

bahasu

Hallo,

Zitat von: DF6GL am April 08, 2014, 19:07:48
nun gut, die 20 Qualitätsparameter-(Felder) in einem(!) Datensatz gehören normalisiert und als 20 Datensätze in einer n-Tabelle hinterlegt. Das würde die Sachlage enorm vereinfachen...

ich könnte mir als Ergänzung nach der 1:n Installation eine MultiSelect-Auswahlliste vorstellen, wo man die Punkte anklickt, die man ausgewertet haben will, und sich anhand dieser Auswahl die Selektion zuammenbastelt.

Harald
Servus

DF6GL

Hi Harald,

ja, das wäre eine Alternative zu den Optionsfeldern,  auch bei keiner Normalisierung. Wobei eine Normalisierung "später" auch Nachteile wieder mit sich bringt, wenn man dann  die "vertikalen" QParameter(werte) wieder in eine horizontale Liste umbauen müßte ("DBWiki/SQL-Liste")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

bahasu

Hallo Franz,

Zitat von: DF6GL am April 08, 2014, 19:20:14
Hi Harald,

Wobei eine Normalisierung "später" auch Nachteile wieder mit sich bringt, wenn man dann  die "vertikalen" QParameter(werte) wieder in eine horizontale Liste umbauen müßte ("DBWiki/SQL-Liste")
Ich gebe zu, dass ich noch kein fertiges Konzept habe  ;)
Deswegen nur als "vage" Idee: Kreuztabelle zum Horizontalisieren (bis eben wußte ich noch gar nicht, dass es solch ein Wort gibt  ;D).

Harald
Servus

DF6GL

Hi,

erst mal sehen ob unsere Hexe mit der einfachen Version klarkommt..  ;-)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

bahasu

Hi,

bestimmt, wenn Du Ihr als Zauberer hilfst!  :)

Harald
Servus

Muselhexe

Guten Morgen,
na da bringt ihr aber mein kleines Gehirn aber mächtig zum arbeiten, am frühen Morgen  ;D
Ich werde mir das ganze mal nachher ordentlich zu Gemüte führen, wenn ich weitere Fragen habe melde ich mich nocheinmal!
Aber schoneinmal vielen Dank bis hierher!

Einen wundervollen Tag
Hexe