Байланыстырылған кестені сіздің қатынасыңыздағы жергілікті кестеге қалай түрлендіруге болады

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

Біз бұған дейін де айтқан болатынбыз, бірақ қайталанған жөн - байланысты кестелер бірнеше себептер бойынша сіздің мәліметтер базаңызда пайдалы болуы мүмкін. Байланыстырылған кестелердің бір үлкен кемшілігі - өнімділік - оларға деген сұраныстарды іске қосу, әсіресе олар Microsoft Access кестелері болмаса (яғни олар Excel, CSV немесе DBF файлдар). Олармен жұмыс баяу болуы мүмкін. Мұнымен жұмыс істеудің бірнеше әдісі бар - біз осында бір тәсілмен жұмыс істейміз, яғни байланыстырылған кестені жергілікті кестеге айналдыру. Әрине, мұны кестелерді көшіру / қою арқылы қолмен жасауға болар еді, бірақ егер сізде көп нәрсе болса, оны кодта орындау әлдеқайда оңай, сондықтан көрейік ...

Неліктен сіздің қажеттіліктеріңізді баяндау маңызды

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

«Байланыстырылған кестенің атауын ескере отырып, өнімділікті жақсарту үшін кестені жергілікті кесте ретінде дерекқорға импорттаңыз - сілтемені дерекқордан бір уақытта өшіріңіз»

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

Сақ болыңыз

Кодқа жетпес бұрын - тек абай болыңыз, а сілтемесі болса, көп нәрсе істей алмайсыз Access дерекқоры бүлінген - егер Access файлды оқи алмаса, оның оны импорттауы екіталай.

Сонымен - код бойынша ...

Sub MakeTableLocal(tableName As String, optional deleteOriginal As Boolean = True)
    Dim DbPath As Variant, TblName As Variant

    'get path of linked table
    DbPath = DLookup("Database", "MSysObjects", "Name='" & tableName & "' And Type=6")
    'Get the real name of the linked table (in case it has been given an alias in the link)
    TblName = DLookup("ForeignName", "MSysObjects", "Name='" & tableName & "' And Type=6")
    If IsNull(DbPath) Then
        'Either a local table, or the wrong table name has been supplied, exit the sub
        Exit Sub
    End If

    'delete linked table
    If deleteOriginal Then
        DoCmd.DeleteObject acTable, tableName
    Else
        'If we're not deleting the existing table we'll have to rename the imported table to avoid
        'overwriting it etc
        tableName = tableName & " - local"
    End If
    
    'import the table as a local, unlinked table
    DoCmd.TransferDatabase acImport, "Microsoft Access", DbPath, acTable, TblName, tableName
End Sub

Код не істеп жатыр?

VBA кодыКодтың көп бөлігі айқын болады, бірақ ескеретін кейбір маңызды мәселелер бар. Біріншіден, біз (әдетте жасырын) Access жүйелік кестесі «MSysObjects»-ті қарау арқылы қандай файлға сілтеме жасалып жатқаны туралы толық ақпаратты аламыз. Байланыстырылған кестеге жаңа жергілікті бүркеншік ат беруіңіз мүмкін (және ықтимал) болғандықтан, келесі істеуіміз керек нәрсе - бастапқы кестенің атауын алу - тағы да, «MSysObjects» кестесінен.

Енді бізде бұл мәліметтер бар, егер олар жарамды болса (яғни, сіз кестеге қате енгізілмеген кесте атауын енгізбеген болсаңыз), онда біз а) сілтемені жою (егер deleteOriginal True) күйіне орнатылып, кестені импорттайды.

Мұны істеу сізге көбінесе өнімділікті айтарлықтай жақсартуға мүмкіндік береді, егер сіз байланыстырылған кестелерді қолдансаңыз, мен сізге осы кестелерді жергілікті нұсқаларға жылжытудың қандай пайдасы әкелетінін тексеруге кеңес беремін - таң қалуыңыз мүмкін!

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

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

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

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