140
Ms Access
  • Zipus
    #20
    Ti egyébként ismeritek az Access 2003-at? Mert én nem! :-(
  • Zipus
    #19
    Jó amit Rushman ír, de én a BeforeUpdate() függvénnyel egyből levizsgálnám a mezőt. Igaz itt meg kell írni hozzá a VB kódot!
  • rushman
    #18
    jajj, kihagytam egy fontos parancsot, névszerint kilépni az eljárásból a Hiba: címke előtt, mert különben végtelen ciklusba kerül a kód!
  • rushman
    #17
    és akkor mi baj van?

    szerintem azt kellene csinálni, hogy a következő rekordra lépésnél (2105-ös hibával tér vissza, ha egy indexelt mezőben két ugyanolyan rekord van) figyeljük ezt a hibaszámot, és megjelenítünk egy párbeszédablakot, hogy elbacta a tajszámot, valahogy így:

    Private Sub ujrekordCommandbar()

    'az újrekord parancsgomb végzi a következő rekordra
    léptetést

    On Error GoTo Hiba

    'hibafigyelés elhelyezése, hiba esetén ugrás a címkére

    DoCmd.GoToRecord , , acNewRec

    'következő rekordra lépés parancssora

    Hiba:

    'hibakezelés címke
    If err = 2105 Then

    '2105-ös hiba, tehát nem lehet a követk. rekordra lépni, tudjuk miért!
    Msgbox("Hibásan adta meg a tajszámot!", vbExclamation)
    DoCmd.GoToControl "tajszammezo"

    'a tajszám beviteli mezőre visszük a fókuszt
    Exit sub
    Else
    Resume 0

    ' egyéb hibánál vissza a hibát kiváltó sorra
    End If

    End Sub
  • ronny666
    #16
    csak 1 gond van vele...
    hogy akkor böki ki, hogy 2 TAJszámot vittem fel, amikor már az összes többi adatot is felvittem, s lépnék 1 következő rekordra....
    nem lehet előbb vizsgáltatni valahogy?
  • ronny666
    #15
    Fasza, thx...
    így működik is a dolog
  • rushman
    #14
    a legegyszerűbb, ha a tábla tajszám mezőjét indexeled, tehát nem lehet azonos-ra állítod.

    a bonyolultabb pedig vba-ban egyrekordhalmaz létrehozásával...
  • ronny666
    #13
    oké, hogyan lehet a vizsgálatot megcsinálni???egyszerűen nem jövök rá...
  • Zipus
    #12
    Ezt még a mező frissítése elött kell levizsgálni, nem az ürlapról való lelépés után! Akkor már hibásan felkerült az adatbázisba!
  • ronny666
    #11
    Lenne egy másik kérdésem...
    Azt, hogy lehet megoldani, ha ürlapon viszek be 1 adatot, s lelépek róla akkor csináljon egy vizsgálatot, hogy ez az adat már létezik-e, s ha igen, akkor visítson.....
    Pl, ne tudjak 2 TAJ számot rögzíteni véletlenül...
  • rushman
    #10
    jah, asszem a kópia (replica/adatbázis-többszörözés) ilyen esetekben kitűnően alkalmazható, próbáld ki (eszközök->többszörözés->kópia) mert én még nem használtam igazából...
  • Zipus
    #9
    Az ott kérdezett számlaszámproblémára nem tudtál választ adni! Van ötleted azóta? Úgy látom a leírtakból, hogy Te azért használod is az Accesst!
  • rushman
    #8
    ja, és egyébként ez a módszer tuti tökéletesen működik, mert már többször használtam rekordszámlálásra űrlapon
  • rushman
    #7
    gondoltam...

    végre lehet hajtani minden vezérlőelemen futásidejű újralekérdezést. Ezt mondjuk a form_afterupdate() eljárásban tudod megtenni, egy vezerloelem.Requery utasítással. Ennyi
  • ronny666
    #6
    nem jó sajnos...
    a lista nem frissül a lekérdezéssel együtt, csak ha az űrlapot újraindítom....
  • ronny666
    #5
    megpróba, thx
  • rushman
    #4
    legegyszerűbben: a kijelző egy lista (formázva), melynek a rekordforrása a nevezett lekérdezés.
  • ronny666
    #3
    ez rendben van, hogy a Count paranccsal megszámolom, de, mint először is kérdeztem, "ki kellene íratnom ezt a számot (ami folyamatosan változik, a bevitt adatoktól függően) az űrlapomra. "
    Na ezt, hogy veszem ki belőle?
  • rushman
    #2
    először is ilyen topic már van:itt

    másodszor válassz összesítő lekérdezést, és azon belül a count kifejezést azon mezőben, amelyben a rekordokat meg szeretnéd számolni
  • ronny666
    #1
    Segítsetek nekem lécci...
    Ms access-ben van 1 lekérdezésem...Eddig minden ok, de nekem ki kellene számolnom, hogy hány db rekord van a lekérdezésben....
    Ha elindítom a lekérdezést, akkor látom, hogy pl. 5 db rekord van benne, de ki kellene íratnom ezt a számot (ami folyamatosan változik, a bevitt adatoktól függően) az űrlapomra.
    Tudja valaki a megoldást???
    Plíz help