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