- ベストアンサー
Access2000で新しい形式のファイルを開きたい
Accessの新しい形式のファイルをAccess2000で開くにはどうすればよいでしょうか。(ファイルが開けないので2007形式かどうかわからないのですが、、その他のOffice(Wordとか)の互換プログラムはMicrosoftサイトにあったのですが、Accessのは見つかりません) 困っているので、どなたか教えていただけないでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
普通のやり方では無理の様ですね(参考URL参照) 当方未だに2000なので、勉強になりました。 http://aol.okwave.jp/qa3244560.html にエクセル2007から接続する事例がありますが、 2003以前だと当然、2007に対応するDataAccessプロバイダがインストールされていません。 下記で2007 Office System Driver: Data Connectivity Componentsをダウンロードすれば、Excel2003以前から接続できるかも。 当方Access2007のデータを持ち合わせておりませんので、検証できません。あしからず。 http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
その他の回答 (3)
- mitarashi
- ベストアンサー率59% (574/965)
#2です。言うは易く行うは難しでした。 Access2007のデータベースをWEBで拾ってきて試験してみました。 最初のプログラムでテーブルのリストを取得して、 二番目のプログラムで、指定したテーブルのデータをワークシートに貼り付けます。 当然OLE型等には対応できませんが、単純なテーブルなら読めそうです。 ADO関係のVBAコードはAccessもExcelも大差無いので、「Excelはちょっと」と言わず、活用はsinotokuさん次第です。 明日は寝不足だ... Option Explicit 'AccessDatabaseEngine.exeをインストール XP以降 '参照設定 'Microsoft ADO Ext.2.8 for DDL and Security 'Microsoft ActiveX Data Object 2.8 Library 'Microsoft Office 12.0 Access database engine Object Library 'テーブルの名前リストを取得 Sub TableList() Dim CAT As ADOX.Catalog Dim TB As ADOX.Table Dim myConStr As String Dim myDBFName As String myDBFName = "C:\Documents and Settings\?????\デスクトップ\?????.accdb" myConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & myDBFName & ";Persist Security Info=False;" Set CAT = New ADOX.Catalog CAT.ActiveConnection = myConStr For Each TB In CAT.Tables 'Debug.Print TB.Name, TB.Type, TB.DateCreated, TB.DateModified Debug.Print TB.Name Next TB Set CAT = Nothing End Sub '指定したテーブルのデータをワークシートに貼り付け Sub getTabelData() Dim myCon As ADODB.Connection Dim myRS As ADODB.Recordset Dim myConStr As String Dim myDBFName As String myDBFName = "C:\Documents and Settings\?????\デスクトップ\?????.accdb" Set myCon = New ADODB.Connection myConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & myDBFName & ";Persist Security Info=False;" myCon.Open myConStr On Error GoTo conClose Set myRS = New ADODB.Recordset On Error GoTo rsClose myRS.Open "??????", myCon 'Table名 Worksheets("sheet1").Activate Range("A1").CopyFromRecordset myRS rsClose: myRS.Close conClose: myCon.Close Set myRS = Nothing Set myCon = Nothing If Err.Number <> 0 Then MsgBox (Err.Number & " " & Err.Description) End If End Sub
- assault852
- ベストアンサー率48% (1364/2797)
>過去の資産はどうするのでしょう。 Microsoftはそんなこと考えてくれません。 「新しいものをつかいたきゃ、新しいものにあわせてくれや」 というスタンスです。 結局、合わないところは地道に修正していくしかないのです。 Excel・Wordのオートシェイプなど最悪です。 2003に比べてファイルサイズが5~10倍くらいになります。大問題です。
- assault852
- ベストアンサー率48% (1364/2797)
互換ツールがないということは、そういうことはできないということか、必要ないということでしょうね。 壊れるかもしれないので、コピーをとっておいて、開いてみたら案外何とかなるかもしれないですけど。
お礼
おそくなりましたが、ありがとうございました。互換ツールがないというのは困ったものですね。過去の資産はどうするのでしょう。
お礼
ありがとうございます。ただ、Excelというのはちょっとですが。結局Microsoftの2007の試用版をダウンロードして試すことにしました。買うしかないのかなぁ。ちなみにOpenOfficeも試したけれど開きませんでした。OpenOfficeはAccess2000のファイルは開きましたが。