Аццесс база података је систем за управљање релационим базама података који ефикасно чува велику количину података на организован начин. Где је Екцел моћан алат за прикупљање података у смислене информације. Међутим, Екцел не може да складишти превише података. Али када заједно користимо Екцел и Аццесс, моћ ових алата се експоненцијално повећава. Дакле, научимо како да повежемо Аццесс базу података као извор података са Екцелом преко ВБА.
Повезивање Аццесс базе података као извора података Екцел
1: Додајте референцу на АцитвеКс објект података
Користићемо АДО за повезивање за приступ бази података. Дакле, прво морамо додати референцу на АДО објект.
Додајте модул свом ВБА пројекту и кликните на алате. Овде кликните на референце.
Сада потражите библиотеку објеката података Мицрософт АцтивеКс. Проверите најновију верзију коју имате. Имам 6.1. Притисните дугме ОК и све је готово. Сада смо спремни за креирање везе до Аццесс базе података.
2. Напишите ВБА код за успостављање везе са Аццесс базом података
Да бисте повезали Екцел са Аццесс базом података, морате имати Аццесс базу података. Моја база података је „Тест Датабасе.аццдб ". Сачувано је на "Ц: \ Усерс \ Манисх Сингх \ Десктоп" локација. Ове две променљиве су важне. Мораћете да их промените у складу са својим потребама. Код за одмор се може задржати такав какав јесте.
Копирајте доњи код да бисте направили Екцел ВБА модул и унели промене према вашим захтевима. Објаснио сам сваки ред кода испод:
Под АДО_Цоннецтион () 'Креирање објеката Цоннецтион анд Рецордсет Дим цонн Ас Нев Цоннецтион, рец Ас Нев Рецордсет Дим ДБПАТХ, ПРВД, цоннСтринг, упит Ас Стринг 'Декларисање потпуно квалификованог назива базе података. Промените је са локацијом и именом ваше базе података. ДБПАТХ = "Ц: \ Усерс \ ЕкцелТип \ Десктоп \ Тест Датабасе.аццдб" 'Ово је добављач везе. Запамтите ово за свој интервју. ПРВД = "Мицрософт.аце.ОЛЕДБ.12.0;" 'Ово је низ везе који ће вам требати приликом отварања везе. цоннСтринг = "Провидер =" & ПРВД & "Соурце Дата =" & ДБПАТХ 'отварање везе цонн.Опен цоннСтринг 'упит који желим да покренем у бази података. куери = "СЕЛЕЦТ * фром цустомерТ;" 'покретање упита на отвореној вези. Добиће све податке у рец објекат. рец.Опен упит, спој 'чишћење садржаја ћелија Целлс.ЦлеарЦонтентс 'добијање података из скупа записа ако их има и њихово штампање у колони А Екцел листа. Ако (рец.РецордЦоунт 0) Онда уради док није рец.ЕОФ Распон ("А" & Ћелије (Ровс.Цоунт, 1) .Енд (клУп) .Ров) .Оффсет (1, 0) .Валуе2 = _ рец.Фиелдс (1) .Вредност рец.МовеНект Лооп Енд Иф 'затварање веза рец.Цлосе цонн.Цлосе Енд Суб
Копирајте горњи код или преузмите датотеку испод и унесите измене у датотеку тако да одговарају вашим захтевима.
Преузмите датотеку: ВБА Датабасе ЛеарнингКада покренете овај ВБА код, Екцел ће успоставити везу са базом података. Након тога ће покренути дизајнирани упит. Очистиће све старе садржаје на листу и испуниће колону А вредностима поља 1 (друго поље) базе података.
Како функционише ова ВБА Аццесс Датабасе Цоннецтион веза?
Дим цонн Ас Нев Цоннецтион, рец Ас Нев Рецордсет
У горњој линији не само да декларишемо променљиве Цоннецтион и рецордсет, већ је директно иницијализујемо помоћу кључне речи Нев.
ДБПАТХ = "Ц: \ Усерс \ ЕкцелТип \ Десктоп \ Тест Датабасе.аццдб" ПРВД = "Мицрософт.аце.ОЛЕДБ.12.0;"
Ове две линије су такмичари. ДБПАТХ ће се мењати само са вашом базом података. ПРВД повезује ОЛЕ ДБ провајдера.
цонн.Опен цоннСтринг
Ова линија отвара везу са базом података. Отворена је функција објекта везе која узима неколико аргумената. Први и неопходни аргумент је ЦоннецтингСтринг. Овај низ садржи ОЛЕ ДБ провајдера (овде ПРВД) и извор података (овде ДБПАТХ). Такође може узети администратора и лозинку као опционалне аргументе за заштићене базе података.
Синтакса Цоннецтион.Опен је:
цоннецтион.опен ([ЦоннецтионСтринг ас Стринг], [УсерИД ас Стринг], [Пассворд ас Стринг], [Оптионс ас Лонг = -1])
Пошто у бази података немам никакав ИД и лозинку, користим само ЦоннецтионСтринг. Формат ЦоннецтионСтринг -а је „Провидер =провидер_иоу вант то усе; Извор података =потпуно квалификовано име базе података". Направили смо и сачували овај низ уцоннСтринг променљива.
куери = "СЕЛЕЦТ * фром цустомерТ;"
Ово је упит који желим да покренем у бази података. Можете имати било која питања која желите.
рец.Опен упит, спој
Ова наредба покреће дефинисани упит у дефинисаној вези. Овде користимо Опен метод објекта записа записа. Сав излаз је сачуван у објекту записарец. Можете дохватити манипулиране или избрисане вриједности из објекта скупа записа.
Целлс.ЦлеарЦонтентс
Ова линија брише садржај листа. Другим речима, брише све из ћелија листа.
Ако (рец.РецордЦоунт 0) Онда уради док није рец.ЕОФ Распон ("А" & Ћелије (Ровс.Цоунт, 1) .Енд (клУп) .Ров) .Оффсет (1, 0) .Валуе2 = _ рец.Фиелдс (1) .Вредност рец.МовеНект Лооп Енд Иф
Горњи скуп линија проверава да ли је скуп записа празан или не. Ако скуп записа није празан (то значи да је упит вратио неке записе), петља почиње и штампа сваку вредност поља 1 (друго поље, име у овом случају) у последњој неискоришћеној ћелији у колони.
(Ово се користи само за објашњење. Можда немате ове редове. Ако само желите да отворите везу са базом података, онда је ВБА код изнад ових редова довољан.)
Користили смо рец.ЕОФ за покретање петље до краја скупа записа. Рец.МовеНект се користи за прелазак на следећи скуп записа. рец.Фиелдс (1) се користи за добијање вредности из поља 1 (које је друго јер његово индексирање поља почиње од 0. У мојој бази података друго поље је име клијента).
рец.Цлосе цонн.Цлосе
Коначно, када се заврши сав посао који смо хтели од рец анд цонн -а, затварамо их.
Ове линије можете имати у засебној потпрограми ако желите засебно отварати и затварати одређене везе.
Па да, момци, овако ћете успоставити везу са базом података АЦЦЕСС помоћу АДО -а. Постоје и друге методе, али ово је најлакши начин да се повежете на извор података за приступ путем ВБА. Објаснио сам то што детаљније могу. Обавестите ме да ли вам је ово помогло у одељку коментара испод.
Повезани чланци:
Користите затворену радну свеску као базу података (ДАО) користећи ВБА у Мицрософт Екцелу | Да бисте користили затворену радну свеску као базу података са ДАО везом, користите овај ВБА исечак у Екцелу.
Користите затворену радну свеску као базу података (АДО) користећи ВБА у Мицрософт Екцелу | Да бисте користили затворену радну свеску као базу података са АДО везом, користите овај ВБА исечак у Екцелу.
Почетак коришћења Екцел ВБА корисничких образаца | За уметање података у базу података користимо обрасце. Кориснички обрасци програма Екцел корисни су за добијање информација од корисника. Ево како бисте требали почети са ВБА корисничким облицима.
Промените вредност/садржај неколико контрола УсерФорм-а користећи ВБА у Екцелу | Да бисте променили садржај контрола корисничког облика, користите овај једноставан ВБА исечак.
Спречите затварање корисничког облика када корисник кликне на дугме к помоћу ВБА у Екцелу | Да бисмо спречили затварање корисничког облика када корисник кликне на дугме к обрасца, користимо догађај УсерФорм_КуериЦлосе.
Популарни чланци:
50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће учинити да радите још брже на Екцелу.
Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.
ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате да филтрирате податке да бисте рачунали одређену вредност. Цоунтиф функција је неопходна за припрему ваше контролне табле.
Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.