Accessi andmebaas on relatsiooniline andmebaasihaldussüsteem, mis salvestab tõhusalt organiseeritud viisil suure hulga andmeid. Kus Excel on võimas tööriist andmete purustamiseks oluliseks teabeks. Excel ei saa aga liiga palju andmeid salvestada. Kuid kui me kasutame Excelit ja Accessit koos, suureneb nende tööriistade võimsus plahvatuslikult. Niisiis, õpime, kuidas Accessi andmebaasi andmeallikana VBA kaudu Exceliga ühendada.
Accessi andmebaasi ühendamine andmeallikana Excel
1: lisage viide AcitveX andmeobjektile
Andmebaasile juurdepääsuks kasutame ADO -d. Nii et kõigepealt peame lisama viite ADO objektile.
Lisage oma VBA projektile moodul ja klõpsake tööriistadel. Siin klõpsake viiteid.
Nüüd otsige üles Microsoft ActiveX andmeobjektide kogu. Kontrollige uusimat versiooni. Mul on 6.1. Klõpsake nuppu OK ja see on tehtud. Nüüd oleme valmis looma juurdepääsu andmebaasi lingi.
2. Kirjutage VBA -kood ühenduse loomiseks Accessi andmebaasiga
Exceli ühendamiseks Accessi andmebaasiga peab teil olema Accessi andmebaas. Minu andmebaasi nimi on "Test Database.accdb ". See salvestatakse aadressil "C: \ Users \ Manish Singh \ Desktop" asukoht. Need kaks muutujat on olulised. Peate neid vastavalt oma vajadustele muutma. Puhke koodi saab hoida sellisena, nagu see on.
Kopeerige allolev kood, et teha oma Exceli VBA moodul ja teha muudatusi vastavalt oma vajadustele. Olen selgitanud allpool toodud koodi iga rida:
Alam ADO_Connection () 'Ühenduse ja kirjete komplekti objektide loomine Dim conn As New Connection, rec As New Recordset Dim DBPATH, PRVD, connString, päring stringina „Andmebaasi täielikult kvalifitseeritud nime deklareerimine. Muutke seda oma andmebaasi asukoha ja nimega. DBPATH = "C: \ Users \ ExcelTip \ Desktop \ Test Database.accdb" "See on ühenduse pakkuja. Pidage seda intervjuu jaoks meeles. PRVD = "Microsoft.ace.OLEDB.12.0;" 'See on ühendusstring, mida vajate ühenduse avamisel. connString = "Pakkuja =" & PRVD & "Andmeallikas =" & DBPATH 'ühenduse avamine conn. Avatud connString 'päring, mida tahan andmebaasis käivitada. query = "SELECT * from customerT;" 'käivitab päringu avatud ühenduse korral. See saab kõik andmed kausta rets objekti. rec. Avatud päring, ühend 'lahtrite sisu puhastamine Lahtrid. Selge sisu 'andmete hankimine kirjete kogust, kui neid on, ja printida need Exceli lehe veergu A. Kui (rec.RecordCount 0), siis tehke samas mitte Rec.EOF vahemik ("A" ja lahtrid (Rows.Count, 1). End (xlUp) .Row). Offset (1, 0) .Väärtus 2 = _ rec.Fields (1). Väärtus rec.MoveNext Loop End If 'ühenduste sulgemine rec. Close conn. Close End Sub
Kopeerige ülaltoodud kood või laadige alla fail ja tehke failis muudatusi vastavalt oma vajadustele.
Lae alla fail: VBA andmebaasiõpeSelle VBA -koodi käivitamisel loob Excel andmebaasiga ühenduse. Hiljem käivitab see kavandatud päringu. See kustutab lehel oleva vana sisu ja täidab veeru A andmebaasi välja 1 (teine väli) väärtustega.
Kuidas see VBA juurdepääsu andmebaasi ühendus töötab?
Dim conn As New Connection, rec As New Recordset
Ülaltoodud real ei deklareeri me mitte ainult ühenduse ja kirjete muutujaid, vaid lähtestame need otse uue märksõna abil.
DBPATH = "C: \ Users \ ExcelTip \ Desktop \ Test Database.accdb" PRVD = "Microsoft.ace.OLEDB.12.0;"
Need kaks rida on võistlejad. DBPATH muutub ainult teie andmebaasiga. PRVD ühendab OLE DB pakkujat.
conn. Avatud connString
See rida avab ühenduse andmebaasiga. Avatud on ühendusobjekti funktsioon, mis võtab mitu argumenti. Esimene ja vajalik argument on ConnectingString. See string sisaldab OLE DB pakkujat (siin PRVD) ja andmeallikat (siin DBPATH). Samuti võib see võtta kaitstud andmebaaside valikuliste argumentidena administraatori ja parooli.
Ühenduse süntaks. Avatud on:
connection.open ([ConnectionString kui string], [UserID kui string], [Password as String], [Options as Long = -1])
Kuna minu andmebaasis pole ühtegi ID -d ja parooli, kasutan ainult ConnectionStringi. ConnectionStringi vorming on "Provider =pakkuja_tahad kasutada; Andmeallikas =andmebaasi täielikult kvalifitseeritud nimi". Tegime ja salvestasime selle stringiconnString muutuja.
query = "SELECT * from customerT;"
See on päring, mida tahan andmebaasis käivitada. Teil võib olla küsimusi, mida soovite.
rec. Avatud päring, ühend
See avaldus käivitab määratletud ühenduses määratletud päringu. Siin kasutame kirjete komplekti objekti avatud meetodit. Kogu väljund salvestatakse kirje komplekti objektirets. Saate hankida manipuleerida või kustutada kirjeid objekti väärtustest.
Lahtrid. Selge sisu
See rida puhastab lehe sisu. Teisisõnu, kustutab lehe lahtritest kõik.
Kui (rec.RecordCount 0), siis tehke samas mitte Rec.EOF vahemik ("A" & lahtrid (Rows.Count, 1). End (xlUp) .Row). Offset (1, 0) .Väärtus 2 = _ rec.Fields (1). Väärtus rec.MoveNext Loop End If
Ülaltoodud ridade komplekt kontrollib, kas kirje on tühi või mitte. Kui kirjete kogum pole tühi (see tähendab, et päring tagastab mõned kirjed), algab tsükkel ja hakkab printima iga välja 1 väärtust (teine väli, sel juhul eesnimi) veeru viimases kasutamata lahtris.
(Seda kasutatakse lihtsalt selgitamiseks. Teil ei pruugi neid ridu olla. Kui soovite lihtsalt andmebaasiga ühenduse avada, piisab nende ridade kohal olevast VBA -koodist.)
Oleme kasutanud rec.EOF -i, et käivitada tsükkel kirjete kogumi lõpuni. Rec.MoveNextit kasutatakse järgmise kirjete kogumi juurde liikumiseks. rec.Fields (1) kasutatakse väärtuste saamiseks väljalt 1 (mis on teine, kuna selle väljade indekseerimine algab nullist. Minu andmebaasis on teine väli kliendi eesnimi).
rec. Clos conn. Close
Lõpuks, kui kõik töö, mida me soovisime rec ja connilt, on tehtud, sulgeme need.
Kui soovite konkreetseid ühendusi eraldi avada ja sulgeda, võivad need read olla eraldi alamprogrammis.
Nii et jah, poisid, nii saate ADO abil luua ühenduse ACCESSi andmebaasiga. On ka teisi meetodeid, kuid see on lihtsaim viis ühenduse loomiseks andmebaasiga VBA kaudu. Ma selgitasin seda nii üksikasjalikult kui võimalik. Andke mulle teada, kas sellest oli allpool kommentaaride osas abi.
Seotud artiklid:
Kasutage suletud töövihikut andmebaasina (DAO), kasutades Microsoft Excelis VBA -d | Suletud töövihiku kasutamiseks DAO -ühendusega andmebaasina kasutage seda VBA -katkendit Excelis.
Kasutage suletud töövihikut andmebaasina (ADO), kasutades Microsoft Excelis VBA -d | Suletud töövihiku kasutamiseks ADO -ühendusega andmebaasina kasutage seda VBA -katkendit Excelis.
Excel VBA UserFormsiga alustamine | Andmete sisestamiseks andmebaasi kasutame vorme. Exceli kasutajavormid on kasulikud kasutajalt teabe saamiseks. Siin on, kuidas peaksite alustama VBA kasutajavormidega.
Muutke Exceli VBA abil mitme UserForm-juhtelemendi väärtust/sisu | Kasutajavormi juhtelementide sisu muutmiseks kasutage seda lihtsat VBA -katkendit.
Vältige kasutajaliigi sulgemist, kui kasutaja klõpsab x-nupul, kasutades Excelis VBA-d | Kasutajavormi sulgemiseks, kui kasutaja klõpsab vormi x nupul, kasutame sündmust UserForm_QueryClose.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.