Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

SQL SELECT dynamisch erzeugen?!





Frage

Hi @all, mein problem sieht wie folgt aus: ich soll daten flexibel von der db(sql) ziehen. und zwar nur die felder die vom user über die checkboxen auf dem sheet ausgewählt werden. ich habe also ein leeres sheet auf dem sich Checkboxes (zb chkName, chkVorname, chkAlter etc...) und der Button "daten holen" befinden. Einfach ist die Sache wenn alle gewählt sind, weil ich dann ja recht einfach über ne IF Kontrolle den "select * from..." ausführen kann. Rein theoretisch könnte ich jeden Fall durch ein "IF...THEN" laufen lassen, aber das müsste doch auch dynamisch gehen! :-) seltsamerweise habe ich ein ähnliches Probleme in PHP/SQL bereits einfach lösen können...aber in VBA will´s einfach nicht klappen :-/ vielen dank schon im voraus! Jiggo

Antwort 1 von Coolpix

hallo Jiggo,

was hälst du davon:

Du legst im Deklarationsbereich unter Option Explicit eine Stringvariable an
z.B.

Public StrSql as string
StrSql = "select "

dann beim Ereignis Checkbox_XY_Click fragst du den Value der Checkbox ab:

if Me.Checkbox_XY.Value = True then StrSql=Strsql & Feldname

und dann Beim Klick auf Daten holen:
StrSql=StrSql & "FROM DeinTabellenname; "

oder so ...

Feedback wäre nett ...


Greetings ;-)

Antwort 2 von Jiggo

hat sich schon erledigt...

hab mich beim coden teilweise in der falschen sprache bewegt *lol*




Antwort 3 von Coolpix

hallo nochmal,

in der Zeile
if Me.Checkbox_XY.Value = True then StrSql=Strsql & Feldname
fehlt was

if Me.Checkbox_XY.Value = True then StrSql=Strsql & Feldname & ","

so muß das...


Greetings ;-)

Antwort 4 von Jiggo

@coolpix:

oops, das war fast gleichzeitig :-)


hab´s ähnlich gemacht! hab mir eine hilfsvariable "data" angelegt, an die ich dann je nach status der checkbox den passenden string hänge!

zB:

beim laden steht data = "name, vorname ", weil die beiden spalten immer dabei sein müssen.

ist nun checkbox "alter" angeklickt sieht´s im code so aus:

if chkAlter.value <> 0 then
data = data & ", Alter "
end if

gleiches dann für die restlichen boxen und fertig! hat eben den test bestanden :-)

danke trotzdem!!!



Antwort 5 von Jiggo

@coolpix:

oops, das war fast gleichzeitig :-)


hab´s ähnlich gemacht! hab mir eine hilfsvariable "data" angelegt, an die ich dann je nach status der checkbox den passenden string hänge!

zB:

beim laden steht data = "name, vorname ", weil die beiden spalten immer dabei sein müssen.

ist nun checkbox "alter" angeklickt sieht´s im code so aus:

if chkAlter.value <> 0 then
data = data & ", Alter "
end if

gleiches dann für die restlichen boxen und fertig! hat eben den test bestanden :-)

danke trotzdem!!!