Programozás vba hozzáféréssel

A VBA egy értelmezett nyelv, vagyis az utasításokat a program minden egyes végrehajtásakor értelmezi. Ez a nyelv minden MS Office alkalmazásban gyakori; ráadásul ugyanolyan sikerrel írható VBA egy értelmezett nyelv, vagyis utasításai a program minden egyes végrehajtásakor értelmezhetők. Ezt a nyelvet mindenki osztja meg, és nem tartalmazhat MS Office alkalmazásokat; ráadásul ugyanolyan sikeres programokat írhat az Access, Word és Excel alkalmazások számára. Először nézzük gyorsan a VBA nyelvének szintaxisát.

Egy változó kifejezett leírásához használja a Dim operátort.

homályos <имя переменной> mint <тип переменной>.

Például Dim i As Integer, j Integrált Dim x As Double

A vonalak állandóak és változó hosszúságúak lehetnek. Operátor Dim <имя переменной> Mivel a String egy változó hosszúságú karakterláncot, és a Dim utasítást <имя переменной> Mint String *<количество символов> - rögzített hosszúságú. Például:

Dim str1 String Dim str2 Stringként * 20.

Adhatja meg azt a követelményt, hogy minden változót kifejezetten írjanak le. Ehhez a modul leírása szakaszban meg kell adnia az Explicit Explicit Nyilatkozatot. Akkor az Access automatikusan felismeri a hibákat a változó nevek írásával, és szabályozza a változó típusának és az ahhoz hozzárendelt értékeknek a megfelelését.

A változóknak van egy bizonyos hatóköre. Négy szint látható:

1. Helyi szint vagy eljárás szintje. A változók csak az eljáráson belül léteznek, ahol leírják és használják őket;

2. Az űrlap szintje (jelentés). A változók leírása az űrlapmodul (jelentés) leírási szakaszában történik, és csak az űrlap (jelentés) eljárásaiban állnak rendelkezésre, amikor az űrlap (jelentés) nyitva van;

3. A modul szintje. A változókat a szabványos modul leírás szakaszában írják le, és minden modulfolyamatra rendelkezésre állnak, ha az adatbázis nyitva van;

4. A globális szint. A változót a modul leírás szakaszban írja le a Nyilvános vagy globális utasítások segítségével.

Ha megpróbálja használni implicite megadott változó, amikor nem áll rendelkezésre, a hozzáférési helyére létrehoz egy új változót ugyanazzal a névvel, ami oda vezethet, hogy nehéz felismerni logikai hibák. Ez további okként szolgálhat az összes változó kifejezett megadásához.

Valamennyi változó bizonyos élettartammal rendelkezik. Helyi változók esetén az élettartamot a kód használatának időpontja határozza meg. Minden egyes alkalommal, amikor új eljáráshívást hívnak meg, a változó Null értékű. 0 vagy üres karakterlánc, a típusától függően. Az alkalmazás élettartamával megegyező élettartamú változók létrehozásához használja a Statikus utasítást. Azonban egy statikus változó nem használható más eljárásokban. Csak az élet ideje megváltozik, és nem a láthatóság köre. Ha van egy visszahívását ugyanazt az eljárást, amit leírt egy statikus változó, a változó megtartja korábbi értékét, amelyet abban az időben az eljárás befejezése, amikor az előző hívást. Minden egyes változó egy adott eljárásban statikus lesz, ha a statikus utasítást az eljárás előtt adják meg.

A Dim kulcsszó használatával meghatározhat többdimenziós tömböket is. A tömb elemeinek mérete és száma a zárójelben belül van megadva a változó nevét követően. Például:

Dim myArray (20) mint string * 10

Dim myArray (5, 5) Dupla vagy Dim myArray (3, 3, 3) Dupla

Dim dynArray () kettős

ReDim A dynArray megőrzése (5, 2, 4)

A program végrehajtása során a tömb alsó és felső határát LBound () és UBound () függvényekkel lehet definiálni. Törölhet egy tömböt a memóriából az Erase utasítás használatával.

Const pi Double = 3.1415

A fenti típusú változók mellett a VBA-ban objektumváltozók is megadhatók, amelyek a hozzáférési objektumokhoz tartozó hivatkozások tárolására szolgálnak. Az Access főbb objektumainak minden egyes gyűjteményéhez tartozik egy megfelelő objektumtípus, valamint általános objektumtípus, amely elfogadja az objektumokhoz tartozó hivatkozásokat. Például:

Dim myObject objektumként - bármilyen típusú objektum változója,

Dim myControl Mint Control - az ellenőrző típus változója,

Dim myForm Mivel az űrlap az űrlap típusának változója.

Meghatározott értékeket rendelhet az objektumváltozókhoz a Set utasítás segítségével.

Állítsa be az myForm = Űrlapokat! [Saját űrlap].

A felhasználó saját meglévő adattípus alapján is létrehozhat saját adattípust. Egyéni adattípust ír be a Type ... End Type típusú kulcsszavak között.

Szám mint String * 15

típus As String * 10

A felhasználó által definiált típus mezőjéhez való hozzáférés a művelettel történik.

Dim tel mint tPhone

Beállíthatja az objektumváltozókat, amelyek számos tulajdonságot tartalmaznak, valamint a felhasználó által definiált adattípus változóit, a With ... End With utasítással.

Dim myForm mint forma

Set myForm = Formák! [Form name]

Eljárások és funkciók. A VBA programok fő összetevői az eljárások és funkciók. Ezek a kódok a Sub és End Sub utasítások vagy a Funkció és a Végfüggvény között vannak. Általában az eljárások és funkciók az alábbiak szerint íródnak:

tengeralattjáró <имя процедуры<[(<аргументы>)]

függvény <имя функции> [(<аргументы>]] Mint <тип возвращаемого значения>

<имя функции> = <возвращаемое значение>

Az argumentumok listáját vesszővel választja el. A függvény különbözik az eljárástól, mivel neve is változóan működik, és visszaad egy értéket a függvényhívási pontnak. Ha egy másik eljárásból vagy funkcióból szeretne eljárást hívni, használja a Hívásinformációkat. Először az eljárás neve, majd zárójelben az argumentumok aktuális értékeinek listája. Az eljárások egyszerűen a nevükön keresztül is hívhatók a Call utasítás használata nélkül. Ebben az esetben az argumentumlista zárójelben nincs. A függvényeket ugyanúgy hívják, mint az eljárásokat, de gyakrabban hívják őket nevüknek a hozzárendelést végző operátor jobb oldalán lévő argumentumok aktuális értékeinek zárolt listájával. Például:

Call mySub ("Lander", 4, i + 1)

mySub "Lander", 4, i + 1

total_price = myFunc ([Ár] * [Mennyiség], [Szállítás])

Sub mySyb (srteet As String, ByVal épület mint egész, ByRef as Byte)

Funkció myFunc (teljesár Pénznemként, szállítás egyedileg) Pénznemként

myFunc = teljes_ár * 1,2 + szállítmány

A folyamatból és a funkcióból való kilépéshez az Exit Sub és a Kilépés funkciót kell használni.

A program végrehajtásának irányítása. A program végrehajtásának irányítása a feltétel nélküli átviteli szolgáltató, a fiókirodák (feltételes szolgáltatók) és a hurkok révén valósul meg. Feltételes nyilatkozatok végrehajtása utasítások csoportját, attól függően, hogy a feltétel. Ezek közé tartozik az If utasítás és a Select Case utasítás. A legegyszerűbb formában az operátor Ha egy sorban írható.

ha <условие> majd <оператор>

Az If utasítás bonyolultabb verziója az alábbi:

ha <условие> majd

Az egész csoport feltételének ellenőrzésén alapuló akciók kiválasztásához az If utasítás kiterjesztett változata kerül alkalmazásra.

ha <условие> majd

Egyéb Ha <условие 2> majd

Ha a műveletek kiválasztása ugyanazon kifejezés különböző értékeiről függ, akkor a beágyazott If utasítás helyett célszerű a Select Case ... End Select operátor használata. Ez a kijelentés meghatározza, hogy a kifejezés igaz-e, és azt is értékeli, hogy a kifejezés értékei bizonyos határokon belül vannak-e.

Válasszon ügyet <имя переменной>

ügy <выражение 1> [. <выражение 2>, ...]

(olyan operátorok, amelyeket végrehajtanak, ha a változó értékei megfelelnek az 1. vagy a 2. kifejezésnek vagy ...)

[Case <выражение 3> Ahhoz, hogy <выражение 4>]

(a végrehajtó, ha a változó értéke a 3. és 4. kifejezés által meghatározott tartományban van)

[Case Is <выражение отношения>]

(a végrehajtók, ha a változó értéke megfelel a kapcsolat kifejezésnek.)

(a végrehajtó, ha a fenti feltételek egyike sem teljesül)

A VBA programban lévő bármely sor címkézhető Label. A GoTo feltétel nélküli ugró operátorral a program ezen sorára léphet <метка>. Azonban a GoTo szolgáltatók megsértik a strukturált programozás stílusát, és csak az alkalmazásban lévő hibák kezelésére szolgálnak.

A ciklus utasítások a VBA-ban két fő csoportra oszthatók: a hurokra (For ... Next) és a feltételes hurokra (Do ... Loop).

A For ... A következő mondat megismétli a hurok testét meghatározott számú alkalommal.

mert <счетчик> = <начальное значение> Ahhoz, hogy <конечное значение> [lépés <приращение>]

A hurokból való kilépéshez használja a Kilépés parancsot.

A Do While ... Hurok, miközben ... A Wend hurok kijelentések sinonimek. Míg ... Wend a régebbi verziókkal való kompatibilitás miatt marad. Ezek a kijelentések megismételik a hurok testet, amíg az állapot Igaz.

Do Míg <условие [=True]>

A Do Until ... Loop operátor végrehajtja a hurok testet, amíg az állapot

Csináld <условие [<> Igaz]>

Annak érdekében, hogy a hurok testkezelői legalább egyszer végrehajtódjanak, a következő változatok használhatók.

Hurok Míg <условие [=True]>

Hurok egészen addig <условие [=False]>

Ezekből a hurkokból kiléphet az Exit Do utasításból.

Ahhoz, hogy egy tömb vagy gyűjtemény minden elemére hurokat hozzon létre, használja a For Every parancsot

Mindenkinek <элемент> -ban <коллекция>

ahol <элемент> Egy változó egy objektumgyűjtemény hivatkozási elemeihez használható. A következő példa felöleli a FieldCollection vezérlő legördülő listáját a formában található összes vezérlő nevével

Dim ctrl mint vezérlés

Minden ctrl In Form esetén

Kapcsolódó cikkek