seuraavanlainen ongelma:
minulla on tietueita acces 2000 ohjelmalla tehdyssä ohjelmassa. tarkoitus olisi laittaa vb:llä koodi jolla valitaan onko tietue näkyvissä vai piilossa. valinta tehdään checkboxilla. minkälainen koodi siihen pitäisi laittaa että se piilottaa valitun tietueen.
TJR kirjoitti:
minulla on tietueita acces 2000 ohjelmalla tehdyssä ohjelmassa
Tarkoitatko tietokannassa vai tyystin erillisessä ohjelmassa? Ja millä tavalla näkyvissä vai piilossa? Niin ettei niitä huomioida ollenkaan vai vain ei näytetä käyttäjälle? Ja taas palataan siihen, että minkälainen "ohjelma"...
...Pakko soittaa sinne huoltoon. Eihän yhden kristallipallon vuosihuolto voi kahta kuukautta viedä mitenkään... *mutinaa*
Siis, kyse on tietokannasta, jossa tietueita taulukossa epälukuinen määräjotka pitäisi tietue kohtaisesti pystyä valitsemaan etteivät ne näy käyttäjällä, mutta pysyvät tietokannassa. voisin tietysti piilottaa ne käyttämällä kyselyitä mutta nyt se ei vain käy, joten yritän epätoivon vimmalla saada apuja vb koodista.
esimerkki ohjelmasta: kalenteri jossa jokaiselle päivämäärälle oma tietue, joskus tulee tarve piilottaa tiettyjä päiviä sotkemasta kalenteria, mutta ne voisi kuitenkin pysyä tietokannassa.
Eli tarkennetaan vielä.
Pitääkö käyttäjän pystyä tarkastelemaan kokonaista tietokannan taulua, vai millä tavalla käyttäjälle nuo tiedot esitetään? Miksi kyselyt eivät toimi?
Jos käyttäjän pitää pystyä tarkastelemaan taulun tietoja, niin suuntaa kyselyn tulos omaan tauluunsa ja näytä sitten se käyttäjälle.
Luodaan uusi pienempi taulu vanhan taulun tiedoista, jotka täyttävät annetun ehdon. Eli hieman kaikkien rakastamaan SQL:ää...
SELECT * INTO UusiTalu1 FROM Taulu1 WHERE Tieto = Oikea
Tietokannan sulkemisen yhteyteen voi sitten lisätä automaattisen poiston tuolle taululle, jos siihen tuntee tarvetta.
Vai napsautteleeko käyttäjä tietoja piiloon ja näkyviin?
Silloin kyseessä on puhdas ohjelmointi-tehtävä, eikä liity itse tietokantaan tai sen tietoihin mitenkään. Silloin on kyse enemmänkin objekteista, missä tietosi esität.
Edit: Muotoilua ja pilkun seksuaalista ahdistelua...
Edit2: Viedään se pilkun hoitelu loppuun asti...
Piti sanomani, että mikäli kyse on tuosta jälkimmäisestä vaihtoehdosta, niin paikka on sen hoitamiseen oikea, mutta tarvitaan vain enemmän tietoa miten aiot datasi käyttäjälle esittää, että pystyy auttamaan.
ongelma tulee siitä kun ohjelmassa on kaksi taulua ( kalenteri ja käyttäjä ) käyttäjä taulussa annetaan käyttäjälle henkilökohtainen tunnus jolla hän saa omat tietonsa auki mutta ei muiden. kun tehdään kysely ensiksi käyttäjän tunnistamiseksi jolla hän saa auki lomakkeen jossa on hänen tietonsa ja siinä alitaulukkona kalenteri jossa on myös oltava hänen tunnuksensa että ohjelma osaa hakea oikeat tiedot. kalenterin tiedot tulevat suoraan taulukosta, jolloin se toimii. ongelma on ettei poistoa voi tehdä kun erillisellä kyselyllä ( eli tiedot haetaan kyselyn kautta eikä suoraan taulukosta ) jos teen näin, joutuu käyttäjä antamaan tunnuksensa KAHTEEN KERTAAN ennenkuin oikea lomake ( ali lomakkeineen ) aukeaa. jos sen poiston voisi tehdä jollakin lailla suoraan koodamalla vb edittoria käyttäen en tarvitsisi tuota uutta kyselyä joka sotkee asioita.
onpa monimutkainen selittää, toivottavasti sähän selvensi ongelmaa.
Onko mahdollista laittaa se käyttäjän tunnus muuttujaan kirjautumisen yhteydessä ja kaikissa myöhemmissä tarpeissa käyttää tunnusta sieltä muuttujasta, jolloin sitä ei tarvitse antaa uudestaan? Käyttäjän tunnistuksen koodista olisi helpompi kertoa "tee näin", mutta yksi mahdollisuus on lisätä ohjelmaasi moduuli (jos sitä ei vielä ole), jonne lisätä julkinen Kayttaja-muuttuja.
'Moduulissa: 'en tiedä onko tunnuksesi numeerisia, kirjaimia sisältäviä vai sekä että, 'joten käytetään variantia, joka voi sisältää kumpia tahansa Public Kayttaja As Variant 'Itse formilla: 'käyttäjän tunnistuksen yhteydessä otetaan tunnus talteen... If Tunnus And Salasana Then Kayttaja = Tunnus Else 'Koska Kayttaja on variant tyyppinen, niin Empty on nolla-arvo, 'jota voidaan käyttää myöhemminkin hyväksi... Kayttaja = Empty End If 'myöhemmin tunnusta käytetään näin... If Not IsEmpty(Kayttaja) Then MySql = "Select * From Taulu Where Tunnus = " & Kayttaja Else 'Ulos heittäminen on julmaa, mutta tänne ei pitäisi olla mitään 'asiaa ilman läpäistyä käyttäjän tunnistusta... MsgBox "Riittämättömät käyttäjäoikeudet." & vbCrLf & _ "Ohjelma sammutetaan", vbCritical End End If
Kiitos vinkistä, täytyy yrittää tehdä se noin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.