現在マスタの登録業務でEXCELを中心に行っているのですが、件数が10万件を超えておりACCESSに格納しています。
そこで、こちらであらかじめ指定したマスタ名称(キー項目)をEXCEL上に並べておき、ACCESSからその他のマスタ項目を名称の隣にずらりと持ってきたいのですが追加編集を行いたいのですがそんな事可能なのでしょうか?ご教授願いたく。
例>Access
マスタ名称 金額 区分
AAAA 100円 原料
BBBB 500円 容器
CCCC 600円 原料
Excel(マスタ名称のみ予め記述しておく)
マスタ名称
AAAA←ここに対して金額と区分をACCESSから引っ付けたい
CCCC←
※EXCELをACCESSに一度インポートしてクエリ作成する等はしたくないのです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1です。
ある程度VBAが書けて、わからなければ調べられるという前提のもとサンプルを挙げておきます(キー項目をExcelのDataシートのA1から縦に入力していき、入力したものについて他の項目を取得して横にセットします。参照設定を行うことも多いですが、行わないレイトバインディングの例です)。
レイアウトが変わって必要な項目が変わってもクエリを書きなおすだけだから、影響は少ないです。
工夫すれば、1回だけAccessにクエリを投げて必要なキーのもののデータをまとめて取得することも可能です。
Sub getItemsFromAcc()
Dim adoConn As Object
Dim adoRS As Object
Dim strConn As String
Dim strSQL As String
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TEMP\test.mdb"
adoConn.Open strConn
r = 1
With Worksheets("Data")
Do Until .Cells(r, 1) = ""
strSQL = "SELECT DAMOUNT,DTYPE FROM ACCESSTBL WHERE DKEY='" & .Cells(r, 1) & "'"
adoRS.Open strSQL, adoConn
Do Until adoRS.EOF
.Cells(r, 2) = adoRS.Fields("DAMOUNT")
.Cells(r, 3) = adoRS.Fields("DTYPE")
adoRS.movenext
Loop
adoRS.Close
r = r + 1
Loop
End With
adoConn.Close
Set adoRS = Nothing
Set adoConn = Nothing
End Sub
No.2
- 回答日時:
エクセルの表をそのままアクセスにインポートし、マスタ名をキーにしてリレーションを作り、ついでクエリーでアクセスの表とエクセルからきた表を読み込むと、一発で希望のものが作れますよ。
データ入力は一切しなくてよいです。No.1
- 回答日時:
Excel VBAでADOを使えばできます。
が、以下の意味次第です。>※EXCELをACCESSに一度インポートしてクエリ作成する等はしたくないのです。
その方法ではAccessでクエリを作成する代わりに、外からAccessに接続してクエリでデータを抜き出します。
だから、「VBAは使いたくない」とか「クエリ・SQLは書きたくない」という意味も含まれているのだったら、無理なんですが。
ご回答ありがとうございました。
VBAのADOですね。要件に合うサイトか本かを探してみようかとは思います。
一度ACCESSに取り込んで~~
というのはEXCELシートのマスタ項目が定期的に変動するので、逐次ACCESSへのインポート作業するのは負荷が大きいと思ったからです。上記ADOと呼ばれる手法を使えば変動にも対応できそうな感じですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(Microsoft Office) Microsoft Office Specialist 2019のエキスパート認定について 2 2023/06/24 05:40
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(パソコン・スマホ・電化製品) EXCELのSUMPRODUCT関数について 2 2022/09/21 17:30
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
Accessの実行時エラーについて
-
SQL文で、合計が0のレコードを...
-
アクセスにて月末日付を取得し...
-
アクセス フィールド名に変数...
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
カーソル0件の時にエラーを発生...
-
SQLで特定の項目の重複のみを排...
-
for whichの使い方
-
datetime型でNULL値を入れたい。
-
重複していないレコードの抽出...
-
SELECT 文 GROUP での1件目を...
-
INSERT文でフィールドの1つだ...
-
access2003 クエリSQL文に...
-
SQLServerで文字列の末尾からあ...
-
1日に1人がこなせるプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で、合計が0のレコードを...
-
EXISTSを使ったDELETE文
-
Accessの実行時エラーについて
-
ACCESS ツリービューの作り方
-
日付により変動する「単価」を...
-
前月の取得について
-
ACCESS 商品毎の最新の単価を設...
-
アクセス★非課税、課税の合計金...
-
AS400にてサブファイルレコード...
-
アクセス フィールド名に変数...
-
ユニオンクエリ?レポートにて...
-
ACCESSでクエリ作成時複数のフ...
-
Access2013で商品に複数の単価...
-
アクセスにて月末日付を取得し...
-
異なるデータベース間のテーブ...
-
AccessVBA データのエクスポート
-
フィールドの数値を四捨五入の...
-
FROM句にサブクエリ使えませんか
-
最大値を含むレコードの抽出
-
無駄に見える結合の回数を減ら...
おすすめ情報