Ինչպես արագորեն թարմացնել կապված աղյուսակը, երբ արտաքին ֆայլի անունը փոխվում է

Կիսվել հիմա ՝

Կապված սեղանները կարող են ֆանտաստիկորեն օգտակար լինել (չնայած ոչ միշտ), հատկապես, երբ գործ ունեք պարբերաբար փոփոխվող արտաքին տեղեկատվության հետ: Բնորոշ օրինակ կարող է լինել այն դեպքը, երբ մատակարարը ձեզ հնարավորություն է տալիս մուտք ունենալ իրենց ընթացիկ ամսական գների ֆայլ: Բայց ի՞նչ է պատահում, երբ հաջորդ ամիս նրանք թողարկում են ֆայլը, և ֆայլի անունը փոխվում է «Գնացուցակ-01-01-2016» -ից «Գնացուցակ-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)

Դա կտպագրի առկա կապի տողը կոդերի խմբագրիչի կարգաբերման / անմիջապես պատուհանի մեջ (եթե դա արդեն տեսանելի չէ, սեղմեք CTRL-G VBA կոդի խմբագրիչի էկրանից ՝ կոդն գործարկելուց առաջ Անմիջական պատուհանի տեսանելիությունը փոխելու համար:

Նախազգուշացում

Ինչպես միշտ, մի մոռացեք, որ չնայած վերը նշված ծածկագրի հատվածը կօգնի ձեզ ժամանակ խնայել, երբ անհրաժեշտ է փոխել այն ֆայլը, որի հետ կապված է մի աղյուսակ, այն, ինչը չի կարող անել ՝ օգնելու ձեզ, եթե բախվում եք որևէ Մուտք գործեք ֆայլի վնաս, այնպես որ համոզվեք, որ պահուստավորում եք պահում և գիտեք, թե ուր դիմել, եթե մնացածը ձախողվի:

Հեղինակի ներածություն.

Mitchell Pond- ը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում վերականգնել SQL վնասը և գերազանցել վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: