Koľkokrát ste sa pokúsili pridať nové pole do existujúcej tabuľky a zobrazilo sa vám chybové hlásenie „obávaný nedostatok pamäte na dokončenie tejto operácie“? Ak odpoveď nie je žiadna, mali ste šťastie - zatiaľ, ale je pravdepodobné, že ju niekedy budete mať, takže tento článok vysvetlí, ako môžete pridať nové pole - aj keď si Access nemyslí, že môže …
Tabuľkové zmeny - bez bolesti hlavy
Ja somost počet koľkokrát som sa pokúsil zmeniť tabuľku, či už pridaním nového poľa, zmenou typu existujúceho poľa alebo odstránením poľa z tabuľky v návrhovom zobrazení tabuľky, len aby som bol pozdravený chybovou správou, ktorá mi oznamuje, že na dokončenie úlohy nie je dostatok pamäte.
Rovnako ako znamenie, že databáza (alebo tabuľka) môže byť trochu na veľkej strane, s ktorou by sa malo zaobchádzať skôr, ako sa pokúsim opraviť súbory mdb, môže to byť aj znamenie, že Access to nedokáže, keď je aktívne návrhové zobrazenie. V takom prípade existuje iba jedna alternatíva - urobte to z kódu!
kód
Kód, ktorý použijeme v tomto článku, bude dosť jednoduchý a vy budete almost určite ho chcete pridať, aby ste z neho vytvorili výkonnejší útržok kódu, ale nasledujúci príklad vám poskytne kostrový kód potrebný na pridanie nového poľa do existujúcej tabuľky - bude nasledovať vysvetlenie kódu:
Sub AddFieldToTable (ByVal tableName As String, fieldName As String, fieldType As Integer) Dim objDB As Database Dim objTableDef As TableDef Dim objField As Field Set objDB = CurrentDb Set objTableDef = objDB.TableDefs (tableName) 'add nové pole With objTableDef Set objField = .CreateField (fieldName, fieldType). Fields.Append objField 'Môžete tu tiež nastaviť ďalšie vlastnosti poľa (napríklad povolené nulové hodnoty atď.) If fieldType = dbText Then .Fields (fieldName) .AllowZeroLength = False End If End With Nastaviť objField = Nič Nastaviť objTableDef = Nič Nastaviť objDB = Nič Koniec Sub
Vysvetlenie kódu
Prvá vec, ktorú si treba uvedomiť, je, že minimálne množstvo informácií potrebných na pridanie nového poľa do existujúcej tabuľky je: Názov tabuľky, názov poľa a typ poľa. Všetko, čo požadujeme ako parameter podprogramu. Existuje samozrejme mnoho ďalších nastavení, ktoré možno budete musieť pridať (napríklad veľkosť poľa atď.), Ale zatiaľ bude vyššie uvedený kód fungovať vo vašej databáze „tak, ako je“, takže si poďme vysvetliť základné informácie o tom, ako to robí.
Najskôr kód získa odkaz na aktuálnu databázu (objDB) a definíciu tabuľky pre existujúcu tabuľku, ktorú chceme zmeniť (objTableDef).
Keď už máme definíciu tabuľky, stačí zavolať metódu „CreateField“ s dodaným názvom a typom poľa. Zoznam typov polí nájdete v súbore pomoci Accessu v téme „Field.Type“ alebo na obrazovke pomocníka pre metódu „CreateField“, pre ľahšiu orientáciu som ich však uviedol aj nižšie:
dbBigInt, dbBinary, dbBoolean, dbByte, dbChar, dbCurrency, dbDate, dbDecimal, dbDouble, dbFhnus, dbGUID, dbInteger, dbLong, dbLongBinary, dbMemo, dbNumeric, dbSingle, dbText, dbTime, dbTimeStamp, dbVarBinary
Po výzve „CreateField“ môžete nastaviť ďalšie vlastnosti (až na jednu výnimku) - toto pole sme nastavili tak, aby v kóde vyššie bolo povolené zadávanie nulovej dĺžky.
Výnimkou je, ak chcete nastaviť veľkosť poľa - to sa musí urobiť pri prvom vytváraní poľa, takže ak chcete zmeniť kód, aby ste mohli nastaviť aj veľkosť poľa, mali by ste zmeniť volanie CreateField na nasledujúci „.CreateField (fieldName, fieldType, fieldSize)“.
Ú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 opraviť chybu SQL a vynikajúce softvérové produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S
Nechaj odpoveď