Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Excel ADO connection opens read-only instance of opened Excel

ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 23
Default Excel ADO connection opens read-only instance of opened Excel

Hi Serge,

Reading data from an Excel workbook via ADO should not create a new instance
of Excel. Is there anything else in your code that starts a new Excel
application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Excel ADO connection opens read-only instance of opened Excel

Jake, if you run this function in Excel while another Excel is open it will
create Read-Only instance. As you can see there is nothing here that starts
a new instance of Excel. I am using MDAC 2.8

Private Function Create_CN() As Boolean
Dim xlPath As String
On Error GoTo Err_Handler
Create_CN = False

'-- open XL connection
Set gxlCN = New ADODB.Connection
xlPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

'Stop
With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Create_CN = True
Exit Function

Err_Handler:
Create_CN = False
MsgBox Err.Description, vbCritical, "Error while creating connection..."
'Call Close_CN
End Function

"Jake Marx" wrote in message
...
Hi Serge,

Reading data from an Excel workbook via ADO should not create a new

instance
of Excel. Is there anything else in your code that starts a new Excel
application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 23
Default Excel ADO connection opens read-only instance of opened Excel

Hi Serge,

Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8


I guess I'm not following what the problem is. If you open a workbook in
one instance of Excel, then open the same workbook in another instance, the
second instance will get a read-only copy of it. That is, unless you are
using a shared workbook.

Is your problem that you want to be able to update the workbook with ADO and
you can't? If so, that's because you already have it open for writing, so
you can't make changes via ADO (or a second instance).

What are you trying to do? Maybe there's a better way....

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8

Private Function Create_CN() As Boolean
Dim xlPath As String
On Error GoTo Err_Handler
Create_CN = False

'-- open XL connection
Set gxlCN = New ADODB.Connection
xlPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

'Stop
With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Create_CN = True
Exit Function

Err_Handler:
Create_CN = False
MsgBox Err.Description, vbCritical, "Error while creating
connection..." 'Call Close_CN
End Function

"Jake Marx" wrote in message
...
Hi Serge,

Reading data from an Excel workbook via ADO should not create a new
instance of Excel. Is there anything else in your code that starts
a new Excel application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Excel ADO connection opens read-only instance of opened Excel

Ok, I'm sorry for now being clear. I'll try again, thanks for your patience
:)

If you open any blank workbook in one Excel and then open workbook that
contains the ADO connection code in the second instance of Excel and run
that code
what happens in my case is the first instance (the one with blank workbook)
of Excel now contains 2 workbooks! One is blank (from the start) + a
Read-only copy of the workbook that contained the code (i.e. second
Excel).That is not supposed to happen.

How's that?

Thanks

Serge


"Jake Marx" wrote in message
...
Hi Serge,

Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8


I guess I'm not following what the problem is. If you open a workbook in
one instance of Excel, then open the same workbook in another instance,

the
second instance will get a read-only copy of it. That is, unless you are
using a shared workbook.

Is your problem that you want to be able to update the workbook with ADO

and
you can't? If so, that's because you already have it open for writing, so
you can't make changes via ADO (or a second instance).

What are you trying to do? Maybe there's a better way....

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8

Private Function Create_CN() As Boolean
Dim xlPath As String
On Error GoTo Err_Handler
Create_CN = False

'-- open XL connection
Set gxlCN = New ADODB.Connection
xlPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

'Stop
With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Create_CN = True
Exit Function

Err_Handler:
Create_CN = False
MsgBox Err.Description, vbCritical, "Error while creating
connection..." 'Call Close_CN
End Function

"Jake Marx" wrote in message
...
Hi Serge,

Reading data from an Excel workbook via ADO should not create a new
instance of Excel. Is there anything else in your code that starts
a new Excel application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge






  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 23
Default Excel ADO connection opens read-only instance of opened Excel

Serge,

In the meantime, you should only execute this code on a closed workbook. It
seems to create various problems when run against an open workbook. So
either move your code to another workbook or use a standalone VB executable
to connect to your data source workbook.

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Ok, I'm sorry for now being clear. I'll try again, thanks for your
patience :)

If you open any blank workbook in one Excel and then open workbook
that contains the ADO connection code in the second instance of Excel
and run that code
what happens in my case is the first instance (the one with blank
workbook) of Excel now contains 2 workbooks! One is blank (from the
start) + a Read-only copy of the workbook that contained the code
(i.e. second Excel).That is not supposed to happen.

How's that?

Thanks

Serge


"Jake Marx" wrote in message
...
Hi Serge,

Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8


I guess I'm not following what the problem is. If you open a
workbook in one instance of Excel, then open the same workbook in
another instance, the second instance will get a read-only copy of
it. That is, unless you are using a shared workbook.

Is your problem that you want to be able to update the workbook with
ADO and you can't? If so, that's because you already have it open
for writing, so you can't make changes via ADO (or a second
instance).

What are you trying to do? Maybe there's a better way....

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8

Private Function Create_CN() As Boolean
Dim xlPath As String
On Error GoTo Err_Handler
Create_CN = False

'-- open XL connection
Set gxlCN = New ADODB.Connection
xlPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

'Stop
With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Create_CN = True
Exit Function

Err_Handler:
Create_CN = False
MsgBox Err.Description, vbCritical, "Error while creating
connection..." 'Call Close_CN
End Function

"Jake Marx" wrote in message
...
Hi Serge,

Reading data from an Excel workbook via ADO should not create a new
instance of Excel. Is there anything else in your code that starts
a new Excel application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Excel ADO connection opens read-only instance of opened Excel

Jake,

That's alright. The worksheet contains DDE links and I save values to SQL
database during the day. It is not a good option for me to make user close
live data workbook to save the values to DB. I will just use named ranges
for my purpose. I wanted to use ADO in Excel just because I could. My ADO
connection object to SQL DB does not create any problems in VBA. For the
future I will keep this problem in mind.

I would still be interested to find out what causes this and if there is a
fix.

Thanks for looking into this.

Serge


"Jake Marx" wrote in message
...
Serge,

In the meantime, you should only execute this code on a closed workbook.

It
seems to create various problems when run against an open workbook. So
either move your code to another workbook or use a standalone VB

executable
to connect to your data source workbook.

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Ok, I'm sorry for now being clear. I'll try again, thanks for your
patience :)

If you open any blank workbook in one Excel and then open workbook
that contains the ADO connection code in the second instance of Excel
and run that code
what happens in my case is the first instance (the one with blank
workbook) of Excel now contains 2 workbooks! One is blank (from the
start) + a Read-only copy of the workbook that contained the code
(i.e. second Excel).That is not supposed to happen.

How's that?

Thanks

Serge


"Jake Marx" wrote in message
...
Hi Serge,

Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8

I guess I'm not following what the problem is. If you open a
workbook in one instance of Excel, then open the same workbook in
another instance, the second instance will get a read-only copy of
it. That is, unless you are using a shared workbook.

Is your problem that you want to be able to update the workbook with
ADO and you can't? If so, that's because you already have it open
for writing, so you can't make changes via ADO (or a second
instance).

What are you trying to do? Maybe there's a better way....

--
Regards,

Jake Marx
MS MVP - Excel


Serge wrote:
Jake, if you run this function in Excel while another Excel is open
it will create Read-Only instance. As you can see there is nothing
here that starts a new instance of Excel. I am using MDAC 2.8

Private Function Create_CN() As Boolean
Dim xlPath As String
On Error GoTo Err_Handler
Create_CN = False

'-- open XL connection
Set gxlCN = New ADODB.Connection
xlPath = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

'Stop
With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With

Create_CN = True
Exit Function

Err_Handler:
Create_CN = False
MsgBox Err.Description, vbCritical, "Error while creating
connection..." 'Call Close_CN
End Function

"Jake Marx" wrote in message
...
Hi Serge,

Reading data from an Excel workbook via ADO should not create a new
instance of Excel. Is there anything else in your code that starts
a new Excel application? Maybe I misunderstood your post....

--
Regards,

Jake Marx
MS MVP - Excel

Serge L wrote:
ok here is my code from example on microsoft website
( http://support.microsoft.com/default.aspx?scid=kb;EN-
US;Q321686 )

With gxlCN
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & xlPath & ";" & _
"Extended Properties=""Excel 8.0; HDR=Yes;"" "
.Open
End With

PROBLEM SCENARIO:
2 separate Excel applications are open
1 create connection in one Excel instance -
Connection's creates fine, but the second instance of
Excel now has read-only-instance of first excel app. If I
finish running the code and close both Excel apps, Task
Manager shows instance of Excel running in the memory.

I terminate my connection object like this
If gxlCN Is Nothing = False Then
If gxlCN.State = adStateOpen Then gxlCN.Close
Set gxlCN = Nothing
End If

Please help me open Excel ADO connection without this read-
only copy.

Thank you

Serge




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Connection of Excel 07 pivot table to Access Query makes DB read o Chuck W[_2_] Excel Discussion (Misc queries) 0 October 9th 09 03:45 PM
Open new instance of Excel with each Excel file opened island.fling Setting up and Configuration of Excel 0 July 30th 09 11:05 PM
Excel opens as read only from IE Darren Excel Discussion (Misc queries) 0 October 13th 05 09:36 AM
Excel file opened as read-only, if saved by another user GeEf Excel Discussion (Misc queries) 2 August 28th 05 04:29 PM
Set up Excel to start new instance for each new file opened. Minimal_Subset Excel Discussion (Misc queries) 2 May 12th 05 01:36 AM


All times are GMT +1. The time now is 04:52 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"