DAO360.dll in 2007?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ChipR
    Recognized Expert Top Contributor
    • Jul 2008
    • 1289

    DAO360.dll in 2007?

    I've solved my missing Outlook reference problems by using late binding, but a new problem has come up. When my user opened a form, Access started searching for DAO360.dll. The dll was in some crazy folder on his C: drive, so I had him copy it to C:\Program Files\Common Files\Microsoft Shared\DAO, unregister it, and reregister it. Now no search message, but I have 2 questions I can't find the answer to.
    1) What is supposed to install this dll, since this user has Office 2007 minus Outlook, and it wasn't there?
    2) Why is my 2007 application using the 200-2003 dll, and how can I tell what parts are using that and fix it?
    This must be related to the fact that the first third of my development was done in 2003 before I converted to .accdb, but would I have to rewrite the older forms to eliminate the dependency? (3 questions I guess :-)
    On a curious note, when we cancelled the search for DAO360.dll, everything worked fine anyway.
  • RuralGuy
    Recognized Expert Contributor
    • Oct 2006
    • 375

    #2
    You can use LateBinding on DAO as well.

    Comment

    • ChipR
      Recognized Expert Top Contributor
      • Jul 2008
      • 1289

      #3
      Well, I've read some forums where people said late binding DAO is crazy or dumb and there's no reason to do it, but I did it anyway. All I had to do really was change all the affected Dims to Object. Now I've removed all references possible, and have no version conflicts. I would recommend everyone developing an application to be used on multiple machines take references into consideration, since I had no idea what was going on even after I had a problem.
      Thanks, RuralGuy.

      Comment

      • RuralGuy
        Recognized Expert Contributor
        • Oct 2006
        • 375

        #4
        You are very welcome. Glad I could help.

        Comment

        • dima69
          Recognized Expert New Member
          • Sep 2006
          • 181

          #5
          Chip, how do you use late binding on DAO ? Clearly, changing declarations to objects is not enough, since you have to create an object as well, am I right ?
          As for your question, Package and Deployment Wizard must take care of DAO installation.
          Maybe this article can be relevant to this, too :Microsoft Access Flaws - Errors using multiple versions of Microsoft Access under Windows Vista

          Comment

          • ChipR
            Recognized Expert Top Contributor
            • Jul 2008
            • 1289

            #6
            I got an error when I tried to use CreateObject to make a Database and Recordset, so I did:

            Code:
            Dim db as Object
            Dim records as Object
             
            Set db = CurrentDb()
            set records = db.OpenRecordset(strSQL)
            or

            Code:
            Dim records as Object
            Set records = DBEngine(0)(0).OpenRecordset(strSQL)

            Comment

            • dima69
              Recognized Expert New Member
              • Sep 2006
              • 181

              #7
              This is very interesting, and I am really surprised that it works (I've checked). OpenRecordset is DAO library function, so I cannot understand how can this method work without an explicit DAO reference.
              Maybe one of the other experts can explain this.

              Comment

              Working...