Сыртқы файл атауы өзгертілгенде, байланыстырылған кестені қалай тез жаңартуға болады

Қазір бөлісу:

Байланыстырылған кестелер фантастикалық тұрғыдан пайдалы болуы мүмкін (әрине, әрдайым емес) - әсіресе үнемі өзгеріп отыратын сыртқы ақпаратпен жұмыс жасағанда. Жетекші сізге ағымдағы айлық баға файлына кіруге рұқсат берген кезде әдеттегі мысал болуы мүмкін. Бірақ олар келесі айда файл шығарғанда не болады және файл атауы «Pricelist-01-01-2016» -дан «Pricelist-01-02-2016» болып өзгереді? Бірінші болып, сіздің сілтеме бұзылады, сондықтан оны қолмен жаңартуға тура келеді. Олар файл атауын өзгерткен сайын. Бұл кесте атауларына да қатысты (әрине!). Мұны тез және оңай жасауға болатын әдіс бар ма? Сіз сұрағаныңызға қуаныштымыз - оқып, қалай екенін біліңіз ...

Сахнаны орнату - сценарий

Байланыстырылған кесте менеджеріБұл мақалада мен ойдан шығарылған сценарийді қолданамын, бірақ сен оны тез танитыныңа сенімдімін!

Ай сайын Acme сауда-саттығы бізге қолданылған барлық шығын материалдары үшін жаңартылған баға тізімін жібереді DataNumen. Ай сайын стационарлық шығындарға қанша ақша жұмсайтынымызды білу үшін, біз кеңсе басқару дерекқорындағы файлға сілтеме жасаймыз.

Файл атауын өзгертіңізМәселе мынада, файлдың форматы өзгеріссіз қалса да, файл атауы ай сайын өзгеріп отырады. Өткен айда ол «кеңсе шығындары қаңтар 2017.xls» болды, бұл айда ол «кеңсе шығындары ақпан 2017.xls».

Өзгерістер көп емес, сіз келісесіз деп сенемін, бірақ егер біз файлдың атын өзгерту ақауларын бастан кешірмесек (ескі файлды жойып тастағаннан кейін немесе оны жойғаннан кейін) немесе Access бағдарламасындағы кесте менеджері арқылы кестені қайта қосу.

Біз мұны жасағымыз келмегендіктен, оның орнына келесі кодты жасадық - бұл сіз көретіндігіңізден әлдеқайда оңай:

Public Sub UpdateLink (tableName As String, newFileName As String)
    Dim objDB As Database
    Dim objTableDef As TableDef
    Dim newConnect as String
    
    Set objDB = CurrentDb
    Set objTableDef = objDB.TableDefs(tableName)

    'format of the connection string in our case, for example, is:
    ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type
    newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName
    objTableDef.Connect = newConnect
    objTableDef.RefreshLink

    Set objTableDef = Nothing
    Set objDB = Nothing
End Sub

Кодты түсіндіру

Көріп отырғаныңыздай, біз (байланыстырылған) кесте атауын кесте байланыстырылуы керек жаңа файлдың атауымен бірге береміз. Файл атауында файлға апаратын толық жол болуы керек. Бастапқыда қиындықтар туындауы мүмкін бір мәселе - «newConnect» айнымалысына орналастырылатын байланыс жолының дұрыс пішімін алу. Дұрыс пішімді табудың көптеген көздері болғанымен, мен тапқан ең оңай жолдардың бірі - ағымдағы байланыстырылған кестенің байланыс жолын қарау. Ол үшін «Set objTableDef = objDB.TableDefs(tableName)» жолының астына келесі жолды қосыңыз:

Debug.Print (objTableDef.Connect)

Бұл қолданыстағы байланыс жолын код редакторының жөндеу / жедел терезесінде басып шығарады (егер ол әлі көрінбейтін болса, кодты іске қосар алдында жедел терезенің көрінуін ауыстыру үшін VBA код редакторы экранынан CTRL-G пернесін басыңыз.

Ескерту

Әдеттегідей, жоғарыдағы код үзіндісі кестені байланыстырған файлды өзгерту қажет болғанда уақытты үнемдеуге көмектесетінін ұмытпаңыз, ал егер ол сізге кезіккен жағдайда сізге көмектесе алмайды Файл бүлінуіне қол жеткізу, сондықтан сақтық көшірмелерді сақтағаныңызға сенімді болыңыз және егер бәрі сәтсіз болса, қайда жүгіну керектігін біліңіз.

Автордың кіріспесі:

Митчелл Понд - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. SQL ақауларын жою және excel қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз WWW.datanumen.com

Қазір бөлісу:

Пікірлер жабылды.