- ベストアンサー
アクセス 自動インポートマクロで
アクセス 自動インポートマクロで以下のようなものを作りました。 (1)テーブル「人事データ」をテーブル「人事データ(前回分)」としてコピー (2)エクセル「人事データ」をテーブル「人事データ」としてインポート (3)テーブル「人事データ」と「人事データ(前回分)」の不一致をクエリで抽出 (4)エクセルに出力 そこで、(2)の項目でインポートする際に、「人事データ040325」といったように後ろに日付をつけることはできますか? どこまでインポートしたか履歴を知りたいためです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
マクロでもできますよ。 (3)の不一致クエリがあるのでインポートは「人事データ」で行った方がいいと思います。 (2)の後で のオブジェクトのコピーで新しい名前に ="人事データ" & Format(Date(),"yymmdd") とすれば、PCの日付の「人事データYYMMDD」のファイルができます。
その他の回答 (5)
- popokun
- ベストアンサー率33% (1/3)
追記 Option Compare Database Option Explicit Private Sub cmdExe_Click() '↑プライベートサブ コマンドボタンの名前(cmdExe) をクリックした時って意味なんだよね。ようするにスタートしますよって事。 End Sub '↑エンドサブ ここまでが、コマンドボタン(cmdExe)をクリックした時に動く場所。ようするに終了ですよって事。 **************************************** ちなみに「モジュール」を呼び出す場合は↓ Public Function 実行() msgbox("終了") end Function ってモジュール1にあったと仮定して、コマンドボタンから呼び出すのは・・・。 Private Sub cmdExe_Click() call 実行 Exit Sub って感じでCallを使って呼び出す事になる。
お礼
いろいろありがとうございます! この機会にVBも勉強してみようと思います。
- popokun
- ベストアンサー率33% (1/3)
>コマンド1から40まで全てでてきました。 んーとね「コマンド0」ってコマンドボタンの名前なんだよね。だから新しく作ったコマンドボタン→プロパティの中に「その他」の「名前」と同じ場所に貼り付ければOK! わかりやすくするために普通コマンドボタンを作ったら 名前を付ける。俺の場合、「cmdExe」とかだね。 人によってマチマチではあるが試してみれば? 下にマクロの方法があるので、そちらでも良いし、、、 これからVBAも勉強しようかな?って考えてるなら 試してみるのも勉強になるよ。
- popokun
- ベストアンサー率33% (1/3)
あーあれだツールボックスの右上のコントロールウィザードをONにしてるだろ?それをOFFにするんだが、わかる? わかんなかったら↓ (1)フォーム→新規作成→デザインビュー。でフォーム出来た? (2)ツールボックス→一番右上にコントロールウィザードが凹んでない?(棒切れからツブツブが落ちてきてるようなアイコンだったと思うが。)それをOFF要するにクリックして凸にさせてくれ! (3)コマンドボタン貼り付け→さっきと同じで・・・三点リーダークリック→コードビルダ→OK (4)↓のような感じで出来た? Option Compare Database Option Explicit Private Sub コマンド0_Click() End Sub (5)そしたら「*****」の所に貼り付けて保存 Option Compare Database Option Explicit Private Sub コマンド0_Click() **************************************** End Sub (6)フォームをクリックして立ち上げたらコマンドボタンをクリックで終了。
お礼
コントロールウィザードはオフですよ。 それで、上記(4)のようなものがコマンド1から40まで全てでてきました。 一番下に貼り付けたのですが、フォームに戻ってクリックしてもおなじもの(コマンド1から40までの羅列)が表示されます。???
- popokun
- ベストアンサー率33% (1/3)
・・・もしかして、こういう事? フォームにコマンドボタン貼り付け→右クリック→プロパティ→「クリック時」の「・・・」を左クリックして、下記のVBAソースを貼り付ける。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel7, "TESTテーブル" & Format(Now(), "yymmdd"), "c:\TEST.xls" 'DoCmd.TransferSpreadsheet acImport = Excelデータ 'をインポートする時のお決り文句? 'acSpreadsheetTypeExcel7 = インポートするExcelのバ 'ージョンによって変更3~9位まで有ったような気がする。 '適当に試してくれ! '"TESTテーブル" & Format(Now(), "yymmdd") = テーブ 'ルの名前+日付を000000型にフォーマット 'c:\TEST.xls = Excelが置いてある場所(パスってやつ) 'Cドライブの下にTESTってExcelを置いてある。
お礼
ありがとうございます。 ですが、VBAが良くわからないので、お教えください! 上記、「クリック時」の「・・・」までできるのですが、その後は「コードビルダ」の選択で宜しいのでしょうか? 「コードビルダ」を開くと、コマンド1~40ぐらいまであり、どこにコードを入力したらいいのかわかりません。 オブジェクトのモジュール欄から新規作成でマクロを作成することはできますか?そこでマクロが作成できれば、「マクロビルダ」に組み込むことができるとおもうのですが。
- Gin_F
- ベストアンサー率63% (286/453)
インポート後に、Rename メソッドを使ってテーブル名を 変更すればいいと思います。 DoCmd.Rename "人事データ" & Format(Now(),"yymmdd"), acTable, "人事データ"
お礼
ありがとうございます。 しかし、VBが良くわからなくできませんでした。
お礼
できました! ありがとうございます!!