Solved

Access 2007 Split DB Un-Link Tables

Posted on 2014-10-22
12
130 Views
Last Modified: 2014-10-23
I am looking for code to un-link all tables that are connected to the split backend DB
0
Comment
Question by:CMILLER
  • 5
  • 5
  • 2
12 Comments
 
LVL 75
ID: 40398251
Are you aware that you can just manually Delete the links via the Navigation Pane ?

mx
0
 
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 100 total points
ID: 40398260
Because any VBA Code solution would simply Delete those table names.
Example

CurrentDB.TableDefs.Delete("YourLinkedTableName")
mx
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 400 total points
ID: 40398264
You can do it with code like this:

Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Set dbs = CurrentDB
For Each tdf in dbs.TableDefs
  If Len(tdf.Connect) > 0 Then
    DoCmd.DeleteObject acTable, tdf.Name
  End If
Next tdf

Open in new window

0
The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

 

Author Comment

by:CMILLER
ID: 40398442
DatabaseMX,

Yes and I tried that but when I ran the code that I have to re-link the backend tables it didnt add the one table back that I deleted.
0
 

Author Comment

by:CMILLER
ID: 40398443
Here is what I am using to link the tables.



Function HQlinkTable()
On Error GoTo Relink_Error
Dim dbs As DAO.Database, strBEPath As String
Dim tdf As DAO.TableDef
Set dbs = CurrentDb()
strBEPath = "\\server-name\folder1\folder2\db_be.accdb"
Dim dbData  As DAO.Database
Set dbData = DBEngine.OpenDatabase(strBEPath)
     For Each tdf In dbs.TableDefs
          If tdf.Connect <> "" Then
               tdf.Connect = ";DATABASE=" & strBEPath
               tdf.RefreshLink
          End If
     Next
dbData.Close
Set dbData = Nothing

'add this line
If Err = 0 Then
MsgBox "DB Table Linking Process Successful"
End If


Relink_Error:
     If Err.Number = 3024 Then
          MsgBox "Unable to connect to data tables!" & vbCrLf & "Closing Application", vbQuestion, "DATA TABLES MISSING!"
          Err.Clear
           Application.Quit
     End If
End Function
0
 

Author Comment

by:CMILLER
ID: 40398446
Scott McDaniel,

When I run that code it removes all the tables but the only way to relink them is to manually import them back in.
0
 
LVL 75
ID: 40398498
You didn't say anything about relinking ...

And ... if you delete the links, then you have to manually link them using the Access UI before you can 'relink' them ...for example if the BE is moved ... and you need to Relink.   Relinking is generally done when a BE is moved.  If there are no tables currently linked (to relink), then you need to manually Link to get started.

 

2
0
 
LVL 75
ID: 40398501
This image should  have been above the first image above

1
0
 
LVL 84
ID: 40399071
When I run that code it removes all the tables but the only way to relink them is to manually import them back in.
As Joe mentioned, you didn't say you wanted to relink, only "un-link" them.

You can relink in several ways. Joe has shown you the manual method. If you'd like a way to RE-link that tables - that is to "refresh" the links - then you can either write your own method, or use one of the many free processes out there. Armen Stein's J Street Access Relinker (http://www.jstreettech.com/downloads.aspx) is a nice one, and should do everything you need.
0
 

Author Comment

by:CMILLER
ID: 40399567
Sorry, for not asking the question correctly.

Yes, I know how to re-link them manually.

I will ask a new question.
0
 
LVL 75
ID: 40399982
"You can relink in several ways. Joe has shown you the manual method. "
Actually ... I showed how to Link, not relink ... since relinking technically ... only applies to tables already Linked to a BE. And Armen's tool does Relinking ... not initial Linking - of previously unlinked tables.

Further, I actually explained why the code we supplied was not doing what you asked - and how to correct that issue.

Just sayin' ...

mx
0
 

Author Comment

by:CMILLER
ID: 40400235
The code that I posted for this question is how I relink the tables.

I use this split DB for three diff dept's on three diff networks. The code that I have mapping...relinking...etc....works fine.

I have another use for the split DB and need a quick way to unlink....delete....etc.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
In this sixth video of the Xpdf series, we discuss and demonstrate the PDFtoPNG utility, which converts a multi-page PDF file to separate color, grayscale, or monochrome PNG files, creating one PNG file for each page in the PDF. It does this via a c…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question