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 ;-)
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*
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 ;-)
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!!!
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!!!
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!!!

