Import și export date din MDB (acces) pentru a excela pe VBA

Import și export date din MDB (acces) pentru a excela pe VBA

De exemplu, avem un fel de componente de baze de date cu lista de preturi PC-ul să-l puneți pur și simplu. Tabelul numit „tbl_prays“ și are următoarea structură:

  • ID - tip de câmp contor;
  • "Text (String)" câmp de tip cu lungimea de 50 de caractere - View. Conține aparținând formei componentelor (CPU, placa de baza, RAM, etc);
  • Producător - Tip de text, lungime 50;
  • Modelul - conține numărul și o scurtă descriere a modelului. Câmp precum și, text, lungime 255;
  • Număr - un câmp de tip "numeric" Size - "Long Integer". Acesta conține numărul de piese din stoc;
  • tip de câmp „numeric“ Mărime - - Preț „realitate“ Indică prețul unitar.

Puteți crea și umple MDB baze de date, și poate lua de bază utilizate în exemplele de mai jos aici.

Astfel, baza este, de exemplu, avem nevoie pentru a citi întregul tabel de baze de date ( „tbl_prays“) și a afișa rezultatul în foaia de lucru Excel. Creați un nou modul și adăugați procedura după cum urmează:

Sub ReadMDB ()
„Magazine variabile rezultatul interogării
Dim TBL Ca Recordset
„Șir de interogare SQL
Dim SQLr ca șir
„Magazine variabile link-ul către baza de date conectat
dbs Dim Ca baza de date

„Conectează-te la MDB
Set dbs = DAO.OpenDatabase ( "E: \ price.mdb")

„Șir de interogare Compile SQL
SQLr = "SELECT * FROM tbl_prays"

„Trimite cerere deschisă a bazei de date
„Rezultat într-un tabel stocat în TBL
Set tbl = dbs.OpenRecordset (SQLr)

„Închideți tabelul temporar
tbl.Close

„Goliți memoria. Dacă acest lucru nu se face, apoi masa
„Va rămâne agățat în RAM.
Set TBL = Nimic

Logica de acest lucru și toate procedurile ulterioare de citire (scriere) datele din baza de date este simplu. În primul rând, vom deschide baza de date, și apoi trimite interogarea SQL, pentru a primi rezultatele de interogare ca un tabel, închide baza de date, eliberează memorie.

Set dbs = DAO.OpenDatabase ( "E: \ price.mdb")

SQLr = "SELECT * FROM tbl_prays"
Set tbl = dbs.OpenRecordset (SQLr)
i = 1

„Itereaza până la sfârșitul TBL
Nu face în timp ce tbl.EOF
„Atribuit fiecărui celulă, valoarea câmpurilor din tabel
Celulele (i, 1) = tbl.Fields ( "ID")
Celulele (i, 2) = tbl.Fields ( "View")
Celulele (i, 3) = tbl.Fields ( "Producător")
Celulele (i, 4) = tbl.Fields ( "Model")
Celulele (i, 5) = tbl.Fields ( "număr")
Celulele (i, 6) = tbl.Fields ( "Price")
„De exemplu, obținem suma (preț * cantitate)
Celulele (i, 7) = tbl.Fields ( "Number") * tbl.Fields ( "Preț")

i = i + 1
tranziție tbl.MoveNext“pentru a înregistra următoare

Rețineți că a doua opțiune afișează rezultatul pe o foaie vizibil mai lent decât primul! De aceea, vă recomandăm să utilizați prima opțiune.

Metoda OpenRecordset permite doar să citească datele din tabelele bazei de date folosind interogări. Pentru a face o cerere de schimbare, adăugarea sau ștergerea înregistrărilor în tabelele utilizate de metoda Execute. A se vedea, de exemplu, care vă permite să adăugați o intrare în tabel (cu interogarea SQL corespunzătoare, puteți modifica, șterge înregistrări):

Set dbs = DAO.OpenDatabase ( "E: \ price.mdb")

Set TBL = dbs.OpenRecordset ( "tbl_prays")
„Metoda RecordCount oferă o serie de înregistrări
„Kol stochează ID-ul pentru un nou record
kol = tbl.RecordCount + 1

SQLr = "INSERT INTO tbl_prays (ID-ul, tip, producător, numărul de model, preț)" _
„Valori (“ KOL '' RAM '' Hyndai '' DDR3“, 123, 600)"

Aceste exemple arată principalele aspecte ale lucrării cu MDB bază de date, care va ajuta să organizeze schimbul de date între Excel și Access, dar aceste metode nu sunt adevărate și corecte singura. Asta e tot. Până când ne vom întâlni din nou!