INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
Hello, i'm forced to use ACCESS Runtime 2010 for my ACCESS 2007 application, because Runtime 2007 does not work on Windows 10.
That is not a problem, but there are two version of Runrime 2010, 32 and 64 bits.

On my development PC I have still office 2007, so the 64 bits version won't install.

But some of my users have already installed Office 2010. Does my application (ACCESS 2007) still work on there computers and do they have to instal the 64 bits version of the runtime?

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

It is not related to the version of office (2007,2010,2012) it is whether or not you are creating the app using 32 or 64 bit access.

And also related to whether they have 32bit or 64bit office installed because you can't have both.

So it is not possible to have a user with 64bit office use 32bit runtime and vice versa - you will get an error message telling you this!

Here we all run 32bit Office / runtime, but some have office 2007, some have office 2101 and some office 2013, all run my access 2010 apps with access 2010 runtime, regardless of office version.

Though you must write your apps to use late bindings if you want them to interact with a mix version office environment.

"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
Thanks, getting more clear now.
On what moment does a user decide to install the 64 bit or the 32 bit version of the office applications?
Is that during buying (so different versions) or during installation (just a choice?)

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

Well the OEM Office 2013 I currently buy, gives you the option when you download / install as to what version you want, the default is 32bit IIRC.

"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
Thanks again.

So the first step is to ask my customer to (re)install the 32 bits version instead of the 64 bits of office.

Second step is to rewrite my application into late binding.

I'm also thinking of to upgrade to ACCESS 2013. So that will be the moment to rewrite ny application.

Because I'm not a very experienced VBA programmer (I was in the past Cobol programmer)I have some diffulculties with onderstanding how to implement "late binding".

So far I understood that it has something to do with the references, bit there it stop for me.

Is anybody willing to explain in simple words what changes I have to make.

My existing app uses a list of references and in the app I use different ways of getting information from tables (which are situated in a sharepoint)

Thanks on forehand

Willem

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

If you have someone who is running 64bit office you either need to compile them a 64bit version of your app, or get them to re-install 32bit office.

You can't mix and match 32bit with 64bit unfortunately.

Just remember if you upgrade to Access 2013, then you will need to ensure your users have the 2013 run-time installed.

Late Bindings is simply about NOT declaring your variables as a particular object/class type (so you don't need to reference a particular library version of office).

You simply assign the object type when you want to instantiate it, letting the application / OS use what ever version it can find currently installed on the user machine.

E.G. for an Outlook object.

CODE

' Declare variable as generic object type
    Dim objOutlook As Object

    ' Instantiate a new Outlook object
    Set objOutlook = CreateObject("Outlook.Application") 

This code doesn't care if the user has Outlook 2003,2007,2010,2013 - as long as they have Outlook installed, it will work smile

Luckily VBA isn't a strongly typed OOP language either, so no casting is needed to get access to the Outlook object's properties / method protocol.

"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
OK I think I understand what you mean. Thanks for your explanation!
If you have a liitle time for me look below please.
Just to make sure for me I copied some parts of my coding down below. Do you see any places which I have to change to get "late binding"

Dim con As ADODB.Connection

Set con = CurrentProject.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Plaats = "Versie"
rs.Open "Versie", con, adOpenStatic, adLockPessimistic

If rs.BOF = True And rs.EOF = True Then
MsgBox ("Geen Versie gevonden")
rs.Close
Exit Sub
End If
'Sharewijz: foutafhandeling
rs.MoveFirst
AppNaamActief = rs!AppNaamActief
VersieNummer = rs!VersieNummer
Conversie = rs!Conversie
rs.Close


---------------------------------------------------------
Public Sub RelinkingTabellen(NewPathname As String)
On Error GoTo Err_RelinkingTabellen
Dim dbs As Database
Dim tdf As TableDef
Dim Tdfs As TableDefs
Set dbs = CurrentDb
Set Tdfs = dbs.TableDefs
'Loop through the tables collection
For Each tdf In Tdfs
If tdf.SourceTableName <> "" Then 'If the table source is other than a base table
' Tdf.Connect = ";DATABASE=" & NewPathname 'Set the new source
tdf.RefreshLink 'Refresh the link
End If
Next 'Goto next table


Exit_RelinkingTabellen:
Exit Sub

Err_RelinkingTabellen:
MsgBox Err.Description
Resume Next

End Sub

----------------------------------------
DoCmd.OpenQuery docName, A_NORMAL, A_EDIT

--------------------------------------------

Dim db As DAO.Database
Dim ws As DAO.Workspace

Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase("C:\Niebotel-Online\NiebotelLeden.accdb", False, False, "MS Access;PWD=CalypsoNiebot")

db.Execute "ALTER TABLE Tbl_leden ADD COLUMN LengteWens Number"
db.Execute "ALTER TABLE Tbl_leden ADD COLUMN BreedteWens Number"



db.TableDefs("Tbl_leden").Fields("LengteWens").Properties("DefaultValue") = 0
db.TableDefs("Tbl_leden").Fields("BreedteWens").Properties("DefaultValue") = 0

db.Close
--------------------------------------------------------------------------

Set con = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "[Facturen]", con, adOpenDynamic, adLockPessimistic

rst.Sort = "Naam"

Do While Not rst.EOF
rst!Factuurnummer = StartwaardeFacturen
rst!FactuurSoort = "Jaarfactuur"
rst!Mededeling = Mededeling
etc
---------------------------------------------------
DoCmd.SendObject acSendReport, "JaarFactuur per lid", "pdf", EmailLid, , , "Jaarfactuur WSV Bru voor: " & Onderwerp, "Bijgevoegd vindt U uw factuur voor WSVBRU; Gaarne binnen 30 dagen betalen", False


I hope you do not mind asking me so much!!!!!!!!!!!!!!!!!!!!!!

Greetings

Willem
Netherlands (so you understand my bad English!)

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

I can't see any of your code using office objects?

This is not late binding

CODE

Dim rs As ADODB.Recordset 

But this is also not related to any particular version of office, this is using the MS ActiveX Data Objects library.

If you have a reference to this, then all users must have that version of the ActiveX library installed.

To late bind ADODB, you remove the reference to the ActiveX library and then create the recordset in this manner

CODE

Dim rst As Objecj
Set rst = CreateObject("ADODB.Recordset") 

Well TBH I'm not sure if you can remove the reference to the ActiveX and it still work, but in theory, that's how it is done.

Personally I use DAO and have a reference to MS Office 14.0 Access database engine Object library and declare all my recordset objects like this...

CODE

Dim rs As DAO.Recordset 

But as this is related to the version of Access being used (the run-time and what I develop with - Access 2010), it doesn't matter what version of Office they have installed.







"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
Hello again , thanks for spending your time.
One of my users has Office 64 bits installed and my application (32 bits) is running!!!
Surprise, surprise!
I do not understand why, but can it be that as long there are no references used to office the problem does not exist?
These are the references used in this application but I do not know why these references are used.
Is there a way to find out?
Visual basic for application
Microsoft access 12.0 object library
Microsoft activexdataobject 12.1 library
Micro office 12.0 Access database engine library
MicrosoftVisual basicfor applicationsExtensibility 5.3

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application


>> One of my users has Office 64 bits installed and my application (32 bits) is running!!!

Hmmm, dunno... You can't run mix-mode, I tried, I get a message saying you can't have 32bit & 64bit installed.

Do they have Access with their Office or are you saying they are running 32bit run-time and 64bit Office?

Or 64bit run-time with 32bit application?

"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

(OP)
As far as I know they have the ACCESS Runtime 2007 (32bit) for the ACCESS 2007 .aaccdr and on top of it they have installed Office Pro 64.
This user has to PC's one of them Windows 10. On both machines it worked.

In the weekend I have the laptop of the user in my hands; are there special things I have to check?

RE: Use of ACCESS Runtime 2010 with office 2010 and ACCESS 2007 application

Pass ponder

When ever I have tried to mix 32bit and 64bit the installer refuses to run saying you can't mix 32bit & 64bit.

I have no idea how they have managed to install both 32bit & 64bit office components on the same machine, perhaps this is new to Windows 10?

Maybe someone else can chime in and advise how this is possible?

"In complete darkness we are all the same, it is only our knowledge and wisdom that separates us, don't let your eyes deceive you."

"If a shortcut was meant to be easy, it wouldn't be a shortcut, it would be the way!"
Free Electronic Dance Music

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close