Бид үүнийг өмнө нь хэлж байсан боловч давтах нь зүйтэй юм - холбоотой хүснэгтүүд хэд хэдэн шалтгааны улмаас таны мэдээллийн санд үнэхээр хэрэгтэй байж болох юм. Гэхдээ холбосон хүснэгтүүдийн нэг сул тал бол гүйцэтгэл юм. Тэдгээрийн эсрэг асуулга явуулах, ялангуяа 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
Код юу хийж байна

Одоо эдгээр дэлгэрэнгүй мэдээлэл байгаа бөгөөд хэрэв тэдгээр нь хүчин төгөлдөр байвал (өөрөөр хэлбэл та хүснэгтийн алдаатай бичсэн хүснэгтийн нэрийг оруулаагүй болно), ингэснээр бид а) холбоосыг устгах (хэрэв deleteOriginal-ийг True) болгож, хүснэгтийг импортлож байна.
Үүнийг хийснээр танд гүйцэтгэл эрс сайжирсан байх болно.Хэрэв та холбосон хүснэгт ашиглаж байгаа бол эдгээр хүснэгтийг орон нутгийн хувилбар руу шилжүүлэхэд танд ямар ашиг өгөхийг шалгахыг зөвлөж байна. Та гайхаж магадгүй юм!
Зохиогчийн танилцуулга:
Митчелл Цөөрөм бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. засвар SQL Server Файл болон excel сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com