140
Ms Access
  • rushman
    #100
    a számláló mező minden új rekord bevitelekor egyel növekszik(ill. csökken, ezt be lehet állítani), ez automatikus, nem lehet szerkeszteni
    a kép beszúrása szintén rekord felvitelkol állítható be, csak egy kattintás a mezőbe...

  • Borg
    #99
    Várjálmár, eddig én is eljutottam velük, és ezután hogyan tovább?:)
    Mert ettől még sem a számláló nem működik, sem képet nem lehet berakni a kitöltéskor...
  • rushman
    #98
    1. Tábla szerkesztésénél adj meg egy számláló adattípusú mezőt
    2. Tábla tervező nézetében az adattípus OLE objektum legyen
  • Borg
    #97
    Nah, újabb kérdéseim vannak:) Már tovább jutottam kicsit.

    1. Szóval szeretnék csinálni az űrlap tetejére egy számlálót, amely ugyanazt a számot mutatja mindig, ahányadik rekordot az ürge tölti ki éppen. Ezt hol tudom beállítani, hogy az a szám jelenjen meg ott?

    2. Képeket is kellene tudni csatolni az egyes adatlapokhoz. Tehát az űrlapon lenne egy mező, amibe drag&drop, vagy bárhogyan, de be tudna rakni képeket. Ezt meg lehet oldani?
  • rushman
    #96
    Kipróbálom, kössz az ideát!

    Megjegyzés:
    A zárolással akadt néha gondom, történt egyszer, hogy futásidőben zároltam egy rekordot, mégis lehetett törölni(szerkeszteni nem!), pedig a súgóban egyértelműen leírja, hogy zárolt rekorddal nem lehet semmit sem csinálni. Hogy történhetett ez? Rejtély!
  • rushman
    #95
    gondoltam erre az alternatívára, de ebben rengeteg a hibalehetőség, és utálok ellenőrző rutinokat irogatni....
  • rushman
    #94
    sajnos az access részben platformfüggő, gyakorlatilag viszont a mentett mdb fájlt más adatbáziskezelővel is lehet haszálni .(VisualBasicben írtam hasonlót progit, amelynek egy access adatbázis volt az adattárolója)
  • Borg
    #93
    Eh... nem egy egyszerű dolog ez a keresés...

    Szóval ha én ebből az adatbázisból, meg a keresőjéből külön progit akarok csinálni, azt lehet?
    Tehát hogy ne accessban kelljen bohockodni vele annak, aki használja majd...
  • Zipus
    #92
    Most már világos, hogy mit szeretnél! :-)
    Erre jó a kombi lista, de a háttérbe biztos, hogy programozni kell!
    Én a következőt tenném:
    Felvenném a következő táblákat:
    1. csapat számláló és név mezővel.
    2. játékos játékosaz és név mezővel. A játékosaz mező kötve lenne a csapat számlálóhoz.
    (Igy azonosítva van a játékos-csapat viszony)
    3. mérkőzés
    (általad felvett mezőkkel, ami között ott van a játékos kombi lista)
    4. játékos értékelés: játékos értékelés mező
    Amikor összehozod a két csapatot a háttérbe futtatsz lekérdezést, ami a mérkőzéshez felviszi a játékos és a tulajdonság mezőket a játékos értékelés táblába.
    Utána segédűrlapként nyitod a játékos értékelés táblát amibe beviszed a kivánt adatokat, amit rekordonként kilépéskor zárolsz!
  • ronny666
    #91
    ezt nem tudod megcsinálni törlő lekérdezéssel?
    mielőtt visszalép A űrlapra, egyszerűen kitörli 1 átmeneti táblából a játékos nevét+a többi adatot...
    Ha új mérkőzést választ, akkor úrja létrehozod ezt az átmeneti táblát.....próbáld ki.....
  • rushman
    #90
    Úgy érzem elbeszélünk egymás mellett, mivel eddig rébuszokban beszéltem. pontosan értsd, leírom mit akarok megvalósítani:

    Amin most dolgozok, az egy komplett adatbázis-rendszer kézilabda bajnokságok adminisztrálása céljából. A problémám a játékosok egy adott mérkőzésén történő teljesítményük rögzítésekor vetül fel, mivel A űrlapon találhatók a mérkőzés adatai, a felh kiválasztja a mérkőző csapatokat (kombi panelból), futásidőben eme csapatok játékosai megjelennek az említett listában. Ha az egyik lista egy játékosára kattint, feljön a B űrlap, ahol kilenc tulajdonságot lehet beállítani. Ha ezt megtette, visszalép az A űrlapra, ahola beállított játékos neve jó lenne, ha eltűnne, így kiküszöbölhetem azon problémát, hogy a felh mégegyszer ugyanazon meccsen ugyanazon játékosának adatait megváltoztassa.
  • rushman
    #89
    isten őrizz, nem akarom én használni, te javaslod lista helyett...

    Nálam a listát futásidőben egy függvény tölti fel, méghozzá elég bonyolult módon, nem kis munkám van ebben a függvényben. Ennek bizonyos (lásd lent) értékeit kellene elrejtenem, egész egyszerűen más megoldás nem jut eszembe, hisz ha nem tüntetem el, akkor a felh véletlenül mégegyszer haszálhatja a már beállított érték tulajdonságait. Próbáltam figyelmeztetés módszerrel, de ez nem elegáns.

    Elvileg VBA-ban activeX vezérlőként be lehet hívni más regisztrált vezérlőt is, (mondjuk azt, amit az Excel is használ) de az is ugyanígy működik.
  • Zipus
    #88
    Jó, amit a Rushman ír, de ez nem egy felhasználóbarát módszer!
    A szebbik módja a paraméteres lekérdezés!
    Ehhez létre kell hozni egy űrlapot két kötetlen mezővel. Ebbe íratod bele a két mező keresőfeltételét! Ezután egy nyomógombbal meghívod a lekérdezést amibe az űrlapon szereplő két kötetlen mező neve szerepel. Kész a lekérdezés futásidőben!
    Ha viszont a nyomógomb egy jelentést hív meg ami viszont az előző lekérdezésre hivatkozik, akkor nyomtathatod is!
  • Zipus
    #87
    Én úgy érzem, hogy nem arra akarod használni a kombinált listát amire való!
    Konkrétabban példával:
    Van egy tábla pl. Szinek: fehér, piros, fekete stb.
    És van pl egy másik tábla Autó, aminek egy mezője, a szín.
    Namármost, ha nem akarod ezt mindig gépelgetni, akkor ez a mező kombinált lista, ami a szinek táblára hivatkozik.
    De ezt a pl fehér színt más autó is használhatja, ezért nem kell eltüntetni!
    Ha mást akarsz ezzel művelni, az programozástechnika, nem kombi lista!
    Ezt amit akarsz meg lehet valósítani, de csak a fenti módon.

  • rushman
    #86
    Az olyan mezőben, ahol előfordulhat üres érték, ott engedélyezned kellene a nulla karakterláncot, így az üres értékkel rendelkező mezőt is számításba veszi. Ha ez nem megy, akkor kötelezővé kell tenni a kitöltését (persze csak elvileg, ha nem akarsz ezzel pöcsölni, akkor rakj be egy jelet alapértelmezettként)
  • rushman
    #85
    Oksa, ez megy, csak futásidőben nem jön össze.

    A kombi lista nem járható, mivel a felh-nek az összes adatot látnia kell egyben (A űrlap), mivel később ezekből választ ki! tehát a lista egy elemére (Z elem) kattintva feljön egy másik űrlap( B űrlap), ahol a Z elem további adatait állíthatja be. Ha végzett, bezárja a B űrlapot, és az A űrlap listájából a Z elem el kell hogy tűnjön, de nem törléssel, csak lefedéssel.
    Próbálkoztam azzal, hogy a lista visszatéréskor kap egy szűrőt Like"Z elem" feltétellel, de ze nem jó, mivel a következő ilyen elemnél már az előzőleg lefedett Z elem újra előjön, kombinálva meg nem jön össze a szűrés.

    Ha ezt megoldod, kapsz egy fagyit...
  • rushman
    #84
    Gondolom adatokat akarsz keresni űrlapok mezőiben.

    Ez lekérdezéssel tehető meg legkönnyebben, melynek a szükséges táblái (feltételezem azt, hogy az űrlap adatai is táblában vannak tárolva) a rekorforrás (lekérdezés tervező nézetében kiválasztható), abból a két mezőt kiválasztod, és a feltétel mezőbe beírod a kritériumot. A súgóban találsz példákat feltételekre, de ha konkrétumokat tudsz mondani, mondjuk mit akarsz keresni, akkor egyszerűbb a válasz
  • Borg
    #83
    Köszi, meg fogom próbálni:)

    Még egy kérdés akkor:

    Ha nekem van egy ilyen űrlap adatbázisom, mondjuk 100 kitöltött űrlappal.
    Hogyan csinálhatok én ehhez egy keresőfelületet, amely az űrlap 2 eleme szerint tud keresni közöttük, és a találatokat kilistázza?
    (lehet gagyi kérdés, de az adatbázis szarságokkal csak most ismerkedek még - újra, és ez az access nem egy felhasználóbarát progi...)
  • Zipus
    #82
    Én az Access-t az Excellel sosem kevertem! Irtam egy szállítmányozási-számlázási rendszert csak Accessben!
    Az Excelt szarra sem tartom mellette, ennélfogva nem tudok segíteni neked!
    Mindent megoldanék szerintem, de kizárólag csak Accessben!
  • ronny666
    #81
    Hát igen, vannak elég érdekes kérdéseim....
    A lekérdezéseket átlátom...csak ezekkel a dolgokkal sok okosságot lehetne még belevinni az adatbázisomba/lekérdezésembe..
    Pl, hogy miért kéne megszámozni 1 lekérdezés rekordjait:mert a lekérdezés ki van exportálva EXCEL-be makróval(!!!ugyanis EXCEL-be kell továbbküldeni a lekérdezés eredményét!!!), ahol az első rublika az "Fsz.", s ha van 1000 db. tétel, akkor nekem kell megszámoznom (most az mind1, hogy pár katt az egész!)
    A másik, hogy miért kéne 1 lekérdezés akányhányadik(!) elemét lekérdezni úrja: mert az 1ik lekérdezés visszaad pl 150 nevet, és 1 másik kérdés az űrlapon az, hogy "Hányas fsz.-al ellátott személyt szeretné bővíteni/moódosítani/csatolni?...(!!! itt még nincs TAJ szám, csak név, anyja neve, szül.hely !!!), s egyszerűbb megadni űrlapon, hogy a "45"-ös számú egyént szeretném a fő táblába beilleszteni, mint begépelni az egészet....
    Evvégre kellenek ezek az okosságok....
    Nincs valami 5leted?
  • Zipus
    #80
    Lásd a #62 üzenetet!
  • Zipus
    #79
    Te elég érdekes kérdéseket teszel fel, de én attól tartok, hogy nem látod a lekérdezések lényegét!
    Bocsi, ha nem így van!
    A lekérdezés mindig egy bizonyos feltételnek megfelelő rekordhalmazt ad vissza! Ha a feltételed olyan, akkor 5 rekordot, ha olyan akkor 83-at stb.
    A lekérdezésnél sorszámnak ennélfogva nincs nagyon értelme, viszont az arra alapozott jelentésnek igen! Gondolj csak arra, hogy egy vásárlásnál kinyomtatva akarjuk csak tudni, hogy hány tétel volt.
    A kérdésed: meg lehet oldani, hogy egy lekérdezés eredményét tovább szűkíted, de akkor az első lekérdezés eredményét le kell tárolni egy ideiglenes táblába és utána arra kell meghívni egy új lekérdezést.
  • ronny666
    #78
    Akkor azt, hogy tudom megcsinálni, hogy a lekérdezés modjuk 5. (vagy akárhányadik) rekorját szedem ki 1 másik lekérdezéssel??
  • Borg
    #77
    Valaki jártas ember azt meg tudná mondani nekem, hogy ha csinálok az egyik beviteli mező helyett egy legördülő menüt, az adatfelvitelhez, akkor annak a választható pontjait hol tudom hozzáadni?
    Mondjuk 4 pont közül lehessen csak választani..

    (tehát úgy mint itt a topic tetején, az Ms Access legördülő menüben ott a többi lehetőség is)
  • Zipus
    #76
    Nem tudom, soha nem volt rá szükségem! Ha rájössz ne titkold el! :-)
  • ronny666
    #75
    Olyasmi, mint a Táblánál a "számláló", csak lekérdezésben....félére gondolok....
  • ronny666
    #74
    Zipus: nem tudod véletlenül, hogy lekérdezést, hogy lehet besorszámozni???
    Az 1 dolog, hogy látom, hogy pl van benne 8 rekord, de a sorszámozás...arra nem jövök rá...
    (teljesen mindegy, hogy milyen a lekérdezés)
  • ronny666
    #73
    [email protected]
    ide küldheted, de én is csináltam 1 mintát, hogy mi is a probláma...
    thx
  • Zipus
    #72
    Megcsináltam egy mintaadatbázist valami hasonló dologra. Azt nem írtad, hogy a tábláid milyen mezőkből állnak és mi a kapcsolat közöttük. Így egyértelműbb kibogozni a hibát.
    Az én adatbázisomban csináltam több táblából származó lekérdezést, jelentést, kombinált listát, ha gondolod elküldöm.
    Talán mankónak jó lesz! :-))
  • Zipus
    #71
    Nézdd, így nem jutunk egyről a kettőre! Az biztos, hogy nem jól szervezted a táblákat! Akár 8 táblát is össze lehet vonni lekérdezésbe, de ehhez a kapcsolati tábládat is jól ki kell alakítanod!
    Adj meg egy emil címet a #68 üzenet alapján megmutatom, hogy én miként csinálnám!
  • ronny666
    #70
    nem lehet osszevonni a 3 lekérdezést, mert ez már 1 előre beállított lekérdezés...más kapcsolatban vannak, ezzel csak bővíteném a lekérdezéseket, hogy összevonnán őket, mert nem lehet 3 táblából/lekérdezésből jelentést nyomtatni...
    A lényeg, hogy semmi kapcsolat nincs a 3 lekérdezés között...se "és", se "vagy"...semmi...
    És nem ad vissza semmit, hiába van eredménye az "1","3" lekérezésnek...
  • Zipus
    #69
    Első kérdésem, hogy miként vonod össze a 3 lekérdezést? A hiba a sejtésemből fakadt, az egyértelmű!

    A másik dolog, hogy felesleges ehhez 3 lekérdezés! Egy kell, hiszen a TAJ-szám azonosít egy sofőrt! Egy lekérdezésbe beviszed minhárom táblát és kiválsztod a szükséges mezőket! Azoknál a sofőröknél, ahol nincs meg valamelyik adat a lekérdezés üres mezőt hoz, de a többinél látszik!
    Igy csináld meg!
  • ronny666
    #68
    Ez a konkrétum...
    Van 3 lekérdezés:
    "1":
    1 mező: Tajszám
    2 mező: Név
    3 mező: Szül. idő év
    4 mező: Szül. idő hó
    5 mező: Szül. idő nap

    "2":
    1 mező: Tajszám
    2 mező: Irányítószám
    3 mező: lakhely város
    4 mező: közterület
    5 mező: házszám

    "3"
    1 mező: Tajszám
    2 mező: Autó típusa
    3 mező: Autó színe
    4 mező: Autó rendszáma
    5 mező: Autó rakománya

    Na, ezek a lekérdezések, külömböző táblákból jön össze...
    Nincs meg minden sofőrnek a lakcíme, irányítószáma...stb ("2" lekérdezés")
    Ez nem is baj...de kb. a fél állománynak megvan...Namost, amikor nyomtatnám a menetlevelet ki, akkor kéne mind a 3 lekérdezést 1be venni, hogy jelentést tudjak nyomtatni...(nem járható út, hogy a többi sofőr adatait nyilvántartsam!)
  • Zipus
    #67
    konkrétan! bocsi :-)))
  • Zipus
    #66
    Én nagyon valószínűnek tartom, hogy az "és" kapcsolatba fürdesz bele!
    Egyesével hoz eredményt, de összesítve pont azért nem!
    Konkrátan leírod a problámádat, akkor konkrátan leírva tudok segíteni!
  • ronny666
    #65
    Újabb error....ezt kapjátok ki!!!!!
    Van több lekérdezés, mondjuk "1","2","3" a nevük.
    Namost mindegyikben max. 1 rekord lehet (Összesítés:first), rekordok 5 mezőből állnak fixen!!!!
    Na, pl: "2" nevű lekérdezés nem hozott eredményt (azaz üres, 0 rekord van benne), a többi lekérdezésben benne van az 1 rekord, 5 mező adattal!!!
    Mikor ezeket a lekérdezéseket újra lekérdezem (hogy összefűzzem őket), a teljes lekérdezésben 0 rekord lesz, holott az "1","3" lekérdezésben benne van az adat...
    Nem tudjátok, hogy tudnám megcsinálni, hogy az "1","2","3" lekérdezéseket össze tudjam fűzni 1 rekordba 15 mezőbe??
  • Zipus
    #64
    Én sem a törlésről beszéltem!
    1. Táblára hivatkozik a kombinált lista, akkor a tábla minden egyes rekordja a listából elérhető.
    2. A lista sorforrása egy lekérdezés, ami esetleg ismét lehet egy tábla, azonban a lekérdezés feltétel sorába szűkítheted.
    Ha ez nem megfelelő, akkor nem értem a problémádat!
    Bár túl sok extrát nem lehet ezzel művelni! :-)
  • rushman
    #63
    csak én nem adatot akarok törölni, hanem adatot akarok lefedni( vizuálisan eltüntetni) a listából, ekkor viszont nem megoldás a tábla-szisztéma (szerintem)
  • Zipus
    #62
    A kombinált lista legegyszerűbb megoldása, ha az egy táblára hivatkozik! Én ezt szoktam mindig alkalmazni! Ez aztán a tábla elemeinek bővítésével a kombinált lista elemeit is bővíti.
    Nem kell, felesleges bajlódni az AddItem és A RemoveItem stb metódusokkal!
  • rushman
    #61
    hát elég érthetetlenűl írtam...