• 締切済み

[Excel ADO]テキストとシートの混在使用法

mitarashiの回答

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

#1です。 Accessの無い環境で使用するには下記をインストールする必要がありそうです。 Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント http://www.microsoft.com/ja-jp/download/details.aspx?id=13255 2007向けは下記かもしれません。 2007 Office system ドライバ: データ接続コンポーネント https://www.microsoft.com/ja-jp/download/details.aspx?id=23734 ご参考まで。

関連するQ&A

  • [Excel ADO]合計額の挿入は可能ですか?

    Excel2007のADOを使ってCSVファイルのデータを集計する方法を習得中です ある業務アプリからエクスポートしたデータなのですが、 売上伝票データ: 伝票日付、伝票番号、取引先名、明細番号、商品名、数量、単価、金額、取引区分、納入先コード 納入先コードテーブル: 納入先コード、納入先名 取引区分が0なら売上、1なら入金(入金伝票の場合納入先コードがNULL) これを集計して売上明細表をつくるとして、 伝票毎に伝票合計額、および納入先名を挿入するようなことが SQL文だけで可能でしょうか?

  • ADOを使用してExcelデータをAccess取込む際のExcelシートの選択について

    表記のとおりADOを使用してExcelデータをAccess取込むのですが、Sheet1のデータを読込んだ後、引続きSheet2のデータを読込む様にVBAコードを書いたつもりですが、Sheet1をアクティブにした状態でExcelデータを保存していたらSheet1のデータを重複して取込み、Sheet2をアクティブにした状態でExcelデータを保存していたらSheet2のデータを重複して取込んでしまいます。どこをどうすればSheet1のデータを読込んだ後、引続きSheet2のデータを読込む様に出来るのでしょうか? ====== VBAコードの抜粋 =========   Dim xlApp As Object       ' Excelのアプリケーション定義   Dim xlBook As Object      ' ExcelのワークブックのフォルダPath+ファイル名を定義   Dim xlSheet As Object      ' Excelの参照するシート名を定義   Dim SheetName As String     ' シート名を代入   Dim SheetCount As Byte     ' シートの選択 For SheetCount = 1 To 2       ' 1回目のループでSheet1から2回目のループでSheet2からデータを取り込む If SheetCount = 1 Then SheetName = "Sheet1" If SheetCount = 2 Then SheetName = "Sheet2" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("ファイルPath+ファイル名") Set xlSheet = xlBook.Worksheets(SheetName) Set Wcell = xlSheet.Range("A1") Set Cn = CurrentProject.Connection Rs.Open "取込みテーブル", Cn, adOpenKeyset, adLockOptimistic xlApp.Application.Visible = True   データを取込むコードあり(省略) xlBook.Close xlApp.Visible = False Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing Next SheetCount

  • [Excel ADO]条件入力の簡素化

    Excel2007を使い、ADOによるCSVファイルのSQL処理をしています ユーザーフォームで条件を入力し、原則以下のようにSQL文化しています 【売上データから商品名で検索する】 sql = "SELECT * FROM 売上.csv WHERE 商品名='" & 商品名.text & "' (「商品名」はユーザーフォーム上のテキストボックスオブジェクト) この際に、ANDやORなども使えたら便利だと思いますが、 SQLとして正しいものは、 商品名='A' OR 商品名='B' とせねばならず、記述がメンドウです。 入力上は 'A' OR 'B' ('A' AND 'B') OR 'C' などとして、それを内部で正しいSQLに変換するような ライブラリなどはないでしょうか? 機械的に「商品名=」という文字列を挿入するような コードを書こうかとも思いましたが、 もう少し賢いパーサーのようなもの(?)が既に存在しても おかしくない気がしました 何かご存じの方がいらっしゃいましたら教えてください よろしくお願いします

  • ADO使用か構造体等の使用か

    Excelでフォームを作って、そこからデータを吸い上げて保存用兼データ解析アプリケーションのデータ元となるようなCSVファイルへフォーム内容を書き込むというような、よくある操作を行うとします。 今までは、変数を宣言して配列を使ったり構造体を使ったりしていましたがデータベースを独学で学んでいるうちにVBAにもADOを使用したデータ操作が行える方法があることを最近知りました。 まだ、SQL的な書き方でものを作ったことが無いので実感が無いのですが上っ面だけ見ると細かく変数等を管理することが減るように思えるので今頼まれている内容にはADOを使用したものに挑戦してみようかと思っています。 経験者の方がいらっしゃいましたら、ADOを使用することの率直な利点と難点を聞かせてください。

  • [Excel ADO]同じテーブルを複数ファイル化

    Excel2007でExcel ADOによるCSVファイル処理をしています 対象はあるアプリからエクスポートした販売データで、月締め処理後の集計が主な内容です。 その際に、10年分以上ある全期間を対象にエクスポートすると時間がかかるので、 せめて前年度以前の分は年度締め時に一度程度、月締め時は当会計年度分に絞り時短を狙いたいのです そのようにして作った2つの販売データファイルから、全データを対象にした処理をするにはどうしたらよいでしょうか? 一つのファイルに対して SELECT * FROM 全データ.csv AS 元帳 WHERE 諸条件 として動いている状態で、 SELECT * FROM ((SELECT * FROM 当年度データ.csv) UNION (SELECT * FROM 前年度以前データ.csv)) AS 元帳 WHERE 諸条件 のような形でいけないかと思ったのですが、「JOIN操作の構文エラーです」となりました (SELECT * FROM 当年度データ.csv AS 元帳 WHERE 諸条件) UNION (SELECT * FROM 前年度以前データ.csv AS 元帳 WHERE 諸条件) とすると一応は動くのですが、実際はもっと複雑なSQL文となっていることもあり、 対象データ(DB)をまず結合した上で、絞り込みや並べ替え等をやれたらと思っています 何かよい方法があれば教えてください

  • oracleとexcelのADOによる連携について

    お世話になります。 excelからADOでoracleのデータベースにある テーブルの必要なデータのみを抽出してexcelに 書き出そうとしています。 excelのvbaコードで、まず、ADOコネクションの生成として、 「cn.Open "Provider=OraOLEDB.Oracle;Data Source=" & "DB名" & ";User ID=hpsuser;Password=○○○;", "○○○", "○○○"」と書き、 ADOレコードセットの生成で、 「 rs.Open "~(1)~", cn, adOpenDynamic, adLockOptimistic, adCmdText」 と書いていますが、上記「~(1)~」の部分がかなり長いクエリ文になっているからなのか、 エラーがかかってしまいます。 単純なテーブルのデータを呼び出す事しかできないのか、又、 長いクエリ文のデータを抽出したい場合どの様にしたら良いのか、 どなたかご親切な方、ご教示頂けます様、宜しくお願いいたします。

  • Excel2002で新規起動時にシートを開かせないようにしたい

    Excel2002で新規起動時にシートを開かせないようにしたい 宜しくお願いします。 Excel2002で、エクセルを新規起動させると勝手にシートが3枚作られますが、このシートを減らしたり増やしたりする方法は分かったのですが、まったく表示させない様にするには、どうすれば良いのでしょう? 私の使い方の場合、既存のCSVファイルを開かせる事が多く、しかし、CSVファイルはエクセルではなく、秀丸で開くように設定しているので、たまにエクセルで開こうとする時に、エクセルを新規起動させて、その度にシートを消しております。 これが非常にうっとうしいので、最初から新規のシートを全く開かせなくする方法があれば、すごく助かります。

  • CSV形式で編集された項目をVBからEXCELシートへ編集し印刷

    CSV形式で編集したテキスト項目(7項目,300行)を、EXCELファイルへ編集し、印刷する方法を教えて下さい。(VBでEXCELシートへ編集し印刷したが、編集から印字までの処理時間が大きいため、帳票データをCSV形式化し、処理速度を高速化したい)簡単なサンプルがあれば助かります。 処理の概要は、以下の通り。 (1)VBで、CSV形式のテキストファイル作成後、 (2)VBからEXCELファイルを開いて (3)CSVのテキストファイルをEXCELシートへ編集 (4)VBから印刷プレビューを出し (5)印刷指示することで 全て、VBから制御する方法

  • Access2007のレポート作成でExcelシート内容をコピー(インポート)できませんか?

    元々Excelシート上に印刷フォーマットがあり 別シートのデータを差し込み印刷するマクロで データを広い連続印刷しているのですが データをAccessに集約したいと考えています。 レポートを作成する際、Excelからの罫線、文字等の データを利用できませんでしょうか? AccessデータをCSVにエクスポートし Excelで取り込む方法もあるかと思いますが 使用する人がど素人ですのでAccessで 全てを完結したいと考えています。 Excelのテーブルをコピーしてレポートに貼り付ける 方法ですとOLEクラスでExcelが貼り付けられますが、 A3横のサイズを全て選択しコピペしても、途中で切れてしまします。 Access側のレポートサイズはA3横にはしています。

  • 複数のExcelブックから特定シートのセル範囲抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル範囲を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 このサイトで殆どよく似た回答を読んだのですがうまくいきません。VBA初心者です。 よろしくお願いします。 【前提】 ・実行する端末のOSはWindows 10 ExcelはOffice365 ProPlus ・対象フォルダはネットワーク接続フォルダ  この中に、複数のExcelブック(xlsx、xlsm)があります。 ・抽出したい対象は、各ブック内の「台帳」シートの「A3:Cの最終行」で  複数のブックの中には「台帳」シートが含まれていないブックも混在しています。 【抽出一覧作成イメージ】 ・「集約.xlsm」ブックの「集計」シートの2行目から抽出した結果を一覧表示する。 ・「集約.xlsm」ブックにマクロは登録する ・表示はA列に抽出元ブック名(=ファイル名)、B列からD列に抽出元「A3:Cの最終行」セルの値。 ・「A3:Cの最終行」セルの値を「集約.xlsm」ブックの「集計」に貼り付ける際には「値で貼り付ける」が望ましい。