Kuinka onnistuu rakentaa kysely accesissa kun hakuehdot annetaan vaikkapa radio-buttoneilla.
Esimerkiksi minulla on taulu
AUTOMERKKI AUTOTYYPPI VÄRI saab kuorma-auto sininen toyota henkilö-auto valkoinen nissan kuorma-auto musta ford henkilöauto sininen nissan paketti-auto ruskea
Ja nyt minulla olisi formilla bradio-buttonit joista voisi valita millaisen kyselyn haluaa esim valittaisiin seuraavat
AUTOMERKKI AUTOTYYPPI VÄRI toyota kuorma-auto sininen saab henkilö-auto valkoinen nissan X paketti-auto musta ford ei mitään ruskea kaikki kaikki X kaikki X ei mitään ei mitään
Ja nyt tulostuisi siis tälläinen kyselytulos:
nissan kuorma-auto musta nissan paketti-auto ruskea
Nyt on vähän hakusessa, että miten tuollainen haku kannattaisi rakentaa.
vaihtoehtoja on enemmän kuin mitä ylläolevassa esimerkissä.
Onko tuollaista juttua edes mahdollista rakentaa ?
Koodissahan nuo buttoneiden arvot ovat joko TRUE tai FALSE.
Mahdollista on ilman muuta, ja kyselyn voi muodostaa ainakin niin, että ottaa selville kustakin ryhmästä valitun kohdan ja lisää sen kyselyyn. Valintanapit on järkevintä laittaa taulukkoon (Index-ominaisuus), jolloin koodin kirjoittaminen ei ole monimutkaista. Jokaisen ryhmän valinnan voisi ehkä panna muistiin jo silloin, kun tietystä napista painetaan. Näin ei tarvitse käydä läpi koko nappiriviä. Muuten kysely muodostetaan suoraan valintojen perusteella, mutta jos valittuna on kaikki, se ei aiheuta ollenkaan ehtoa kyselyyn. Vaihtoehto "ei mitään" on kaiketi turha, sillä silloin kyselyä ei voida muodostaa.
Kiitos.
Olisiko ehdotusta, että miten saisin sitten kyselylauseeseen nuo vaihtoehdot laitettua ?
Eli jos minulla on tiedossa, että mitä nappeja on painettu niin miten sitten saan rakennettua lausekkeen ?
Sinulla on varmaan jossain muuttujassa SQL-kysely. Muodosta se siis osissa nappien perusteella. Tässä tulee pikku esimerkki, jossa on mukana autonmerkin lisääminen kyselyyn. Muut ehdot lisätään vastaavalla tavalla. oMerkki on valintanappiryhmä, josta autonmerkki valitaan. vMerkki on valitun napin indeksi (päivitetään Click-tapahtumassa). Jos kaikki merkit kelpaavat, ehtoa ei tarvita lainkaan. Kyselyn alussa on turha ehto (1 = 1), joka on aina tosi. Tämä sen takia, että kyselyyn pystyy lisäämään suoraan ANDeilla uusia ehtoja.
kysely = "SELECT * FROM Taulu WHERE 1 = 1" If oMerkki(vMerkki).Caption <> "kaikki" Then kysely = kysely + " AND merkki = " + oMerkki(vMerkki).Caption End If
Kiitos.
Ymmärsinkö oikein?
Eli nimeän buttonit: Amerkki(0), Amerkki(1).. Rem autonmerkki nappiryhmä
Avari(0), Avari(1)... Rem Auton väri nappiryhmä jne...
Sitten vaikkapa click-tapahtumassa käyn for lauseella läpi mitä nappeja on painettu ja sen perusteella suoritetaan haku?
Nyt minulle jäi vain epäselväksi, että miten tuohon kirjoittamaasi sql kyselyyn nyt saadaan vaikkapa tuon merkin tilalle sitten vaikkapa toyota ? so. Mistä/miten tuon merkin arvoksi saadaan vaikka toyota tai nissan ?
Eli kun huomataan, että vaikkapa aMerkki(0) on painettu niin miten tuo arvo saadaan lausekkeeseen ?
Taisi tulla vähän sekava kysymys :)
Kekkasin jo.
Aihe on jo aika vanha, joten et voi enää vastata siihen.