Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: kyselyiden teko radio-buttoneilla

mrkebab [09.06.2005 13:54:53]

#

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.

Antti Laaksonen [11.06.2005 13:34:06]

#

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.

mrkebab [11.06.2005 19:57:30]

#

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 ?

Antti Laaksonen [11.06.2005 20:17:42]

#

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

mrkebab [12.06.2005 13:48:03]

#

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 :)

mrkebab [13.06.2005 14:23:15]

#

Kekkasin jo.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta