473,395 Members | 1,670 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Can't convert to MDE after adding refresh links functions

ET
I don't know whats the problem, but after I added functions
to first verify, then relink linked tables if not found,
now I can't convert that database to MDE format.
I can split the database, but can't convert
part of the database with forms, reports, queries to MDE format.

Can somebody advice on this?

References, in the order, from the top:

Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft ADO Ext. 2.7 for DDL and Security
Microsoft ActiveX Data Objects 2.7 Library
Here is the error signature:

Error signature
AppName: msaccess.exe AppVer: 10.0.6501.0 ModName mso.dll
ModVer: 10.0.6735.0 Offset: 000099bb

Here is the VBA code for relinking, it is in LOAD event
of starting switchboard form:
============================================

Private Sub Form_Load()

DoCmd.Hourglass True

Call LinkTables

DoCmd.Hourglass False

End Sub

=========================================
Sub LinkTables()

Dim objFileDialog As FileDialog

On Error GoTo LinkTables_Err:

DoCmd.Hourglass True

'Check to see if tables are linked properly
If Not VerifyLink Then

'If still not ok, attempt to relink with expected file name
If Not ReLink(CurrentProject.FullName, True) Then

MsgBox "Date file for this database can not be found." +
(Chr(13) & Chr(10)) + (Chr(13) & Chr(10)) + "After you click button OK,
File dialog window will pop up" + (Chr(13)) + "so you can specify the
location of the data file."

'If still not ok, ask user to locate file
Set objFileDialog = FileDialog(msoFileDialogOpen)

With objFileDialog
.AllowMultiSelect = False
.Show
End With

'Attempt to link to file user selected
If Not ReLink(objFileDialog.SelectedItems(1), False) Then

'If not successful, display a message and quit
application
MsgBox "You Cannot Run This App Without Locating
Data Tables"
DoCmd.Close acForm, "frmSplash"
DoCmd.Quit
End If
End If
End If

DoCmd.Hourglass False
Exit Sub

LinkTables_Err:
DoCmd.Hourglass False
MsgBox "Error # " & Err.Number & ": " & Err.Description
Exit Sub

End Sub

=====================================
Function VerifyLink() As Boolean
'Verify connection information in linked tables.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdf As ADOX.Table
Dim strTemp As String

'Point database object variable at the current database
Set cat = New ADOX.Catalog

With cat
Set .ActiveConnection = CurrentProject.Connection

'Continue if links are broken
On Error Resume Next

'Open one linked table to see if connection information is
correct
For Each tdf In .Tables
If tdf.Type = "LINK" Then
strTemp = tdf.Columns(0).Name
If Err.Number Then
Exit For
End If
End If
Next tdf

End With

VerifyLink = (Err.Number = 0)

End Function

============================================
Function ReLink(strDir As String, DefaultData As Boolean) As Boolean
'Relink a broken linked Access table.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdfRelink As ADOX.Table
Dim strPath As String
Dim strName As String
Dim intCounter As Integer
Dim vntStatus As Variant

'Prepare status bar
vntStatus = SysCmd(acSysCmdSetStatus, "Updating Links")

Set cat = New ADOX.Catalog

With cat
.ActiveConnection = CurrentProject.Connection

On Error Resume Next
'Update progress meter
Call SysCmd(acSysCmdInitMeter, "Linking Data Tables",
..Tables.Count)

'Loop through each table, attempting to update the link
For Each tdfRelink In .Tables
intCounter = intCounter + 1
Call SysCmd(acSysCmdUpdateMeter, intCounter)
If .Tables(tdfRelink.Name).Type = "LINK" And
Left(tdfRelink.Name, 3) = "tbl" Then
tdfRelink.Properties("Jet OLEDB:Link Datasource") =
strDir
End If

If Err.Number Then
Exit For
End If
Next tdfRelink

End With

'Reset the progress meter
Call SysCmd(acSysCmdRemoveMeter)

vntStatus = SysCmd(acSysCmdClearStatus)

ReLink = (Err = 0)

End Function
================================================== ==

Nov 13 '05 #1
3 2667
In the code window (Alt+F11), go to Debug|Compile. Is the database compiled?
It needs to be in order to create the mde file. If not, do you get any
errors when you try to compile?

Where are you trying to save the mde file to? I've see problems if trying to
save to a network share. If so, save to a local directory then copy the file
to the network share.

Have you installed all of the updates for Office XP? Go to
http://office.microsoft.com/en-us/of...e/default.aspx and click Check
for Updates.

--
Wayne Morgan
MS Access MVP
"ET" <ve****@yahoo.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
I don't know whats the problem, but after I added functions
to first verify, then relink linked tables if not found,
now I can't convert that database to MDE format.
I can split the database, but can't convert
part of the database with forms, reports, queries to MDE format.

Can somebody advice on this?

References, in the order, from the top:

Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft ADO Ext. 2.7 for DDL and Security
Microsoft ActiveX Data Objects 2.7 Library
Here is the error signature:

Error signature
AppName: msaccess.exe AppVer: 10.0.6501.0 ModName mso.dll
ModVer: 10.0.6735.0 Offset: 000099bb

Here is the VBA code for relinking, it is in LOAD event
of starting switchboard form:
============================================

Private Sub Form_Load()

DoCmd.Hourglass True

Call LinkTables

DoCmd.Hourglass False

End Sub

=========================================
Sub LinkTables()

Dim objFileDialog As FileDialog

On Error GoTo LinkTables_Err:

DoCmd.Hourglass True

'Check to see if tables are linked properly
If Not VerifyLink Then

'If still not ok, attempt to relink with expected file name
If Not ReLink(CurrentProject.FullName, True) Then

MsgBox "Date file for this database can not be found." +
(Chr(13) & Chr(10)) + (Chr(13) & Chr(10)) + "After you click button OK,
File dialog window will pop up" + (Chr(13)) + "so you can specify the
location of the data file."

'If still not ok, ask user to locate file
Set objFileDialog = FileDialog(msoFileDialogOpen)

With objFileDialog
.AllowMultiSelect = False
.Show
End With

'Attempt to link to file user selected
If Not ReLink(objFileDialog.SelectedItems(1), False) Then

'If not successful, display a message and quit
application
MsgBox "You Cannot Run This App Without Locating
Data Tables"
DoCmd.Close acForm, "frmSplash"
DoCmd.Quit
End If
End If
End If

DoCmd.Hourglass False
Exit Sub

LinkTables_Err:
DoCmd.Hourglass False
MsgBox "Error # " & Err.Number & ": " & Err.Description
Exit Sub

End Sub

=====================================
Function VerifyLink() As Boolean
'Verify connection information in linked tables.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdf As ADOX.Table
Dim strTemp As String

'Point database object variable at the current database
Set cat = New ADOX.Catalog

With cat
Set .ActiveConnection = CurrentProject.Connection

'Continue if links are broken
On Error Resume Next

'Open one linked table to see if connection information is
correct
For Each tdf In .Tables
If tdf.Type = "LINK" Then
strTemp = tdf.Columns(0).Name
If Err.Number Then
Exit For
End If
End If
Next tdf

End With

VerifyLink = (Err.Number = 0)

End Function

============================================
Function ReLink(strDir As String, DefaultData As Boolean) As Boolean
'Relink a broken linked Access table.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdfRelink As ADOX.Table
Dim strPath As String
Dim strName As String
Dim intCounter As Integer
Dim vntStatus As Variant

'Prepare status bar
vntStatus = SysCmd(acSysCmdSetStatus, "Updating Links")

Set cat = New ADOX.Catalog

With cat
.ActiveConnection = CurrentProject.Connection

On Error Resume Next
'Update progress meter
Call SysCmd(acSysCmdInitMeter, "Linking Data Tables",
.Tables.Count)

'Loop through each table, attempting to update the link
For Each tdfRelink In .Tables
intCounter = intCounter + 1
Call SysCmd(acSysCmdUpdateMeter, intCounter)
If .Tables(tdfRelink.Name).Type = "LINK" And
Left(tdfRelink.Name, 3) = "tbl" Then
tdfRelink.Properties("Jet OLEDB:Link Datasource") =
strDir
End If

If Err.Number Then
Exit For
End If
Next tdfRelink

End With

'Reset the progress meter
Call SysCmd(acSysCmdRemoveMeter)

vntStatus = SysCmd(acSysCmdClearStatus)

ReLink = (Err = 0)

End Function
================================================== ==

Nov 13 '05 #2
On 20 Oct 2005 02:00:11 -0700, "ET" <ve****@yahoo.com> wrote:

Your Access installation may be messed up. Try this:
Copy the app to another machine.
Code window > Debug > Compile
If no problems, then convert to MDE.

-Tom.

I don't know whats the problem, but after I added functions
to first verify, then relink linked tables if not found,
now I can't convert that database to MDE format.
I can split the database, but can't convert
part of the database with forms, reports, queries to MDE format.

Can somebody advice on this?

References, in the order, from the top:

Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft ADO Ext. 2.7 for DDL and Security
Microsoft ActiveX Data Objects 2.7 Library
Here is the error signature:

Error signature
AppName: msaccess.exe AppVer: 10.0.6501.0 ModName mso.dll
ModVer: 10.0.6735.0 Offset: 000099bb

Here is the VBA code for relinking, it is in LOAD event
of starting switchboard form:
============================================

Private Sub Form_Load()

DoCmd.Hourglass True

Call LinkTables

DoCmd.Hourglass False

End Sub

=========================================
Sub LinkTables()

Dim objFileDialog As FileDialog

On Error GoTo LinkTables_Err:

DoCmd.Hourglass True

'Check to see if tables are linked properly
If Not VerifyLink Then

'If still not ok, attempt to relink with expected file name
If Not ReLink(CurrentProject.FullName, True) Then

MsgBox "Date file for this database can not be found." +
(Chr(13) & Chr(10)) + (Chr(13) & Chr(10)) + "After you click button OK,
File dialog window will pop up" + (Chr(13)) + "so you can specify the
location of the data file."

'If still not ok, ask user to locate file
Set objFileDialog = FileDialog(msoFileDialogOpen)

With objFileDialog
.AllowMultiSelect = False
.Show
End With

'Attempt to link to file user selected
If Not ReLink(objFileDialog.SelectedItems(1), False) Then

'If not successful, display a message and quit
application
MsgBox "You Cannot Run This App Without Locating
Data Tables"
DoCmd.Close acForm, "frmSplash"
DoCmd.Quit
End If
End If
End If

DoCmd.Hourglass False
Exit Sub

LinkTables_Err:
DoCmd.Hourglass False
MsgBox "Error # " & Err.Number & ": " & Err.Description
Exit Sub

End Sub

=====================================
Function VerifyLink() As Boolean
'Verify connection information in linked tables.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdf As ADOX.Table
Dim strTemp As String

'Point database object variable at the current database
Set cat = New ADOX.Catalog

With cat
Set .ActiveConnection = CurrentProject.Connection

'Continue if links are broken
On Error Resume Next

'Open one linked table to see if connection information is
correct
For Each tdf In .Tables
If tdf.Type = "LINK" Then
strTemp = tdf.Columns(0).Name
If Err.Number Then
Exit For
End If
End If
Next tdf

End With

VerifyLink = (Err.Number = 0)

End Function

============================================
Function ReLink(strDir As String, DefaultData As Boolean) As Boolean
'Relink a broken linked Access table.

'Declare required variables
Dim cat As ADOX.Catalog
Dim tdfRelink As ADOX.Table
Dim strPath As String
Dim strName As String
Dim intCounter As Integer
Dim vntStatus As Variant

'Prepare status bar
vntStatus = SysCmd(acSysCmdSetStatus, "Updating Links")

Set cat = New ADOX.Catalog

With cat
.ActiveConnection = CurrentProject.Connection

On Error Resume Next
'Update progress meter
Call SysCmd(acSysCmdInitMeter, "Linking Data Tables",
.Tables.Count)

'Loop through each table, attempting to update the link
For Each tdfRelink In .Tables
intCounter = intCounter + 1
Call SysCmd(acSysCmdUpdateMeter, intCounter)
If .Tables(tdfRelink.Name).Type = "LINK" And
Left(tdfRelink.Name, 3) = "tbl" Then
tdfRelink.Properties("Jet OLEDB:Link Datasource") =
strDir
End If

If Err.Number Then
Exit For
End If
Next tdfRelink

End With

'Reset the progress meter
Call SysCmd(acSysCmdRemoveMeter)

vntStatus = SysCmd(acSysCmdClearStatus)

ReLink = (Err = 0)

End Function
================================================= ===


Nov 13 '05 #3
ET
Thank you Tom and Wayne,

I found solution for this problem here:
http://support.microsoft.com/?id=814858

the only difference is, on step 1. instead of running /decompile from
Start/Run,
I run it from Command prompt...

It works fine, converts to MDE.

Nov 13 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: eric rudolph | last post by:
I am writing a photo gallery and suppose 8 photos are displayed. When the user clicks on a button under the picture, I want it to add that picture name to a "favorites" list within the session...
1
by: Steven | last post by:
hi all i'm primarily a ASP web developer, so i'm not sure if i can do this or not. i want to allow client's on my site to run a local version of the site off their laptop. i want to give the...
4
by: Richard Hollenbeck | last post by:
I'm trying to write some code that will convert any of the most popular standard date formats twice in to something like "dd Mmm yyyy" (i.e. 08 Jan 1908) and compare the first with the second and...
7
by: Alan Silver | last post by:
Hello, I have installed the 2.0 framework, and am looking at converting some of my 1.1 pages to use partial classes. I don't (yet) have VS2005, so I'm doing this by hand, but am having problems....
1
by: pseudomagazine | last post by:
Little problem: Using the document.write() function and an enormous string, I have managed to create self-generated pages with functions calling code located in external scripts. The code that...
25
by: bubbles | last post by:
Using Access 2003 front-end, with SQL Server 2005 backend. I need to make the front-end application automatically refresh the linked SQL Server tables. New tables will be added dynamically in...
11
by: cybervigilante | last post by:
I can't seem to change the include path on my local winmachine no matter what I do. It comes up as includ_path .;C:\php5\pear in phpinfo() but there is no such file. I installed the WAMP package...
34
by: bitsnbytes64 | last post by:
Hi, I've been having a similar issue to what is described in the "refresh a form" post with a ComboBox that is not being refreshed after adding a new value on a seperate form. The second form is...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.