Page 154 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼インポートについて お年頃 02/12/19(木) 18:39 ┗Re:インポートについて イケガミ 02/12/19(木) 18:43 ┗Re:インポートについて お年頃 02/12/20(金) 8:48 ┗Re:インポートについて イケガミ 02/12/20(金) 11:38 ┗Re:インポートについて お年頃 02/12/27(金) 11:35 ┗Re:インポートについて イケガミ 03/1/4(土) 12:23 ┗Re:インポートについて お年頃 03/1/6(月) 10:00 ┣Re:インポートについて イケガミ 03/1/6(月) 10:12 ┗Re:別案 イケガミ 03/1/6(月) 10:23 ┗Re:出来ました お年頃 03/1/7(火) 12:00 ─────────────────────────────────────── ■題名 : インポートについて ■名前 : お年頃 ■日付 : 02/12/19(木) 18:39 -------------------------------------------------------------------------
久しぶりに質問させていただきます。 OS2000 Access2000 での環境です。 もしかしたらエクセルの問題かも知れませんが何卒よろしくお願いします。 エクセルのデータをインポートするコマンドボタンがあります。 エクセルのバージョンが95ならインポートが可能です。 しかしエクセルのバージョンが95から2000にバージョンアップしたデータで インポートした場合はインポートが不可能です。 またエクセルのバージョンが2000で、直接データを入力した場合では、インポート 可能です。 95から一度CSV方式に変換して、そのあとCSV方式から2000に変換すると 文字列で指定 していた数字が、数値型に変換されてしまうため、再度入力しなければならないので手間 がかかります。 データも300件ほどあるので出来れば95から2000にバージョンアップした状態でデータを 使用したいと思っています。 わがまま言って申し訳ございませんが、どなたかご存知な方いませんか? よろしくお願いします。 |
>エクセルのデータをインポートするコマンドボタンがあります。 これがどのような方法でしているのかが分からないと回答できないですよ。 マクロならマクロの内容を。 VBAなら、コードをこちらにUpしてください。 |
▼イケガミ さん: >>エクセルのデータをインポートするコマンドボタンがあります。 > >これがどのような方法でしているのかが分からないと回答できないですよ。 >マクロならマクロの内容を。 >VBAなら、コードをこちらにUpしてください。 説明不足ですね。ごめんなさい DoCmd.TransferSpreadsheet acImport, , "データ取込", データ.xls, True のように記述しています。 |
> DoCmd.TransferSpreadsheet acImport, , "データ取込", データ.xls, True 第2引数(spreadsheettype)を指定してから試してみてください。 と、第4引数(filename)に引用符がないのと、本来はフルパスで記述する 必要がありますけど。。 |
▼イケガミ さん: >> DoCmd.TransferSpreadsheet acImport, , "データ取込", データ.xls, True > >第2引数(spreadsheettype)を指定してから試してみてください。 > >と、第4引数(filename)に引用符がないのと、本来はフルパスで記述する >必要がありますけど。。 DoCmd.TransferSpreadsheet acImport, 8 , "データ取込", データ.xls, True と記述してもだめでしたね。 あとフルパスで記述していないと普通はエラーが表示されますよね。でもエラーが表示されないので問題はないと思います。 Excelは読み込むのですがデータを取り込んでくれないので困っています |
明けましておめでとうございます。 年越しのレスになってしまいましたが。。 > DoCmd.TransferSpreadsheet acImport, 8 , "データ取込", データ.xls, True DoCmd.TransferSpreadsheet acImport, 8 , "データ取込", "C:\データ.xls", True としても状況に変化はないのでしょうか? > 95から2000にバージョンアップした状態で これは、95で作成したファイルを2000で読み込んでから2000の形式で 保存したということでしょうか? もし、2000の形式で保存しなおしていないのならば、 5 を使えばいいのかな? #既定値が8みたいなので。 |
▼イケガミ さん: >DoCmd.TransferSpreadsheet acImport, 8 , "データ取込", "C:\データ.xls", True ↑としても変化は無いですね。 例えば上のソースコードでエクセルのバージョンが95であればデータが取り込むことは 可能なのですが、95のデータを2000で保存したデータの場合はデータを取り込むことは不可能です。2000で新規に作成したデータならばデータを取り込むことが可能なんですよ! 理由がわかりません。 |
>95のデータを2000で保存したデータの場合はデータを取り込むことは不可能です。 >理由がわかりません。 どうしてでしょうね。。。 こちらでOffice95がないので検証できません。 メールででも、適当なデータ(エクセルファイル)を送付していただければ 検証してみますけど。。 |
TransferSpreadsheet ではなく、追加クエリを使ってみては? Dim strSql As String strSql = "INSERT INTO T_temp ( Fld1, Fld2, Fld3, Fld4 ) " & _ "SELECT Fld1, Fld2, Fld3, Fld4 FROM [sheet1$a1:d100] " & _ "IN 'C:\temp.xls' 'EXCEL 8.0;'" CurrentDb.Execute strSql のような感じで。。 |
一応できましたので ありがとうございます。 TransferSpreadsheet では出来ない理由はわからなかったですけど まっ出来たのでよかったです。 |