• 締切済み

エクセルデータをアクセステーブルにコピーするVBA

chayamatiの回答

  • chayamati
  • ベストアンサー率41% (256/613)
回答No.7

回答№3,4,5,6です。 回答№6では解説を省きましたが  W_名簿はエクセルファイルをインポートしたテーブルですが  日付、テキスト等自由に書き込みが出来ますが、 アクセスでは各項目毎に定義します  M_名簿  ・登録日:主キー 日付/時刻型  ・担当者:主キー テキスト型 S_担当者をルックアップ  ・氏名 :主キー テキスト型 インデクスで重複なし       システム全体で重複なし  ・性別 :規定値=男 ルックアップでリスト(男,女)  ・住所 ;値要求 テキスト型  ・卒業校:テキスト型 S_学校をルックアップ  ・旧住所:テキスト型 以上、最初の入力窓口がエクセルと云う事でデザインしてみましたが 運用上不都合がありそうでお薦め出来ません

関連するQ&A

  • エクセルのデータをアクセスのテーブルに移動入力する

    エクセルのデータをアクセスのテーブルに移動入力するVBA フォルダAにおいて、a1.xlsxというファイルがあり、 そのsheet1のセル(a,1)=1 A1が1 とします その値をアクセスのデータベース(これもフォルダAにあります)  b.accdbのテーブル1の フィールド1に入力したいときの エクセルマクロのVBAを御教示いただけると助かります さらに続けて フォルダAにおいて、a2.xlsxというファイルがあり、 そのsheet1のセル(a,1)=2 A1が2 とします その値をアクセスのデータベース上記と同じ  b.accdbのテーブル1の フィールド1に追加で入力したいときの エクセルマクロのVBA 以上わかると助かります よろしくお願いします win10 office365

  • accessテーブル検索 エクセルのセルデータから

    エクセルファイル M.xlsxの セルA1(氏名)=やまだやまよ B1(生年月日)=1980/3/15 という ひらがなの氏名があるとします access H.mdbというファイルのなかの テーブルTにおいて フィールド1=氏名 フィールド2=生年月日 フィールド3=ID のテーブルがあり このテーブルTに 上記エクセルのA1の氏名が あるかどうか このケースですと やまだやまよ が このテーブルTのフィールド1の行にあるかどうか これを調べるVBAのコードを 知りたいのですが、 検索ワードが M.xlsxのセルA1 という定義でコードを御教示ください 氏名で一致したデータがあるときに そのデータのフィールド2の生年月日でもB1のデータと一致するかを 続けて検索するとします ここまでの動作のコードを 御教示願えたら 助かります 宜しくお願い致します win10 office365

  • Excel VBA Accessでデータ取り込み

    Excel VBA、Access VBAについてお教え下さい。 「My_Excel.xlsm」というファイルがあります。このファイルにはボタンが1つあります。 このボタンを押すことにより、「Imp_Excel.xlsx」というファイルを取り込みたいと思います。 取り込み先ですが、「My_Excel.xlsm」に取込むのではなく、Accessの「My_Access.accdb」の「T_MyTable」というテーブルに取り込みたいと思っています。 Accessから直に「Imp_Excel.xlsx」をインポートするには、TransferSpreadsheetを用いれば比較的簡単にデータをAccessに取り込むことができるのですが、「My_Excel.xlsm」をまたいでAccessに取り込みたいので、TransferSpreadsheetは使えません。 やり方としては、 My_Excel.xlsxを開く。 レコードセット取得。 レコードセットがEOFになるまでまわして、SQLのINSERT、またはAddNewメソッドを使用して1件1件挿入していくしか方法はないでしょうか? 今のところ、私が思い浮かぶのは上記の方法なのですが、何かもっと簡単にやれるような方法はあるでしょうか?よろしくお願いします。

  • accessのVBAでテーブル更新するには・・・?

    [input]フォームより「登録」ボタンを押すことで [data]テーブルの[氏名][住所][電話番号][年齢][性別][コメント]フィールドを更新する動作をVBAだけでさせたいです。 このボタンだけで新規登録と更新登録ように既存データの氏名と住所を参照して入力されたデータが既存なのかを確認するようにしたいです。 dim dbs as database をつかってSQLを書き込んでいけばいけるような気がするのですが どうもうまくいきません。 よろしくお願いします。

  • アクセス テーブルデータ他のテーブルにコピーVBA

    win10 access365のmdbファイルにおいて table1のフィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  table2;フィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  上記に置いて table2の新しいデータとして table1のデータをコピーしたい、 ただしtable1には レコードは1行だけとします (table1にレコードが複数行ある場合の最新レコードだけtable2にコピーも出来れば知りたいです) アクセス付属の更新クエリーでは、どうも うまくいきません sqlにおいて UPDATE table1, table2 SET table2.ID = [table1]![ID], table2.氏名 = [table1]![氏名]; 上記動作しません Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim TB As Table Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Table![table1]![ID] Rdset![氏名] = Table![table1]![氏名] Rdset.Update End Function table1, table2を それぞれ 同名のフォームを作り Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim fm As Form Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set fm = Forms![table1] If Rdset.BOF Then Exit Function Else Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Forms![table1]![ID] Rdset![氏名] = Forms![table1]![氏名] Rdset.Update End If End Function いずれも table2のデータ更新が なされていません すみません 宜しくお願い致します

  • Accessコピーについて(お願いします)

    AccessVBA初心者です。  OS XP ACCESS2003 テーブル1とテーブル2 データ構造が同じです。 テーブル2はデータ空です。 テーブル1 ----------------ーー ID  氏名    回数 1  Aさん    2 2  Bさん    3 ----------------ーーーー テーブル1のデータをテーブル2に回数分コピーしたいですが、VBA書き方どうしてもうまくいかないです。SQL文使用しない。 ほしい結果 テーブル2 ----------------ーー ID  氏名    回数 1  Aさん    2 2  Aさん    2 3  Bさん    3 4  Bさん    3 5   Bさん    3 ----------------ーーーー 教えてください。

  • ExcelをAccess(VBA)にインポート

    お世話になります。 VBAによるExcelのインポートにつきましてご教授願います。 あるExcelファイルがあり、それをAccessにてインポート したいと考えております。 通常の表であれば、インポートすることは可能なのですが、 その表の上数行に表名や氏名があったり、見出しが2行に なっていて、片方が結合されるような状態です。 xxxx表                    ←表名 氏名:○○○○               ←氏名                          ←空白行                          ←空白行     上期         下期      ←セルが結合されている No A  B    金額  E  F  金額←ここを見出しとして 1                       インポートしたいところ 2 3 ※A~F及び金額にはそれぞれ値が入ってます。 このようなExcelファイルをVBAにてインポートすることは 可能でしょうか? それとも、ある程度はExcel上で加工する必要があるので しょうか? 宜しくお願い致します。

  • エクセル2003 VBAで セル内を 一発呼び出し

    エクセル2003 オートフィルタではなく VBAで セル内を 一発呼び出ししたいので。  よろしく お願いします。 表 列A~E(結合2行) :商品名と内容   列H~K(結合2行) 住所氏名電話番号を記載してます。 1年分を オートフィルターで  氏名 や 商品名で 探すのは 結構 時間がかかります。 同じものが ほぼ少ないため。。。 そこで  たまに 同じ氏名  同じような 品を 検索する セルを 2個ほど作って  そこへ セル1へ 商品名を入力すると  該当する 行のみ 表示される。 セル2に 名前をを入力すると  該当する 行のみ 表示される。 また、セルを赤色に塗った部分の結合行(2~3行)を 赤色に塗りつぶした行のみ 表示も できれば うれしいです。 コマンドボタン等を使ってもいいので お願いします。 そんな VBAを 作っていただけませんでしょうか^^; お手数おかけしますが どなたか よろしく お願いします。 

  • access table 上書きしてデータ追VBA

    access365 名簿accdbにおいて テーブル1に ID 名前 住所 郵便番号 という項目があり IDは重複不可 数値 テーブル2に ID 名前 住所 郵便番号 という項目があり IDは重複不可 数値 と ふたつのテーブルがあるとき 追加クエリーで テーブル1に テーブル2のデータを追加するときは 同一のIDでは 上書きができません テーブル2のIDが テーブル1にまだ存在しないIDの数値であれば 追加クエリーにより データの追加ができますが 例えばIDが3の人物がいて そのテーブル1の住所が東京で これが新しいデータの格納されているテーブル2では ID3の住所が千葉となったときに これを追加クエリーでIDを3として上書きはできない構造のようです 更新クエリー というのも調べてみましたが ある一定の規則でたとえば物品の値段が100円増しのような 一定の更新条件がある場合であれば更新クエリーが使えますが 上の例のようにテーブル2においてテーブル1にもすでに名前の登録のあるIDのひとの 数人が住所がテーブル2において 新しいものとして変更されていて それをテーブル1に一括で住所の変更のできるVBA 御教示いただけますか (上記の場合ですと住所の変更と郵便番号の変換が同時に当然起きえます) また 同時に テーブル1にはIDの登録もまだない新規IDのひとも テーブル2に存在するとします 要は テーブル2には テーブル1にすでにID人物登録のあるひとと 新規IDのひとが混在している条件で、作りたいと思います すみませんが、おちから頂けると助かります 宜しくお願い致します office365 win10

  • ACCESS VBA テーブルデータをEXCELに

    こんにちは、表題のような内容で行き詰ってしまい質問させてもらいます。 現在、商品在庫のデータベースをACCESS2010を使用してなんとか完成させました。 といっても売上管理等しているわけではなく、単に商品のデータベースです。 【テーブル構成】 T_商品 T_ブランド T_ジャンル T_商品を基本にし、T_ブランド、T_ジャンルはルックアップ用です。 T_商品をデータソースとして、入力、検索用に「F_商品」 というフォームを作ってあります。 入力、検索作業ともに問題なく行えており、現在レコード数は400程度ですが今後5000程度までは増えると思います。 表題のようにEXCELを併用するのは、今回WEBショップをはじめ、利用しているECシステムではCSVで掲載商品データをインポートできるので、それを利用しようと思っております。 理想の動作的には、 上記「商品フォーム」でショップに掲載したい(CSVファイルに転記したい)商品を検索し、 「ショップ掲載リスト」などのボタンを作って押すことで「掲載用.xls」などのエクセルファイルにテーブルのフィールドから必要な「商品名」「ブランド」「価格」などを抜粋して転記、 ショップに掲載したい商品、複数をすべて転記したらエクセルファイルをCSVファイルとして保存し、ECシステムにアップロードです。 現在フォームにエクセルファイルに転記用のボタンを作り、VBAで指定のエクセルファイルを起動するところまででき、コードはネットで探して、以下のようになっております。 Private Sub 転記ボタン_Click() Dim objExcel Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.Workbooks.Open "エクセルファイルのパス.xlsx" End sub エクセルファイルはテーブルの定義がしてあり名前を「商品テーブル」としてあります。 ACCESS側のVBAでエクセルシート上の商品テーブル内の上から順に転記していくにはどういうACCESS VBAを書けばいいのでしょうか? 上からというのは新しく転記する商品を次の行、次の行にということです。 http://okwave.jp/qa/q356182.html こちらの質問も参考にしてみましたが、「.Cells(i, 1) = RS.Fields("フィールド1")」のところでエラーになりました。。。 長々と的を得てない質問文になってしまいましたが、よろしくお願いいたします。