• 締切済み

エクセル2000 外部データの取り込み

お世話になります。 これまで、エクセル2003を使用してアクセスのデータを「データ→外部データの取り込み」で取り込んでいました。 今回使用するエクセルが2000になったのですが、2000には「外部データの取り込み」がありません。 「保存したクエリの実行」では、基となるアクセスのデータを選択できません。 「テキストファイルのインポート」では、基となるアクセスのデータを選択できるのですが、2003とは手順が違う上、文字化けになってしまいました。 過去の質問も検索しましたが、解決できませんでした。 エクセル2000でも、2003のようにアクセスのデータを取り込めるのでしょうか? また、取り込めるとしたら、どのような手順を踏めばよろしいのでしょうか? ご回答のほど、よろしくお願いいたします。

みんなの回答

noname#140971
noname#140971
回答No.7

strColData = CutStr(strDatas(I) & "eof", ";", J) If strXolData <> "eof" Then   cells(R+I,・・・・ Else   Exit Do End If ヌルデータ対策バージョン ※犬の散歩中にヌルデータ対策の不備に気付きましたので・・・。 ※書きなぐっての回答は、あくまでも、そういう手段もあるのか程度が一番です。 ※なお、VBA コードのレベルは初歩の初歩です。 ※プログラマではない還暦目前の服飾デザイナが趣味で書いたもの。 ※しかし、知らなきゃ判らないのがVBA。それだけのこと。 ※さて、2000でのデータのツールでの取り込みも知ってしまえば何でもないこと。 ※僅か1行のレコードを取り込むという一連の手続きに挑戦されたらどうですか? ※その初手のハードルを跳び越えりゃ、後はスイスイかと。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.6

#5です。 ご質問を読み直すと、2000にも類似のメニューはあるけれど、機能が2003と違っていて不満足という事でしょうか?2003は使った事はないけれど、WEBクエリなどはかなり機能が向上していると聞いています。 Excelからmdbへの接続は、参考URLをご覧ください。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130.html
akubi1
質問者

お礼

アドバイス、ありがとうございます。 確かに、エクセル2000にも外部データ取り込みメニューはあるのですが、2003のように簡単にできない上、「保存したクエリの実行」と「テキストファイルのインポート」はアクセスデータの取り込みに失敗してしまいました。 不満足ではなく、使いこなせておりません…。 参考URLのご紹介もありがとうございました。 勉強させていただきます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.5

エクセル2000にもデータ/外部データの取り込みメニューは存在します。お手元の2000に、その機能がインストールされていないのでは? ちなみに、外部データの取り込みメニューの内容は、 保存したクエリの実行 新しいWebクエリ 新しいデータベースクエリ テキストファイルのインポート クエリの編集 データ範囲プロパティ といったところです。

noname#140971
noname#140971
回答No.4

バグと思ったのは勘違い! 取得するレコードが整数の範囲内という制限があるだけでした!

akubi1
質問者

お礼

ご回答、ありがとうございます。 ただ、残念なことに理解できませんでした…。 アドバイス頂いた内容が理解できれば、解決できるのでしょうが…。 本当に、ありがとうございました。

noname#140971
noname#140971
回答No.3

Public Function ImportData(ByVal strQuerySQL As String, ByVal R As Long, ByVal C As Long) As String   Dim isOK    As Balloon   Dim I     As Long   Dim J     As Long   Dim N     As Long チト、バグが・・・。

noname#140971
noname#140971
回答No.2

エクセルは一度も実際には操作したことがない門外漢ですが・・・。 「データ→外部データの取り込み」を、チト、試してみました。 要は、「この機能を再現したい」ということでしょうか? Private Sub CommandButton1_Click()   ImportData "SELECT * FROM 各種設定", 1, 1 End Sub 今、シートにコマンドボタンを配置して以上のコードを書いてテストしてみました。 1行目の1列目より、SQL文に合致するデータを読み込んで表示しました。 ImportData関数は、Microsoft Active Data Object 2,8 Library を使用しています。 ※今、書きなぐってテストは僅か1回。 ※更なるテストは質問者で行って下さい。 ※なお、訳が判らなきゃー、利用されない方がいいです。 Option Explicit Public Const conConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test\Test.mdb" Public Function DBSelect(ByVal strQuerySQL As String, _              Optional ByVal strSeparator1 As String = ";", _              Optional ByVal strSeparator2 As String = "") As String On Error GoTo Err_DBSelect   Dim I   As Integer   Dim J   As Integer   Dim R   As Integer   Dim C   As Integer   Dim M   As Integer   Dim N   As Integer   Dim rst  As ADODB.Recordset   Dim fld  As ADODB.Field   Dim Datas As String      Set rst = New ADODB.Recordset   ' =================   ' Begin With: rst   ' -----------------   With rst      .Open strQuerySQL, _         conConnection, _         adOpenStatic, _         adLockReadOnly      If Not .BOF Then       M = .RecordCount - 1       N = .Fields.Count - 1       .MoveFirst       For C = 0 To N         Datas = Datas & .Fields(C).Name & strSeparator1       Next C       If Len(strSeparator2) Then         Datas = Datas & strSeparator2       End If       For R = 0 To M         For C = 0 To N           Datas = Datas & .Fields(C) & strSeparator1         Next C         If Len(strSeparator2) Then           Datas = Datas & strSeparator2         End If         .MoveNext       Next R      End If   End With   ' ---------------   ' End With: rst   ' =============== Exit_DBSelect:   DBSelect = Datas   Exit Function Err_DBSelect:   MsgBox "SELECT 文の実行時にエラーが発生しました。(DBSelect)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"   Resume Exit_DBSelect End Function Public Function ImportData(ByVal strQuerySQL As String, ByVal R As Long, ByVal C As Long) As String   Dim isOK    As Balloon   Dim I     As Integer   Dim J     As Integer   Dim N     As Integer   Dim strDataAll As String   Dim strDatas() As String   Dim strColData As String      isOK = True   strDataAll = DBSelect(strQuerySQL, ";", "|")   strDatas() = Split(strDataAll, "|")   N = UBound(strDatas()) - 1   If N > 0 Then     For I = 0 To N       J = 0       Do         J = J + 1         strColData = CutStr(strDatas(I), ";", J)         If strColData <> "" Then           Cells(R + I, C + J - 1) = strColData         Else           Exit Do         End If       Loop Until 0     Next I   Else     isOK = False   End If   ImportData = isOK End Function Public Function CutStr(ByVal TEXT As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & TEXT, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

アクセスで必要なテーブルかクエリをCSV形式でエクスポートし、そのCSVファイルをエクセルで開く、コピー&貼り付けるなどはめんどくさいでしょうね?

akubi1
質問者

お礼

アドバイス、ありがとうございます。 アドバイス頂いた手順を試してみます。 本当に、ありがとうございました。

関連するQ&A