try using
Provider=Microsoft.Jet.OLEDB.12.0
You might read through these article:
http://support.microsoft.com/kb/247412
http://support.microsoft.com/kb/246335
Also check the name of your access file extension. MDB might be something
like ACDB
--
Regards,
Tom Ogilvy
--
Regards,
Tom Ogilvy
"Dave B" wrote:
> In 2005, thanks to code posted on this board, I created a workbook
> which connects to Access & retrieves data from recordsets. The code
> works fine, except now when I try to use it with Access 2007 I get the
> error:
> "Unrecognized database format 'C:\...\myfile.accdb'
>
> Is there a way to update the code so it will work with Access 2007?
> Thanks in advance for any help! Here is the relevant section:
>
> Public cnMinistry As ADODB.Connection
> Private Function ConnectToDatabase() As Boolean
> 'instantiate the connection & connect
> Set cnMinistry = New Connection
> cnMinistry.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
> Data Source=" & strFileToOpen & ";"
> cnMinistry.Open '<--- error happens here
> If cnMinistry.State = adStateOpen Then ConnectToDatabase = True
> End Function
>
> References:
> Visual Basic for Applications
> Microsoft Excel 11.0 Object Library
> OLE Automation
> Microsoft Office 11.0 Object Library
> Microsoft Forms 2.0 Object Library
> Microsoft.ActiveX Data Objects 2.5 Library
>
> Some more code that may have to change:
>
> Private Sub ImportAccessTable(cn As ADODB.Connection, TableName As
> String, TargetRange As Range)
> Dim rs As ADODB.Recordset, intColIndex As Integer
> Set TargetRange = TargetRange.Cells(1, 1)
> Set rs = New ADODB.Recordset
> rs.Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable
> For intColIndex = 0 To rs.Fields.Count - 1 ' the field names
> TargetRange.Offset(0, intColIndex).Value =
> rs.Fields(intColIndex).Name
> Next
> TargetRange.Offset(1, 0).CopyFromRecordset rs ' the recordset data
> rs.Close
> Set rs = Nothing
> End Sub
>
>