Ako získať varovanie, keď počet záznamov v tabuľke dosiahne konkrétny limit

Jedným z hlavných dôvodov, prečo ľudia prechádzajú z používania tabuľky s tabuľkami do databázy, je skutočnosť, že objem informácií, ktoré ukladajú, prerástol to, s čím je Excel pohodlne schopný narábať. Ale prechod do databázy tento problém úplne nezbaví, pretože databázové tabuľky majú limity aj na počet záznamov, ktoré môžu obsahovať. Ako však môžete vedieť, keď sa tabuľka blíži k tejto hranici? Alebo keď sa jednoducho zväčšuje a je potrebná archivácia údajov? Tento článok vám to ukáže.

Veľkostný limit prístupových tabuliek

Či už ste si vedomí alebo nie, program Microsoft Access má limit na veľkosť, ktorú môže ktorákoľvek tabuľka získať (tento limit zistíte kontrolou oficiálnych stránok spoločnosti Microsoft, ktoré sa menia podľa verzie, ktorú používate). Napríklad v Accesse 2000 môže tabuľka obsahovať iba 1 GB informácií. Aj keď sa to môže zdať veľa, je prekvapivo ľahké dosiahnuť túto úroveň, ak nie ste opatrní (alebo ak typy polí v tabuľke nie sú vhodne vybrané / veľkosti).

Otázka, ktorú by ste si mali položiť, teda nie je „dosiahnem túto hranicu“, ale namiesto toho by ste si mali položiť otázku, „ako sa mám ubezpečiť, že viem, že k nej pristupujem dobre, skôr ako sa z toho stane problém“ - koniec koncov, je lepšie sa vyhnúť a poškodená databáza Accessu namiesto pokusu o nápravu.

Kód VBA na zabránenie tabuľkám nadmerného prístupu

Jedným zo spôsobov, ako to dosiahnuť, je sledovať počet záznamov v tabuľke a to je presne to, čo urobíme s našim kódom VBA.

Najskôr si definujme, čo chceme, aby náš kód robil:

„Pri zadaní názvu tabuľky sa zobrazí správa, keď tabuľka dosiahne daný„ limit varovania “.“

Pomocou nižšie uvedeného kódu budete môcť zobraziť varovnú správu, ktorá vás upozorní, keď zadaná tabuľka (pomocou názvu „TableName“) obsahuje x alebo viac riadkov (nastavených na hodnotu „WarningLevel“).

NB: Zahrnul som základné spracovanie chýb, aby som zohľadnil prípady, keď môžete napríklad nesprávne zavolať názov tabuľky pri volaní subu.

Verejná funkcia GetTableSize (TableName ako reťazec, WarningLevel tak dlho) Dim errCode tak dlho Dim dbs ako databáza Dim tdf ako TableDef pri chybe Resume Next Set dbs = CurrentDb 'Nasledujúci riadok vyberie definíciu tabuľky pomocou zadaného názvu - ak dôjde k chybe (s väčšou pravdepodobnosťou kvôli nesprávnemu názvu tabuľky, kód preskočí na obslužnú rutinu chýb na konci sub) Nastaviť tdf = dbs.TableDefs (TableName) errCode = err.Number On Error GoTo BadTable If tdf.RecordCount> = WarningLevel Then MsgBox TableName & "má" & tdf.RecordCount & "riadky, zvážte archiváciu niektorých z týchto údajov", vbExclamation, "Varovanie o veľkosti tabuľky" Koniec, ak BadTable: Ak errCode <> 0 Potom MsgBox "Vyskytla sa chyba - použili ste správne TableName? ", VbCritical," Nemožno načítať podrobnosti tabuľky "Nastaviť tdf = Nič Nastaviť dbs = Nič Koniec Sub

Vysvetlenie kódu

Most kódu je samozrejmý. Najprv sme start získaním odkazu na aktuálnu databázu (dbs) a potom sa pokúsime otvoriť definíciu pre príslušnú tabuľku (tdf). Ak sa pri výbere tabuľky vyskytla chyba, je viac než pravdepodobné, že tabuľka neexistuje, pretože zadaný názov bol napísaný nesprávne. Teraz, keď máme odkaz na definíciu tabuľky, môžeme skontrolovať, koľko riadkov je v tabuľke pomocou vlastnosti „RecordCount“, ktorú porovnáme s naším „Limitom varovania“, a podľa toho konať.

Používanie kódexu

Tento kód môžete prirodzene zavolať odkiaľkoľvek vo svojej databáze - ak používate Access 2000 alebo vyšší, môžete použiť nasledujúce riešenie, inak budete musieť vytvoriť makro AutoExec, aby ste tento kód spustili pri každom otvorení databázy alebo pridaní volanie udalosti na formulárovú udalosť.

Prístup iba od verzie 2000

Spoločnosť Microsoft predstavila možnosť spustenia konkrétnych akcií proti tabuľke, napríklad keď boli vložené alebo odstránené záznamy. Spustenie kódu VBA, bohužiaľ, nie je jednou z týchto akcií, ale poteší vás, že existuje pomerne jednoduché riešenie.

  1. Po otvorení príslušnej tabuľky kliknite na panel ponuky „Tabuľka“.
  2. Keď sledujeme rast tabuliek, je najlepšie použiť udalosť „Po vložení“, takže na ňu klikniteKliknite na „Po vložení“
  3. Pretože nemôžeme použiť obvyklú akciu „RunCode“, použijeme namiesto nej akciu „SetLocalVar“, takže v rozbaľovacom zozname akcií kliknite na túto možnosť.Použite akciu „SetLocalVar“
  4. Meno, ktoré dáte, nie je dôležité, takže ho môžete nazvať, ako len chcete - tj. DummyVariable
  5. Do výrazu môžete vyššie zadať názov svojej funkcie spolu s parametrami - teda napríklad - ak by som sledoval tabuľku „predaja“, do poľa výrazu by som zadal toto: GetTableSize („sales“, 100000 )Nastavte meno a výraz
  6. Uložte akciu a zavrite ju.

Teraz sa kód spustí vždy, keď do tabuľky pridáte nové záznamy, a budete upozornení, kedykoľvek tabuľka dosiahne stanovený počet záznamov - presne taký, aký chceme!

Úvod autora:

Mitchell Pond je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane oprava SQL Server chyba a vynikajúce softvérové ​​produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S

Jedna odpoveď na „Ako získať varovanie, keď počet záznamov v tabuľke dosiahne konkrétny limit“

Nechaj odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *